aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin Lansing <erwin@FreeBSD.org>2014-02-24 13:58:58 +0000
committerErwin Lansing <erwin@FreeBSD.org>2014-02-24 13:58:58 +0000
commit989b3b2d6068ce5b525479b7754977baf6364a7d (patch)
treedbbce28742bfdb3ea58da4461b1bb3e5c2fcaa28
parent98ec2cd1facbb6a0e284fd0bacab33fbafb76fb8 (diff)
Vendor import of BIND 9.9.5vendor/bind9/9.9.5
Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S
-rw-r--r--CHANGES388
-rw-r--r--COPYRIGHT36
-rw-r--r--Makefile.in9
-rw-r--r--README132
-rw-r--r--bin/check/named-checkconf.814
-rw-r--r--bin/check/named-checkconf.c70
-rw-r--r--bin/check/named-checkconf.docbook19
-rw-r--r--bin/check/named-checkconf.html24
-rw-r--r--bin/confgen/ddns-confgen.c4
-rw-r--r--bin/confgen/rndc-confgen.c4
-rw-r--r--bin/dig/dig.112
-rw-r--r--bin/dig/dig.c12
-rw-r--r--bin/dig/dig.docbook14
-rw-r--r--bin/dig/dig.html18
-rw-r--r--bin/dig/dighost.c303
-rw-r--r--bin/dig/host.c4
-rw-r--r--bin/dig/include/dig/dig.h6
-rw-r--r--bin/dig/nslookup.19
-rw-r--r--bin/dig/nslookup.c22
-rw-r--r--bin/dig/nslookup.docbook21
-rw-r--r--bin/dig/nslookup.html20
-rw-r--r--bin/dnssec/Makefile.in10
-rw-r--r--bin/dnssec/dnssec-importkey.8112
-rw-r--r--bin/dnssec/dnssec-importkey.c434
-rw-r--r--bin/dnssec/dnssec-importkey.docbook225
-rw-r--r--bin/dnssec/dnssec-importkey.html113
-rw-r--r--bin/dnssec/dnssec-keygen.c4
-rw-r--r--bin/dnssec/dnssec-settime.c4
-rw-r--r--bin/dnssec/dnssec-signzone.827
-rw-r--r--bin/dnssec/dnssec-signzone.c46
-rw-r--r--bin/dnssec/dnssec-signzone.docbook34
-rw-r--r--bin/dnssec/dnssec-signzone.html41
-rw-r--r--bin/dnssec/dnssectool.c49
-rw-r--r--bin/named/Makefile.in5
-rw-r--r--bin/named/bind9.ver3.xsl1110
-rw-r--r--bin/named/bind9.ver3.xsl.h245
-rw-r--r--bin/named/builtin.c17
-rw-r--r--bin/named/client.c281
-rw-r--r--bin/named/config.c29
-rw-r--r--bin/named/control.c9
-rw-r--r--bin/named/controlconf.c12
-rw-r--r--bin/named/include/named/globals.h1
-rw-r--r--bin/named/include/named/main.h6
-rw-r--r--bin/named/include/named/query.h6
-rw-r--r--bin/named/include/named/server.h14
-rw-r--r--bin/named/interfacemgr.c15
-rw-r--r--bin/named/logconf.c61
-rw-r--r--bin/named/lwaddr.c10
-rw-r--r--bin/named/lwdgnba.c6
-rw-r--r--bin/named/lwdgrbn.c21
-rw-r--r--bin/named/main.c26
-rw-r--r--bin/named/named.conf.58
-rw-r--r--bin/named/named.conf.docbook7
-rw-r--r--bin/named/named.conf.html36
-rw-r--r--bin/named/query.c174
-rw-r--r--bin/named/server.c784
-rw-r--r--bin/named/statschannel.c93
-rw-r--r--bin/named/unix/os.c5
-rw-r--r--bin/named/update.c14
-rw-r--r--bin/named/zoneconf.c8
-rw-r--r--bin/nsupdate/Makefile.in6
-rw-r--r--bin/nsupdate/nsupdate.c40
-rw-r--r--bin/rndc/rndc.8299
-rw-r--r--bin/rndc/rndc.c16
-rw-r--r--bin/rndc/rndc.docbook506
-rw-r--r--bin/rndc/rndc.html371
-rw-r--r--config.guess1077
-rw-r--r--config.h.in21
-rw-r--r--config.sub472
-rw-r--r--configure.in179
-rw-r--r--doc/arm/Bv9ARM-book.xml872
-rw-r--r--doc/arm/Bv9ARM.ch03.html400
-rw-r--r--doc/arm/Bv9ARM.ch04.html171
-rw-r--r--doc/arm/Bv9ARM.ch05.html4
-rw-r--r--doc/arm/Bv9ARM.ch06.html470
-rw-r--r--doc/arm/Bv9ARM.ch07.html12
-rw-r--r--doc/arm/Bv9ARM.ch08.html16
-rw-r--r--doc/arm/Bv9ARM.ch09.html218
-rw-r--r--doc/arm/Bv9ARM.html160
-rw-r--r--doc/arm/Bv9ARM.pdf17851
-rw-r--r--doc/arm/man.arpaname.html6
-rw-r--r--doc/arm/man.ddns-confgen.html8
-rw-r--r--doc/arm/man.dig.html26
-rw-r--r--doc/arm/man.dnssec-checkds.html122
-rw-r--r--doc/arm/man.dnssec-coverage.html205
-rw-r--r--doc/arm/man.dnssec-dsfromkey.html14
-rw-r--r--doc/arm/man.dnssec-keyfromlabel.html12
-rw-r--r--doc/arm/man.dnssec-keygen.html14
-rw-r--r--doc/arm/man.dnssec-revoke.html8
-rw-r--r--doc/arm/man.dnssec-settime.html12
-rw-r--r--doc/arm/man.dnssec-signzone.html39
-rw-r--r--doc/arm/man.dnssec-verify.html8
-rw-r--r--doc/arm/man.genrandom.html8
-rw-r--r--doc/arm/man.host.html8
-rw-r--r--doc/arm/man.isc-hmac-fixup.html8
-rw-r--r--doc/arm/man.named-checkconf.html22
-rw-r--r--doc/arm/man.named-checkzone.html10
-rw-r--r--doc/arm/man.named-journalprint.html6
-rw-r--r--doc/arm/man.named.html14
-rw-r--r--doc/arm/man.nsec3hash.html8
-rw-r--r--doc/arm/man.nsupdate.html12
-rw-r--r--doc/arm/man.rndc-confgen.html10
-rw-r--r--doc/arm/man.rndc.conf.html10
-rw-r--r--doc/arm/man.rndc.html369
-rw-r--r--doc/arm/pkcs11.xml9
-rw-r--r--doc/misc/options2
-rw-r--r--lib/bind9/api2
-rw-r--r--lib/bind9/check.c39
-rw-r--r--lib/dns/Makefile.in12
-rw-r--r--lib/dns/acache.c3
-rw-r--r--lib/dns/acl.c6
-rw-r--r--lib/dns/adb.c6
-rw-r--r--lib/dns/api6
-rw-r--r--lib/dns/client.c80
-rw-r--r--lib/dns/diff.c15
-rw-r--r--lib/dns/dispatch.c47
-rw-r--r--lib/dns/dns64.c16
-rw-r--r--lib/dns/dnssec.c117
-rw-r--r--lib/dns/dst_api.c27
-rw-r--r--lib/dns/dst_internal.h5
-rw-r--r--lib/dns/dst_parse.c64
-rw-r--r--lib/dns/dst_result.c4
-rw-r--r--lib/dns/gen.c13
-rw-r--r--lib/dns/gssapi_link.c14
-rw-r--r--lib/dns/gssapictx.c40
-rw-r--r--lib/dns/hmac_link.c45
-rw-r--r--lib/dns/include/dns/Makefile.in7
-rw-r--r--lib/dns/include/dns/client.h15
-rw-r--r--lib/dns/include/dns/dnssec.h17
-rw-r--r--lib/dns/include/dns/log.h3
-rw-r--r--lib/dns/include/dns/master.h3
-rw-r--r--lib/dns/include/dns/masterdump.h7
-rw-r--r--lib/dns/include/dns/message.h1
-rw-r--r--lib/dns/include/dns/nsec3.h4
-rw-r--r--lib/dns/include/dns/rdata.h5
-rw-r--r--lib/dns/include/dns/rrl.h278
-rw-r--r--lib/dns/include/dns/view.h2
-rw-r--r--lib/dns/include/dns/zone.h6
-rw-r--r--lib/dns/include/dst/dst.h25
-rw-r--r--lib/dns/include/dst/gssapi.h4
-rw-r--r--lib/dns/journal.c47
-rw-r--r--lib/dns/keydata.c6
-rw-r--r--lib/dns/log.c3
-rw-r--r--lib/dns/master.c10
-rw-r--r--lib/dns/masterdump.c44
-rw-r--r--lib/dns/message.c10
-rw-r--r--lib/dns/name.c49
-rw-r--r--lib/dns/nsec.c8
-rw-r--r--lib/dns/nsec3.c44
-rw-r--r--lib/dns/openssldh_link.c6
-rw-r--r--lib/dns/openssldsa_link.c21
-rw-r--r--lib/dns/opensslecdsa_link.c57
-rw-r--r--lib/dns/opensslgost_link.c35
-rw-r--r--lib/dns/opensslrsa_link.c22
-rw-r--r--lib/dns/portlist.c14
-rw-r--r--lib/dns/rbt.c8
-rw-r--r--lib/dns/rbtdb.c141
-rw-r--r--lib/dns/rcode.c8
-rw-r--r--lib/dns/rdata.c40
-rw-r--r--lib/dns/rdata/ch_3/a_1.c6
-rw-r--r--lib/dns/rdata/generic/afsdb_18.c6
-rw-r--r--lib/dns/rdata/generic/dnskey_48.c22
-rw-r--r--lib/dns/rdata/generic/eui48_108.c4
-rw-r--r--lib/dns/rdata/generic/eui64_109.c4
-rw-r--r--lib/dns/rdata/generic/hip_55.c8
-rw-r--r--lib/dns/rdata/generic/ipseckey_45.c8
-rw-r--r--lib/dns/rdata/generic/isdn_20.c20
-rw-r--r--lib/dns/rdata/generic/key_25.c22
-rw-r--r--lib/dns/rdata/generic/keydata_65533.c26
-rw-r--r--lib/dns/rdata/generic/l32_105.c4
-rw-r--r--lib/dns/rdata/generic/l64_106.c4
-rw-r--r--lib/dns/rdata/generic/nid_104.c4
-rw-r--r--lib/dns/rdata/generic/opt_41.c46
-rw-r--r--lib/dns/rdata/generic/rrsig_46.c32
-rw-r--r--lib/dns/rdata/generic/rt_21.c6
-rw-r--r--lib/dns/rdata/generic/soa_6.c6
-rw-r--r--lib/dns/rdata/generic/spf_99.c4
-rw-r--r--lib/dns/rdata/generic/txt_16.c4
-rw-r--r--lib/dns/rdata/hs_4/a_1.c8
-rw-r--r--lib/dns/rdata/in_1/a6_38.c6
-rw-r--r--lib/dns/rdata/in_1/a_1.c8
-rw-r--r--lib/dns/rdata/in_1/aaaa_28.c10
-rw-r--r--lib/dns/rdata/in_1/apl_42.c6
-rw-r--r--lib/dns/rdata/in_1/wks_11.c12
-rw-r--r--lib/dns/rdataslab.c19
-rw-r--r--lib/dns/resolver.c33
-rw-r--r--lib/dns/rootns.c2
-rw-r--r--lib/dns/rpz.c4
-rw-r--r--lib/dns/rrl.c1324
-rw-r--r--lib/dns/spnego.c26
-rw-r--r--lib/dns/spnego_asn1.c20
-rw-r--r--lib/dns/ssu.c4
-rw-r--r--lib/dns/ssu_external.c4
-rw-r--r--lib/dns/time.c4
-rw-r--r--lib/dns/tkey.c12
-rw-r--r--lib/dns/tsig.c18
-rw-r--r--lib/dns/ttl.c6
-rw-r--r--lib/dns/update.c8
-rw-r--r--lib/dns/validator.c6
-rw-r--r--lib/dns/view.c45
-rw-r--r--lib/dns/xfrin.c97
-rw-r--r--lib/dns/zone.c927
-rw-r--r--lib/export/isc/Makefile.in11
-rw-r--r--lib/export/samples/nsprobe.c4
-rw-r--r--lib/export/samples/sample-request.c4
-rw-r--r--lib/export/samples/sample-update.c6
-rw-r--r--lib/export/samples/sample.c4
-rw-r--r--lib/irs/Makefile.in4
-rw-r--r--lib/irs/api4
-rw-r--r--lib/irs/getaddrinfo.c18
-rw-r--r--lib/irs/include/irs/Makefile.in4
-rw-r--r--lib/irs/include/irs/resconf.h14
-rw-r--r--lib/irs/resconf.c93
-rw-r--r--lib/isc/Makefile.in16
-rw-r--r--lib/isc/api6
-rw-r--r--lib/isc/app_api.c12
-rw-r--r--lib/isc/backtrace.c15
-rw-r--r--lib/isc/base32.c8
-rw-r--r--lib/isc/base64.c8
-rw-r--r--lib/isc/buffer.c6
-rw-r--r--lib/isc/commandline.c8
-rw-r--r--lib/isc/hash.c17
-rw-r--r--lib/isc/heap.c8
-rw-r--r--lib/isc/hex.c8
-rw-r--r--lib/isc/hmacmd5.c7
-rw-r--r--lib/isc/hmacsha.c43
-rw-r--r--lib/isc/httpd.c122
-rw-r--r--lib/isc/include/isc/Makefile.in16
-rw-r--r--lib/isc/include/isc/app.h11
-rw-r--r--lib/isc/include/isc/buffer.h6
-rw-r--r--lib/isc/include/isc/file.h12
-rw-r--r--lib/isc/include/isc/hash.h4
-rw-r--r--lib/isc/include/isc/httpd.h24
-rw-r--r--lib/isc/include/isc/namespace.h3
-rw-r--r--lib/isc/include/isc/platform.h.in13
-rw-r--r--lib/isc/include/isc/radix.h6
-rw-r--r--lib/isc/include/isc/safe.h36
-rw-r--r--lib/isc/include/isc/socket.h7
-rw-r--r--lib/isc/include/isc/stdio.h10
-rw-r--r--lib/isc/include/isc/string.h9
-rw-r--r--lib/isc/include/isc/tm.h46
-rw-r--r--lib/isc/include/isc/types.h4
-rw-r--r--lib/isc/inet_aton.c11
-rw-r--r--lib/isc/inet_pton.c13
-rw-r--r--lib/isc/lex.c25
-rw-r--r--lib/isc/log.c8
-rw-r--r--lib/isc/md5.c12
-rw-r--r--lib/isc/mem.c22
-rw-r--r--lib/isc/netaddr.c8
-rw-r--r--lib/isc/nothreads/include/isc/thread.h3
-rw-r--r--lib/isc/pthreads/include/isc/thread.h5
-rw-r--r--lib/isc/pthreads/thread.c15
-rw-r--r--lib/isc/radix.c6
-rw-r--r--lib/isc/random.c4
-rw-r--r--lib/isc/safe.c42
-rw-r--r--lib/isc/sha1.c8
-rw-r--r--lib/isc/sha2.c40
-rw-r--r--lib/isc/sockaddr.c6
-rw-r--r--lib/isc/stats.c6
-rw-r--r--lib/isc/string.c54
-rw-r--r--lib/isc/strtoul.c8
-rw-r--r--lib/isc/tm.c438
-rw-r--r--lib/isc/unix/app.c31
-rw-r--r--lib/isc/unix/file.c37
-rw-r--r--lib/isc/unix/ifiter_getifaddrs.c4
-rw-r--r--lib/isc/unix/ifiter_ioctl.c20
-rw-r--r--lib/isc/unix/ifiter_sysctl.c10
-rw-r--r--lib/isc/unix/include/isc/Makefile.in4
-rw-r--r--lib/isc/unix/include/isc/time.h12
-rw-r--r--lib/isc/unix/interfaceiter.c18
-rw-r--r--lib/isc/unix/socket.c58
-rw-r--r--lib/isc/unix/stdio.c21
-rw-r--r--lib/isc/unix/time.c22
-rw-r--r--lib/isccc/api2
-rw-r--r--lib/isccc/base64.c10
-rw-r--r--lib/isccc/cc.c16
-rw-r--r--lib/isccc/include/isccc/util.h38
-rw-r--r--lib/isccc/sexpr.c6
-rw-r--r--lib/isccfg/api6
-rw-r--r--lib/isccfg/include/isccfg/cfg.h12
-rw-r--r--lib/isccfg/include/isccfg/grammar.h7
-rw-r--r--lib/isccfg/namedconf.c43
-rw-r--r--lib/isccfg/parser.c54
-rw-r--r--lib/lwres/api2
-rw-r--r--lib/lwres/context.c32
-rw-r--r--lib/lwres/getaddrinfo.c18
-rw-r--r--lib/lwres/gethost.c158
-rw-r--r--lib/lwres/getipnode.c70
-rw-r--r--lib/lwres/getrrset.c10
-rw-r--r--lib/lwres/herror.c8
-rw-r--r--lib/lwres/lwbuffer.c38
-rw-r--r--lib/lwres/lwconfig.c8
-rw-r--r--lib/lwres/lwinetaton.c11
-rw-r--r--lib/lwres/lwinetpton.c11
-rw-r--r--lib/lwres/lwres_gabn.c38
-rw-r--r--lib/lwres/lwres_gnba.c42
-rw-r--r--lib/lwres/lwres_grbn.c10
-rw-r--r--lib/lwres/lwres_noop.c38
-rw-r--r--lib/lwres/lwresutil.c46
-rw-r--r--lib/lwres/strtoul.c8
-rw-r--r--make/mkdep.in6
-rw-r--r--version7
302 files changed, 22169 insertions, 13944 deletions
diff --git a/CHANGES b/CHANGES
index 4e3152fd0bb7..00a0ffd0cc01 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,13 +1,395 @@
- --- 9.9.3-P2 released ---
+ --- 9.9.5 released ---
+
+ --- 9.9.5rc2 released ---
+
+3710. [bug] Address double dns_zone_detach when switching to
+ using automatic empty zones from regular zones.
+ [RT #35177]
+
+3709. [port] Use built-in versions of strptime() and timegm()
+ on all platforms to avoid portability issues.
+ [RT #35183]
+
+3708. [bug] Address a portentry locking issue in dispatch.c.
+ [RT #35128]
+
+3707. [bug] irs_resconf_load now returns ISC_R_FILENOTFOUND
+ on a missing resolv.conf file and initializes the
+ structure as if it had been configured with:
+
+ nameserver ::1
+ nameserver 127.0.0.1
+
+ Note: Callers will need to be updated to treat
+ ISC_R_FILENOTFOUND as a qualified success or else
+ they will leak memory. The following code fragment
+ will work with both old and new versions without
+ changing the behaviour of the existing code.
+
+ resconf = NULL;
+ result = irs_resconf_load(mctx, "/etc/resolv.conf",
+ &resconf);
+ if (result != ISC_SUCCESS) {
+ if (resconf != NULL)
+ irs_resconf_destroy(&resconf);
+ ....
+ }
+
+ [RT #35194]
+
+3706. [contrib] queryperf: Fixed a possible integer overflow when
+ printing results. [RT #35182]
+
+3704. [protocol] Accept integer timestamps in RRSIG records. [RT #35185]
+
+ --- 9.9.5rc1 released ---
+
+3701. [func] named-checkconf can now obscure shared secrets
+ when printing by specifying '-x'. [RT #34465]
+
+3699. [bug] Improvements to statistics channel XSL stylesheet:
+ the stylesheet can now be cached by the browser;
+ section headers are omitted from the stats display
+ when there is no data in those sections to be
+ displayed; counters are now right-justified for
+ easier readability. (Only available with
+ configure --enable-newstats.) [RT #35117]
+
+3698. [cleanup] Replaced all uses of memcpy() with memmove().
+ [RT #35120]
+
+3697. [bug] Handle "." as a search list element when IDN support
+ is enabled. [RT #35133]
+
+3696. [bug] dig failed to handle AXFR style IXFR responses which
+ span multiple messages. [RT #35137]
+
+3695. [bug] Address a possible race in dispatch.c. [RT #35107]
+
+3694. [bug] Warn when a key-directory is configured for a zone,
+ but does not exist or is not a directory. [RT #35108]
+
+3693. [security] memcpy was incorrectly called with overlapping
+ ranges resulting in malformed names being generated
+ on some platforms. This could cause INSIST failures
+ when serving NSEC3 signed zones (CVE-2014-0591).
+ [RT #35120]
+
+3692. [bug] Two calls to dns_db_getoriginnode were fatal if there
+ was no data at the node. [RT #35080]
+
+3690. [bug] Iterative responses could be missed when the source
+ port for an upstream query was the same as the
+ listener port (53). [RT #34925]
+
+3689. [bug] Fixed a bug causing an insecure delegation from one
+ static-stub zone to another to fail with a broken
+ trust chain. [RT #35081]
+
+ --- 9.9.5b1 released ---
+
+3688. [bug] loadnode could return a freed node on out of memory.
+ [RT #35106]
+
+3687. [bug] Address null pointer dereference in zone_xfrdone.
+ [RT #35042]
+
+3686. [func] "dnssec-signzone -Q" drops signatures from keys
+ that are still published but no longer active.
+ [RT #34990]
+
+3685. [bug] "rndc refresh" didn't work correctly with slave
+ zones using inline-signing. [RT #35105]
+
+3683. [cleanup] Add a more detailed "not found" message to rndc
+ commands which specify a zone name. [RT #35059]
+
+3682. [bug] Correct the behavior of rndc retransfer to allow
+ inline-signing slave zones to retain NSEC3 parameters
+ instead of reverting to NSEC. [RT #34745]
+
+3681. [port] Update the Windows build system to support feature
+ selection and WIN64 builds. This is a work in
+ progress. [RT #34160]
+
+3679. [bug] dig could fail to clean up TCP sockets still
+ waiting on connect(). [RT #35074]
+
+3678. [port] Update config.guess and config.sub. [RT #35060]
+
+3677. [bug] 'nsupdate' leaked memory if 'realm' was used multiple
+ times. [RT #35073]
+
+3676. [bug] "named-checkconf -z" now checks zones of type
+ hint and redirect as well as master. [RT #35046]
+
+3675. [misc] Provide a place for third parties to add version
+ information for their extensions in the version
+ file by setting the EXTENSIONS variable.
+
+3674. [bug] RPZ zeroed ttls if the query type was '*'. [RT #35026]
+
+3672. [func] Local address can now be specified when using
+ dns_client API. [RT #34811]
+
+3671. [bug] Don't allow dnssec-importkey overwrite a existing
+ non-imported private key.
+
+3670. [bug] Address read after free in server side of
+ lwres_getrrsetbyname. [RT #29075]
+
+3669. [port] freebsd: --with-gssapi needs -lhx509. [RT #35001]
+
+3668. [bug] Fix cast in lex.c which could see 0xff treated as eof.
+ [RT #34993]
+
+3667. [test] dig: add support to keep the TCP socket open between
+ successive queries (+[no]keepopen). [RT #34918]
+
+3665. [bug] Failure to release lock on error in receive_secure_db.
+ [RT #34944]
+
+3664. [bug] Updated OpenSSL PKCS#11 patches to fix active list
+ locking and other bugs. [RT #34855]
+
+3663. [bug] Address bugs in dns_rdata_fromstruct and
+ dns_rdata_tostruct for WKS and ISDN types. [RT #34910]
+
+3662. [bug] 'host' could die if a UDP query timed out. [RT #34870]
+
+3661. [bug] Address lock order reversal deadlock with inline zones.
+ [RT #34856]
+
+3660. [cleanup] Changed the name of "isc-config.sh" to "bind9-config".
+ [RT #23825]
+
+3659. [port] solaris: don't add explict dependancies/rules for
+ python programs as make won't use the implicit rules.
+ [RT #34835]
+
+3658. [port] linux: Address platform specific compilation issue
+ when libcap-devel is installed. [RT #34838]
+
+3657. [port] Some readline clones don't accept NULL pointers when
+ calling add_history. [RT #34842]
+
+3656. [security] Treat an all zero netmask as invalid when generating
+ the localnets acl. (The prior behavior could
+ allow unexpected matches when using some versions
+ of Winsock: CVE-2013-6320.) [RT #34687]
+
+3655. [cleanup] Simplify TCP message processing when requesting a
+ zone transfer. [RT #34825]
+
+3654. [bug] Address race condition with manual notify requests.
+ [RT #34806]
+
+3653. [func] Create delegations for all "children" of empty zones
+ except "forward first". [RT #34826]
+
+3651. [tuning] Adjust when a master server is deemed unreachable.
+ [RT #27075]
+
+3650. [tuning] Use separate rate limiting queues for refresh and
+ notify requests. [RT #30589]
+
+3649. [cleanup] Include a comment in .nzf files, giving the name of
+ the associated view. [RT #34765]
+
+3648. [test] Updated the ATF test framework to version 0.17.
+ [RT #25627]
+
+3647. [bug] Address a race condition when shutting down a zone.
+ [RT #34750]
+
+3646. [bug] Journal filename string could be set incorrectly,
+ causing garbage in log messages. [RT #34738]
+
+3645. [protocol] Use case sensitive compression when responding to
+ queries. [RT #34737]
+
+3644. [protocol] Check that EDNS subnet client options are well formed.
+ [RT #34718]
+
+3642. [func] Allow externally generated DNSKEY to be imported
+ into the DNSKEY management framework. A new tool
+ dnssec-importkey is used to do this. [RT #34698]
+
+3641. [bug] Handle changes to sig-validity-interval settings
+ better. [RT #34625]
+
+3640. [bug] ndots was not being checked when searching. Only
+ continue searching on NXDOMAIN responses. Add the
+ ability to specify ndots to nslookup. [RT #34711]
+
+3639. [bug] Treat type 65533 (KEYDATA) as opaque except when used
+ in a key zone. [RT #34238]
+
+ --- 9.9.4 released ---
+
+3643. [doc] Clarify RRL "slip" documentation.
+
+3638. [cleanup] Add the ability to handle ENOPROTOOPT in case it is
+ encountered. [RT #34668]
+
+ --- 9.9.4rc2 released ---
+
+3637. [bug] 'allow-query-on' was checking the source address
+ rather than the destination address. [RT #34590]
+
+3636. [bug] Automatic empty zones now behave better with
+ forward only "zones" beneath them. [RT #34583]
+
+3635. [bug] Signatures were not being removed from a zone with
+ only KSK keys for a algorithm. [RT #34439]
+
+3634. [func] Report build-id in rndc status. Report build-id
+ when building from a git repository. [RT #20422]
+
+3633. [cleanup] Refactor OPT processing in named to make it easier
+ to support new EDNS options. [RT #34414]
+
+3632. [bug] Signature from newly inactive keys were not being
+ removed. [RT #32178]
+
+3631. [bug] Remove spurious warning about missing signatures when
+ qtype is SIG. [RT #34600]
+
+3630. [bug] Ensure correct ID computation for MD5 keys. [RT #33033]
+
+3627. [bug] RPZ changes were not effective on slaves. [RT #34450]
+
+3625. [bug] Don't send notify messages to machines outside of the
+ test setup.
+
+3623. [bug] zone-statistics was only effective in new statistics.
+ [RT #34466]
+
+ --- 9.9.4rc1 released ---
3621. [security] Incorrect bounds checking on private type 'keydata'
can lead to a remotely triggerable REQUIRE failure
(CVE-2013-4854). [RT #34238]
- --- 9.9.3-P1 released ---
+3617. [bug] Named was failing to answer queries during
+ "rndc reload" [RT #34098]
+
+3616. [bug] Change #3613 was incomplete. [RT #34177]
+
+3615. [cleanup] "configure" now finishes by printing a summary
+ of optional BIND features and whether they are
+ active or inactive. ("configure --enable-full-report"
+ increases the verbosity of the summary.) [RT #31777]
+
+3614. [port] Check for <linux/types.h>. [RT #34162]
+
+3613. [bug] named could crash when deleting inline-signing
+ zones with "rndc delzone". [RT #34066]
+
+3611. [bug] Improved resistance to a theoretical authentication
+ attack based on differential timing. [RT #33939]
+
+3610. [cleanup] win32: Some executables had been omitted from the
+ installer. [RT #34116]
+
+3608. [port] win32: added todos.pl script to ensure all text files
+ the win32 build depends on are converted to DOS
+ newline format. [RT #22067]
+
+3607. [bug] dnssec-keygen had broken 'Invalid keyfile' error
+ message. [RT #34045]
+
+ --- 9.9.4b1 released ---
+
+3605. [port] win32: Addressed several compatibility issues
+ with newer versions of Visual Studio. [RT #33916]
+
+3603. [bug] Install <isc/stat.h>. [RT #33956]
+
+3601. [bug] Added to PKCS#11 openssl patches a value len
+ attribute in DH derive key. [RT #33928]
+
+3600. [cleanup] dig: Fixed a typo in the warning output when receiving
+ an oversized response. [RT #33910]
+
+3599. [tuning] Check for pointer equivalence in name comparisons.
+ [RT #18125]
+
+3596. [port] Updated win32 build documentation, added
+ dnssec-verify. [RT #22067]
+
+3594. [maint] Update config.guess and config.sub. [RT #33816]
+
+3592. [doc] Moved documentation of rndc command options to the
+ rndc man page. [RT #33506]
+
+3590. [bug] When using RRL on recursive servers, defer
+ rate-limiting until after recursion is complete;
+ also, use correct rcode for slipped NXDOMAIN
+ responses. [RT #33604]
+
+3588. [bug] dig: addressed a memory leak in the sigchase code
+ that could cause a shutdown crash. [RT #33733]
+
+3587. [func] 'named -g' now checks the logging configuration but
+ does not use it. [RT #33473]
+
+3586. [bug] Handle errors in xmlDocDumpFormatMemoryEnc. [RT #33706]
3584. [security] Caching data from an incompletely signed zone could
- trigger an assertion failure in resolver.c [RT #33690]
+ trigger an assertion failure in resolver.c
+ (CVE-2013-3919). [RT #33690]
+
+3583. [bug] Address memory leak in GSS-API processing [RT #33574]
+
+3582. [bug] Silence false positive warning regarding missing file
+ directive for inline slave zones. [RT #33662]
+
+3581. [bug] Changed the tcp-listen-queue default to 10. [RT #33029]
+
+3580. [bug] Addressed a possible race in acache.c [RT #33602]
+
+3579. [maint] Updates to PKCS#11 openssl patches, supporting
+ versions 0.9.8y, 1.0.0k, 1.0.1e [RT #33463]
+
+3578. [bug] 'rndc -c file' now fails if 'file' does not exist.
+ [RT #33571]
+
+3577. [bug] Handle zero TTL values better. [RT #33411]
+
+3576. [bug] Address a shutdown race when validating. [RT #33573]
+
+3575. [func] Changed the logging category for RRL events from
+ 'queries' to 'query-errors'. [RT #33540]
+
+3574. [doc] The 'hostname' keyword was missing from server-id
+ description in the named.conf man page. [RT #33476]
+
+3573. [bug] "rndc addzone" and "rndc delzone" incorrectly handled
+ zone names containing punctuation marks and other
+ nonstandard characters. [RT #33419]
+
+3571. [bug] Address race condition in dns_client_startresolve().
+ [RT #33234]
+
+3566. [func] Log when forwarding updates to master. [RT #33240]
+
+3554. [bug] RRL failed to correctly rate-limit upward
+ referrals and failed to count dropped error
+ responses in the statistics. [RT #33225]
+
+3545. [bug] RRL slip behavior was incorrect when set to 1.
+ [RT #33111]
+
+3518. [bug] Increase the size of dns_rrl_key.s.rtype by one bit
+ so that all dns_rrl_rtype_t enum values fit regardless
+ of whether it is teated as signed or unsigned by
+ the compiler. [RT #32792]
+
+3494. [func] DNS RRL: Blunt the impact of DNS reflection and
+ amplification attacks by rate-limiting substantially-
+ identical responses. To enable, use "configure
+ --enable-rrl". [RT #28130]
--- 9.9.3 released ---
diff --git a/COPYRIGHT b/COPYRIGHT
index 525c2228db33..514dbe7e2f5c 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,4 +1,4 @@
-Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+Copyright (C) 2004-2014 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,8 +13,6 @@ 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.19 2012/01/03 23:46:59 tbox Exp $
-
Portions of this code release fall under one or more of the
following Copyright notices. Please see individual source
files for details.
@@ -99,11 +97,7 @@ are met:
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
-4. Neither the name of the University nor the names of its contributors
+3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
@@ -516,3 +510,29 @@ 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.
+-----------------------------------------------------------------------------
+
+Copyright (c) 1995, 1997, 1998 The NetBSD Foundation, Inc.
+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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+
diff --git a/Makefile.in b/Makefile.in
index 7c1d66523fa5..2c5985f81f47 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -54,7 +54,11 @@ installdirs:
install:: isc-config.sh installdirs
${INSTALL_SCRIPT} isc-config.sh ${DESTDIR}${bindir}
+ rm -f ${DESTDIR}${bindir}/bind9-config
+ @LN@ ${DESTDIR}${bindir}/isc-config.sh ${DESTDIR}${bindir}/bind9-config
${INSTALL_DATA} ${top_srcdir}/isc-config.sh.1 ${DESTDIR}${mandir}/man1
+ rm -f ${DESTDIR}${mandir}/man1/bind9-config.1
+ @LN@ ${DESTDIR}${mandir}/man1/isc-config.sh.1 ${DESTDIR}${mandir}/man1/bind9-config.1
${INSTALL_DATA} ${top_srcdir}/bind.keys ${DESTDIR}${sysconfdir}
tags:
@@ -86,5 +90,8 @@ FAQ: FAQ.xml
LC_ALL=C ${W3M} -T text/html -dump -cols 72 >$@.tmp
mv $@.tmp $@
+unit::
+ sh ${top_srcdir}/unit/unittest.sh
+
clean::
rm -f FAQ.tmp
diff --git a/README b/README
index 88d799e4f7cf..718b71a978cd 100644
--- a/README
+++ b/README
@@ -48,8 +48,34 @@ BIND 9
For a detailed list of user-visible changes from
previous releases, see the CHANGES file.
- For up-to-date release notes and errata, see
- http://www.isc.org/software/bind9/releasenotes
+ For up-to-date release notes and errata, see
+ http://www.isc.org/software/bind9/releasenotes
+
+BIND 9.9.5
+
+ BIND 9.9.5 is a maintenance release, and patches the security
+ flaws described in CVE-2013-6320 and CVE-2014-0591. It also
+ includes the following functional enhancements:
+
+ - "named" now preserves the capitalization of names when
+ responding to queries.
+ - new "dnssec-importkey" command allows the use of offline
+ DNSSEC keys with automatic DNSKEY management.
+ - When re-signing a zone, the new "dnssec-signzone -Q" option
+ drops signatures from keys that are still published but are
+ no longer active.
+ - "named-checkconf -px" will print the contents of configuration
+ files with the shared secrets obscured, making it easier to
+ share configuration (e.g. when submitting a bug report)
+ without revealing private information.
+
+BIND 9.9.4
+
+ BIND 9.9.4 is a maintenance release, and patches the security
+ flaws described in CVE-2013-3919 and CVE-2013-4854. It also
+ introduces DNS Response Rate Limiting (DNS RRL) as a
+ compile-time option. To use this feature, configure with
+ the "--enable-rrl" option.
BIND 9.9.3
@@ -70,45 +96,45 @@ BIND 9.9.0
BIND 9.9.0 includes a number of changes from BIND 9.8 and earlier
releases. New features include:
- - Inline signing, allowing automatic DNSSEC signing of
- master zones without modification of the zonefile, or
- "bump in the wire" signing in slaves.
- - NXDOMAIN redirection.
- - New 'rndc flushtree' command clears all data under a given
- name from the DNS cache.
- - New 'rndc sync' command dumps pending changes in a dynamic
- zone to disk without a freeze/thaw cycle.
- - New 'rndc signing' command displays or clears signing status
- records in 'auto-dnssec' zones.
- - NSEC3 parameters for 'auto-dnssec' zones can now be set prior
- to signing, eliminating the need to initially sign with NSEC.
- - Startup time improvements on large authoritative servers.
- - Slave zones are now saved in raw format by default.
- - Several improvements to response policy zones (RPZ).
- - Improved hardware scalability by using multiple threads
- to listen for queries and using finer-grained client locking
- - The 'also-notify' option now takes the same syntax as
- 'masters', so it can used named masterlists and TSIG keys.
- - 'dnssec-signzone -D' writes an output file containing only DNSSEC
- data, which can be included by the primary zone file.
- - 'dnssec-signzone -R' forces removal of signatures that are
- not expired but were created by a key which no longer exists.
- - 'dnssec-signzone -X' allows a separate expiration date to
- be specified for DNSKEY signatures from other signatures.
- - New '-L' option to dnssec-keygen, dnssec-settime, and
- dnssec-keyfromlabel sets the default TTL for the key.
- - dnssec-dsfromkey now supports reading from standard input,
- to make it easier to convert DNSKEY to DS.
- - RFC 1918 reverse zones have been added to the empty-zones
- table per RFC 6303.
- - Dynamic updates can now optionally set the zone's SOA serial
- number to the current UNIX time.
- - DLZ modules can now retrieve the source IP address of
- the querying client.
- - 'request-ixfr' option can now be set at the per-zone level.
- - 'dig +rrcomments' turns on comments about DNSKEY records,
- indicating their key ID, algorithm and function
- - Simplified nsupdate syntax and added readline support
+ - Inline signing, allowing automatic DNSSEC signing of
+ master zones without modification of the zonefile, or
+ "bump in the wire" signing in slaves.
+ - NXDOMAIN redirection.
+ - New 'rndc flushtree' command clears all data under a given
+ name from the DNS cache.
+ - New 'rndc sync' command dumps pending changes in a dynamic
+ zone to disk without a freeze/thaw cycle.
+ - New 'rndc signing' command displays or clears signing status
+ records in 'auto-dnssec' zones.
+ - NSEC3 parameters for 'auto-dnssec' zones can now be set prior
+ to signing, eliminating the need to initially sign with NSEC.
+ - Startup time improvements on large authoritative servers.
+ - Slave zones are now saved in raw format by default.
+ - Several improvements to response policy zones (RPZ).
+ - Improved hardware scalability by using multiple threads
+ to listen for queries and using finer-grained client locking
+ - The 'also-notify' option now takes the same syntax as
+ 'masters', so it can used named masterlists and TSIG keys.
+ - 'dnssec-signzone -D' writes an output file containing only DNSSEC
+ data, which can be included by the primary zone file.
+ - 'dnssec-signzone -R' forces removal of signatures that are
+ not expired but were created by a key which no longer exists.
+ - 'dnssec-signzone -X' allows a separate expiration date to
+ be specified for DNSKEY signatures from other signatures.
+ - New '-L' option to dnssec-keygen, dnssec-settime, and
+ dnssec-keyfromlabel sets the default TTL for the key.
+ - dnssec-dsfromkey now supports reading from standard input,
+ to make it easier to convert DNSKEY to DS.
+ - RFC 1918 reverse zones have been added to the empty-zones
+ table per RFC 6303.
+ - Dynamic updates can now optionally set the zone's SOA serial
+ number to the current UNIX time.
+ - DLZ modules can now retrieve the source IP address of
+ the querying client.
+ - 'request-ixfr' option can now be set at the per-zone level.
+ - 'dig +rrcomments' turns on comments about DNSKEY records,
+ indicating their key ID, algorithm and function
+ - Simplified nsupdate syntax and added readline support
Building
@@ -128,9 +154,9 @@ Building
Ubuntu 7.04, 7.10
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.
+ 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.
We have recent reports from the user community that a supported
version of BIND will build and run on the following systems:
@@ -231,10 +257,10 @@ Building
on the configure command line. The default is operating
system dependent.
- Support for the "fixed" rrset-order option can be enabled
- or disabled by specifying "--enable-fixed-rrset" or
- "--disable-fixed-rrset" on the configure command line.
- The default is "disabled", to reduce memory footprint.
+ Support for the "fixed" rrset-order option can be enabled
+ or disabled by specifying "--enable-fixed-rrset" or
+ "--disable-fixed-rrset" on the configure command line.
+ The default is "disabled", to reduce memory footprint.
If your operating system has integrated support for IPv6, it
will be used automatically. If you have installed KAME IPv6
@@ -305,8 +331,8 @@ Documentation
Frequently asked questions and their answers can be found in
FAQ.
- Additional information on various subjects can be found
- in the other README files.
+ Additional information on various subjects can be found
+ in the other README files.
Change Log
@@ -337,10 +363,10 @@ Change Log
[protocol] Updates to the DNS protocol such as new
RR types
- [test] Changes to the automatic tests, not
- affecting server functionality
+ [test] Changes to the automatic tests, not
+ affecting server functionality
- [cleanup] Minor corrections and refactoring
+ [cleanup] Minor corrections and refactoring
[doc] Documentation
diff --git a/bin/check/named-checkconf.8 b/bin/check/named-checkconf.8
index 67a8f4a3da6a..909184ef2f1d 100644
--- a/bin/check/named-checkconf.8
+++ b/bin/check/named-checkconf.8
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2002 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -33,7 +33,7 @@
named\-checkconf \- named configuration file syntax checking tool
.SH "SYNOPSIS"
.HP 16
-\fBnamed\-checkconf\fR [\fB\-h\fR] [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-p\fR] [\fB\-z\fR]
+\fBnamed\-checkconf\fR [\fB\-h\fR] [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-p\fR] [\fB\-x\fR] [\fB\-z\fR]
.SH "DESCRIPTION"
.PP
\fBnamed\-checkconf\fR
@@ -84,6 +84,14 @@ Print out the
and included files in canonical form if no errors were detected.
.RE
.PP
+\-x
+.RS 4
+When printing the configuration files in canonical form, obscure shared secrets by replacing them with strings of question marks ('?'). This allows the contents of
+\fInamed.conf\fR
+and related files to be shared \(em for example, when submitting bug reports \(em without compromising private data. This option cannot be used without
+\fB\-p\fR.
+.RE
+.PP
\-z
.RS 4
Perform a test load of all master zones found in
@@ -113,7 +121,7 @@ BIND 9 Administrator Reference Manual.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
-Copyright \(co 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000\-2002 Internet Software Consortium.
.br
diff --git a/bin/check/named-checkconf.c b/bin/check/named-checkconf.c
index 0b3c508f28c4..fd3795a57fd2 100644
--- a/bin/check/named-checkconf.c
+++ b/bin/check/named-checkconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -39,10 +39,13 @@
#include <bind9/check.h>
+#include <dns/db.h>
#include <dns/fixedname.h>
#include <dns/log.h>
#include <dns/name.h>
+#include <dns/rdataclass.h>
#include <dns/result.h>
+#include <dns/rootns.h>
#include <dns/zone.h>
#include "check-tool.h"
@@ -151,6 +154,30 @@ config_get(const cfg_obj_t **maps, const char *name, const cfg_obj_t **obj) {
}
}
+static isc_result_t
+configure_hint(const char *zfile, const char *zclass, isc_mem_t *mctx) {
+ isc_result_t result;
+ dns_db_t *db = NULL;
+ dns_rdataclass_t rdclass;
+ isc_textregion_t r;
+
+ if (zfile == NULL)
+ return (ISC_R_FAILURE);
+
+ DE_CONST(zclass, r.base);
+ r.length = strlen(zclass);
+ result = dns_rdataclass_fromtext(&rdclass, &r);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ result = dns_rootns_create(mctx, rdclass, zfile, &db);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ dns_db_detach(&db);
+ return (ISC_R_SUCCESS);
+}
+
/*% configure the zone */
static isc_result_t
configure_zone(const char *vclass, const char *view,
@@ -161,7 +188,7 @@ configure_zone(const char *vclass, const char *view,
isc_result_t result;
const char *zclass;
const char *zname;
- const char *zfile;
+ const char *zfile = NULL;
const cfg_obj_t *maps[4];
const cfg_obj_t *zoptions = NULL;
const cfg_obj_t *classobj = NULL;
@@ -195,15 +222,28 @@ configure_zone(const char *vclass, const char *view,
cfg_map_get(zoptions, "type", &typeobj);
if (typeobj == NULL)
return (ISC_R_FAILURE);
- if (strcasecmp(cfg_obj_asstring(typeobj), "master") != 0)
+
+ cfg_map_get(zoptions, "file", &fileobj);
+ if (fileobj != NULL)
+ zfile = cfg_obj_asstring(fileobj);
+
+ /*
+ * Check hints files for hint zones.
+ * Skip loading checks for any type other than
+ * master and redirect
+ */
+ if (strcasecmp(cfg_obj_asstring(typeobj), "hint") == 0)
+ return (configure_hint(zfile, zclass, mctx));
+ else if ((strcasecmp(cfg_obj_asstring(typeobj), "master") != 0) &&
+ (strcasecmp(cfg_obj_asstring(typeobj), "redirect") != 0))
return (ISC_R_SUCCESS);
+
+ if (zfile == NULL)
+ return (ISC_R_FAILURE);
+
cfg_map_get(zoptions, "database", &dbobj);
if (dbobj != NULL)
return (ISC_R_SUCCESS);
- cfg_map_get(zoptions, "file", &fileobj);
- if (fileobj == NULL)
- return (ISC_R_FAILURE);
- zfile = cfg_obj_asstring(fileobj);
obj = NULL;
if (get_maps(maps, "check-dup-records", &obj)) {
@@ -341,7 +381,7 @@ configure_zone(const char *vclass, const char *view,
if (result != ISC_R_SUCCESS)
fprintf(stderr, "%s/%s/%s: %s\n", view, zname, zclass,
dns_result_totext(result));
- return(result);
+ return (result);
}
/*% configure a view */
@@ -442,10 +482,11 @@ main(int argc, char **argv) {
isc_entropy_t *ectx = NULL;
isc_boolean_t load_zones = ISC_FALSE;
isc_boolean_t print = ISC_FALSE;
+ unsigned int flags = 0;
isc_commandline_errprint = ISC_FALSE;
- while ((c = isc_commandline_parse(argc, argv, "dhjt:pvz")) != EOF) {
+ while ((c = isc_commandline_parse(argc, argv, "dhjt:pvxz")) != EOF) {
switch (c) {
case 'd':
debug++;
@@ -472,6 +513,10 @@ main(int argc, char **argv) {
printf(VERSION "\n");
exit(0);
+ case 'x':
+ flags |= CFG_PRINTER_XKEY;
+ break;
+
case 'z':
load_zones = ISC_TRUE;
docheckmx = ISC_FALSE;
@@ -494,6 +539,11 @@ main(int argc, char **argv) {
}
}
+ if (((flags & CFG_PRINTER_XKEY) != 0) && !print) {
+ fprintf(stderr, "%s: -x cannot be used without -p\n", program);
+ exit(1);
+ }
+
if (isc_commandline_index + 1 < argc)
usage();
if (argv[isc_commandline_index] != NULL)
@@ -534,7 +584,7 @@ main(int argc, char **argv) {
}
if (print && exit_status == 0)
- cfg_print(config, output, NULL);
+ cfg_printx(config, flags, output, NULL);
cfg_obj_destroy(parser, &config);
cfg_parser_destroy(&parser);
diff --git a/bin/check/named-checkconf.docbook b/bin/check/named-checkconf.docbook
index 9535e28430cf..485dc42a93d1 100644
--- a/bin/check/named-checkconf.docbook
+++ b/bin/check/named-checkconf.docbook
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -36,6 +36,7 @@
<year>2005</year>
<year>2007</year>
<year>2009</year>
+ <year>2014</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -60,6 +61,7 @@
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
<arg choice="req">filename</arg>
<arg><option>-p</option></arg>
+ <arg><option>-x</option></arg>
<arg><option>-z</option></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -130,6 +132,21 @@
</varlistentry>
<varlistentry>
+ <term>-x</term>
+ <listitem>
+ <para>
+ When printing the configuration files in canonical
+ form, obscure shared secrets by replacing them with
+ strings of question marks ('?'). This allows the
+ contents of <filename>named.conf</filename> and related
+ files to be shared &mdash; for example, when submitting
+ bug reports &mdash; without compromising private data.
+ This option cannot be used without <option>-p</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>-z</term>
<listitem>
<para>
diff --git a/bin/check/named-checkconf.html b/bin/check/named-checkconf.html
index aa80c7cbe888..1c5ebc125768 100644
--- a/bin/check/named-checkconf.html
+++ b/bin/check/named-checkconf.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -29,10 +29,10 @@
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
-<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-z</code>]</p></div>
+<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-x</code>] [<code class="option">-z</code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543396"></a><h2>DESCRIPTION</h2>
+<a name="id2543403"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkconf</strong></span>
checks the syntax, but not the semantics, of a
<span><strong class="command">named</strong></span> configuration file. The file is parsed
@@ -52,7 +52,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543445"></a><h2>OPTIONS</h2>
+<a name="id2543452"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -74,6 +74,16 @@
Print out the <code class="filename">named.conf</code> and included files
in canonical form if no errors were detected.
</p></dd>
+<dt><span class="term">-x</span></dt>
+<dd><p>
+ When printing the configuration files in canonical
+ form, obscure shared secrets by replacing them with
+ strings of question marks ('?'). This allows the
+ contents of <code class="filename">named.conf</code> and related
+ files to be shared &#8212; for example, when submitting
+ bug reports &#8212; without compromising private data.
+ This option cannot be used without <code class="option">-p</code>.
+ </p></dd>
<dt><span class="term">-z</span></dt>
<dd><p>
Perform a test load of all master zones found in
@@ -91,21 +101,21 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543569"></a><h2>RETURN VALUES</h2>
+<a name="id2543596"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkconf</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543580"></a><h2>SEE ALSO</h2>
+<a name="id2543608"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543610"></a><h2>AUTHOR</h2>
+<a name="id2543638"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/bin/confgen/ddns-confgen.c b/bin/confgen/ddns-confgen.c
index d655145eaf7a..e2a8628377ae 100644
--- a/bin/confgen/ddns-confgen.c
+++ b/bin/confgen/ddns-confgen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011, 2014 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
@@ -101,7 +101,7 @@ main(int argc, char **argv) {
result = isc_file_progname(*argv, program, sizeof(program));
if (result != ISC_R_SUCCESS)
- memcpy(program, "ddns-confgen", 13);
+ memmove(program, "ddns-confgen", 13);
progname = program;
isc_commandline_errprint = ISC_FALSE;
diff --git a/bin/confgen/rndc-confgen.c b/bin/confgen/rndc-confgen.c
index e2ac07923a2c..2f65f4b00abb 100644
--- a/bin/confgen/rndc-confgen.c
+++ b/bin/confgen/rndc-confgen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -120,7 +120,7 @@ main(int argc, char **argv) {
result = isc_file_progname(*argv, program, sizeof(program));
if (result != ISC_R_SUCCESS)
- memcpy(program, "rndc-confgen", 13);
+ memmove(program, "rndc-confgen", 13);
progname = program;
keyname = DEFAULT_KEYNAME;
diff --git a/bin/dig/dig.1 b/bin/dig/dig.1
index 818c020319df..e6c28f3de0f9 100644
--- a/bin/dig/dig.1
+++ b/bin/dig/dig.1
@@ -20,11 +20,11 @@
.\" Title: dig
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
-.\" Date: Jun 30, 2000
+.\" Date: June 30, 2000
.\" Manual: BIND9
.\" Source: BIND9
.\"
-.TH "DIG" "1" "Jun 30, 2000" "BIND9" "BIND9"
+.TH "DIG" "1" "June 30, 2000" "BIND9" "BIND9"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
@@ -57,7 +57,7 @@ allows multiple lookups to be issued from the command line.
Unless it is told to query a specific name server,
\fBdig\fR
will try each of the servers listed in
-\fI/etc/resolv.conf\fR. If no usable server addreses are found,
+\fI/etc/resolv.conf\fR. If no usable server addresses are found,
\fBdig\fR
will send the query to the local host.
.PP
@@ -535,6 +535,12 @@ When chasing DNSSEC signature chains perform a top\-down validation. Requires di
.RS 4
Include an EDNS name server ID request when sending a query.
.RE
+.PP
+\fB+[no]keepopen\fR
+.RS 4
+Keep the TCP socket open between queries and reuse it rather than creating a new TCP socket for each lookup. The default is
+\fB+nokeepopen\fR.
+.RE
.SH "MULTIPLE QUERIES"
.PP
The BIND 9 implementation of
diff --git a/bin/dig/dig.c b/bin/dig/dig.c
index 79037101d732..c7a50b5af2fc 100644
--- a/bin/dig/dig.c
+++ b/bin/dig/dig.c
@@ -229,6 +229,7 @@ help(void) {
" +[no]split=## (Split hex/base64 fields into chunks)\n"
" +[no]multiline (Print records in an expanded format)\n"
" +[no]onesoa (AXFR prints only one soa record)\n"
+" +[no]keepopen (Keep the TCP socket open between queries)\n"
" global d-opts and servers (before host name) affect all queries.\n"
" local d-opts and servers (after host name) affect only that lookup.\n"
" -h (print help and exit)\n"
@@ -552,10 +553,11 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
(msg->rcode == dns_rcode_formerr ||
msg->rcode == dns_rcode_notimp))
printf("\n;; WARNING: EDNS query returned status "
- "%s - retry with '+noedns'\n",
- rcode_totext(msg->rcode));
+ "%s - retry with '%s+noedns'\n",
+ rcode_totext(msg->rcode),
+ query->lookup->dnssec ? "+nodnssec ": "");
if (msg != query->lookup->sendmsg && extrabytes != 0U)
- printf(";; WARNING: Messages has %u extra byte%s at "
+ printf(";; WARNING: Message has %u extra byte%s at "
"end\n", extrabytes, extrabytes != 0 ? "s" : "");
}
@@ -910,6 +912,10 @@ plus_option(char *option, isc_boolean_t is_batchfile,
lookup->ignore = ISC_TRUE;
}
break;
+ case 'k':
+ FULLCHECK("keepopen");
+ keep_open = state;
+ break;
case 'm': /* multiline */
FULLCHECK("multiline");
multiline = state;
diff --git a/bin/dig/dig.docbook b/bin/dig/dig.docbook
index 028f0fcd7324..7a01ec064d15 100644
--- a/bin/dig/dig.docbook
+++ b/bin/dig/dig.docbook
@@ -22,7 +22,7 @@
<refentry id="man.dig">
<refentryinfo>
- <date>Jun 30, 2000</date>
+ <date>June 30, 2000</date>
</refentryinfo>
<refmeta>
@@ -119,7 +119,7 @@
<para>
Unless it is told to query a specific name server,
<command>dig</command> will try each of the servers listed in
- <filename>/etc/resolv.conf</filename>. If no usable server addreses
+ <filename>/etc/resolv.conf</filename>. If no usable server addresses
are found, <command>dig</command> will send the query to the local
host.
</para>
@@ -897,6 +897,16 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>+[no]keepopen</option></term>
+ <listitem>
+ <para>
+ Keep the TCP socket open between queries and reuse it rather
+ than creating a new TCP socket for each lookup. The default
+ is <option>+nokeepopen</option>.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
diff --git a/bin/dig/dig.html b/bin/dig/dig.html
index 768582e37bb1..f6d7f6f2420b 100644
--- a/bin/dig/dig.html
+++ b/bin/dig/dig.html
@@ -58,7 +58,7 @@
<p>
Unless it is told to query a specific name server,
<span><strong class="command">dig</strong></span> will try each of the servers listed in
- <code class="filename">/etc/resolv.conf</code>. If no usable server addreses
+ <code class="filename">/etc/resolv.conf</code>. If no usable server addresses
are found, <span><strong class="command">dig</strong></span> will send the query to the local
host.
</p>
@@ -583,13 +583,19 @@
<dd><p>
Include an EDNS name server ID request when sending a query.
</p></dd>
+<dt><span class="term"><code class="option">+[no]keepopen</code></span></dt>
+<dd><p>
+ Keep the TCP socket open between queries and reuse it rather
+ than creating a new TCP socket for each lookup. The default
+ is <code class="option">+nokeepopen</code>.
+ </p></dd>
</dl></div>
<p>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545324"></a><h2>MULTIPLE QUERIES</h2>
+<a name="id2545341"></a><h2>MULTIPLE QUERIES</h2>
<p>
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
supports
@@ -635,7 +641,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545386"></a><h2>IDN SUPPORT</h2>
+<a name="id2545403"></a><h2>IDN SUPPORT</h2>
<p>
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
@@ -649,14 +655,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545409"></a><h2>FILES</h2>
+<a name="id2545426"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
<p><code class="filename">${HOME}/.digrc</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545426"></a><h2>SEE ALSO</h2>
+<a name="id2545443"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
@@ -664,7 +670,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545531"></a><h2>BUGS</h2>
+<a name="id2545548"></a><h2>BUGS</h2>
<p>
There are probably too many query options.
</p>
diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c
index 3c4b335d060c..56d763c295d7 100644
--- a/bin/dig/dighost.c
+++ b/bin/dig/dighost.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -46,8 +46,10 @@
#include <dns/byaddr.h>
#ifdef DIG_SIGCHASE
+#include <dns/callbacks.h>
#include <dns/dnssec.h>
#include <dns/ds.h>
+#include <dns/master.h>
#include <dns/nsec.h>
#include <isc/random.h>
#include <ctype.h>
@@ -123,7 +125,8 @@ isc_boolean_t
usesearch = ISC_FALSE,
showsearch = ISC_FALSE,
qr = ISC_FALSE,
- is_dst_up = ISC_FALSE;
+ is_dst_up = ISC_FALSE,
+ keep_open = ISC_FALSE;
in_port_t port = 53;
unsigned int timeout = 0;
unsigned int extrabytes;
@@ -155,6 +158,9 @@ static void idn_check_result(idn_result_t r, const char *msg);
int idnoptions = 0;
#endif
+isc_socket_t *keep = NULL;
+isc_sockaddr_t keepaddr;
+
/*%
* Exit Codes:
*
@@ -178,6 +184,7 @@ isc_boolean_t validated = ISC_TRUE;
isc_entropy_t *entp = NULL;
isc_mempool_t *commctx = NULL;
isc_boolean_t debugging = ISC_FALSE;
+isc_boolean_t debugtiming = ISC_FALSE;
isc_boolean_t memdebugging = ISC_FALSE;
char *progname = NULL;
isc_mutex_t lookup_lock;
@@ -250,11 +257,10 @@ isc_result_t prove_nx(dns_message_t * msg, dns_name_t * name,
dns_rdataset_t ** sigrdataset);
static void nameFromString(const char *str, dns_name_t *p_ret);
int inf_name(dns_name_t * name1, dns_name_t * name2);
-isc_result_t opentmpkey(isc_mem_t *mctx, const char *file,
- char **tempp, FILE **fp);
isc_result_t removetmpkey(isc_mem_t *mctx, const char *file);
void clean_trustedkey(void);
-void insert_trustedkey(dst_key_t **key);
+isc_result_t insert_trustedkey(void *arg, dns_name_t *name,
+ dns_rdataset_t *rdataset);
#if DIG_SIGCHASE_BU
isc_result_t getneededrr(dns_message_t *msg);
void sigchase_bottom_up(dns_message_t *msg);
@@ -442,7 +448,7 @@ static isc_result_t
append(const char *text, int len, char **p, char *end) {
if (len > end - *p)
return (ISC_R_NOSPACE);
- memcpy(*p, text, len);
+ memmove(*p, text, len);
*p += len;
return (ISC_R_SUCCESS);
}
@@ -459,7 +465,7 @@ reverse_octets(const char *in, char **p, char *end) {
result = append(".", 1, p, end);
if (result != ISC_R_SUCCESS)
return (result);
- len = dot - in;
+ len = (int)(dot - in);
} else {
len = strlen(in);
}
@@ -489,7 +495,7 @@ get_reverse(char *reverse, size_t len, char *value, isc_boolean_t ip6_int,
result = dns_byaddr_createptrname2(&addr, options, name);
if (result != ISC_R_SUCCESS)
return (result);
- dns_name_format(name, reverse, len);
+ dns_name_format(name, reverse, (unsigned int)len);
return (ISC_R_SUCCESS);
} else {
/*
@@ -535,9 +541,15 @@ fatal(const char *format, ...) {
void
debug(const char *format, ...) {
va_list args;
+ isc_time_t t;
if (debugging) {
fflush(stdout);
+ if (debugtiming) {
+ TIME_NOW(&t);
+ fprintf(stderr, "%d.%06d: ", isc_time_seconds(&t),
+ isc_time_nanoseconds(&t) / 1000);
+ }
va_start(args, format);
vfprintf(stderr, format, args);
va_end(args);
@@ -1313,6 +1325,7 @@ setup_libs(void) {
result = isc_mem_create(0, 0, &mctx);
check_result(result, "isc_mem_create");
+ isc_mem_setname(mctx, "dig", NULL);
result = isc_log_create(mctx, &lctx, &logconfig);
check_result(result, "isc_log_create");
@@ -1331,6 +1344,7 @@ setup_libs(void) {
result = isc_task_create(taskmgr, 0, &global_task);
check_result(result, "isc_task_create");
+ isc_task_setname(global_task, "dig", NULL);
result = isc_timermgr_create(mctx, &timermgr);
check_result(result, "isc_timermgr_create");
@@ -1880,6 +1894,9 @@ static isc_boolean_t
next_origin(dig_query_t *query) {
dig_lookup_t *lookup;
dig_searchlist_t *search;
+ dns_fixedname_t fixed;
+ dns_name_t *name;
+ isc_result_t result;
INSIST(!free_now);
@@ -1892,6 +1909,19 @@ next_origin(dig_query_t *query) {
* about finding the next entry.
*/
return (ISC_FALSE);
+
+ /*
+ * Check for a absolute name or ndots being met.
+ */
+ dns_fixedname_init(&fixed);
+ name = dns_fixedname_name(&fixed);
+ result = dns_name_fromstring2(name, query->lookup->textname, NULL,
+ 0, NULL);
+ if (result == ISC_R_SUCCESS &&
+ (dns_name_isabsolute(name) ||
+ (int)dns_name_countlabels(name) > ndots))
+ return (ISC_FALSE);
+
if (query->lookup->origin == NULL && !query->lookup->need_search)
/*
* Then we just did rootorg; there's nothing left.
@@ -2300,6 +2330,7 @@ setup_lookup(dig_lookup_t *lookup) {
query->rr_count = 0;
query->msg_count = 0;
query->byte_count = 0;
+ query->ixfr_axfr = ISC_FALSE;
ISC_LIST_INIT(query->recvlist);
ISC_LIST_INIT(query->lengthlist);
query->sock = NULL;
@@ -2348,8 +2379,10 @@ 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);
+ isc_mem_free(mctx, b);
+ }
query = event->ev_arg;
query->waiting_senddone = ISC_FALSE;
@@ -2504,6 +2537,15 @@ send_tcp_connect(dig_query_t *query) {
}
INSIST(query->sock == NULL);
+
+ if (keep != NULL && isc_sockaddr_equal(&keepaddr, &query->sockaddr)) {
+ sockcount++;
+ isc_socket_attach(keep, &query->sock);
+ query->waiting_connect = ISC_FALSE;
+ launch_next_query(query, ISC_TRUE);
+ goto search;
+ }
+
result = isc_socket_create(socketmgr,
isc_sockaddr_pf(&query->sockaddr),
isc_sockettype_tcp, &query->sock);
@@ -2526,6 +2568,7 @@ send_tcp_connect(dig_query_t *query) {
result = isc_socket_connect(query->sock, &query->sockaddr,
global_task, connect_done, query);
check_result(result, "isc_socket_connect");
+ search:
/*
* If we're at the endgame of a nameserver search, we need to
* immediately bring up all the queries. Do it here.
@@ -2541,6 +2584,17 @@ send_tcp_connect(dig_query_t *query) {
}
}
+static isc_buffer_t *
+clone_buffer(isc_buffer_t *source) {
+ isc_buffer_t *buffer;
+ buffer = isc_mem_allocate(mctx, sizeof(*buffer));
+ if (buffer == NULL)
+ fatal("memory allocation failure in %s:%d",
+ __FILE__, __LINE__);
+ *buffer = *source;
+ return (buffer);
+}
+
/*%
* Send a UDP packet to the remote nameserver, possible starting the
* recv action as well. Also make sure that the timer is running and
@@ -2550,6 +2604,7 @@ static void
send_udp(dig_query_t *query) {
dig_lookup_t *l = NULL;
isc_result_t result;
+ isc_buffer_t *sendbuf;
debug("send_udp(%p)", query);
@@ -2596,14 +2651,16 @@ send_udp(dig_query_t *query) {
debug("recvcount=%d", recvcount);
}
ISC_LIST_INIT(query->sendlist);
- ISC_LIST_ENQUEUE(query->sendlist, &query->sendbuf, link);
+ sendbuf = clone_buffer(&query->sendbuf);
+ ISC_LIST_ENQUEUE(query->sendlist, sendbuf, link);
debug("sending a request");
TIME_NOW(&query->time_sent);
INSIST(query->sock != NULL);
query->waiting_senddone = ISC_TRUE;
- result = isc_socket_sendtov(query->sock, &query->sendlist,
- global_task, send_done, query,
- &query->sockaddr, NULL);
+ result = isc_socket_sendtov2(query->sock, &query->sendlist,
+ global_task, send_done, query,
+ &query->sockaddr, NULL,
+ ISC_SOCKFLAG_NORETRY);
check_result(result, "isc_socket_sendtov");
sendcount++;
}
@@ -2765,6 +2822,7 @@ static void
launch_next_query(dig_query_t *query, isc_boolean_t include_question) {
isc_result_t result;
dig_lookup_t *l;
+ isc_buffer_t *buffer;
INSIST(!free_now);
@@ -2788,9 +2846,15 @@ launch_next_query(dig_query_t *query, isc_boolean_t include_question) {
isc_buffer_putuint16(&query->slbuf, (isc_uint16_t) query->sendbuf.used);
ISC_LIST_INIT(query->sendlist);
ISC_LINK_INIT(&query->slbuf, link);
- ISC_LIST_ENQUEUE(query->sendlist, &query->slbuf, link);
- if (include_question)
- ISC_LIST_ENQUEUE(query->sendlist, &query->sendbuf, link);
+ if (!query->first_soa_rcvd) {
+ buffer = clone_buffer(&query->slbuf);
+ ISC_LIST_ENQUEUE(query->sendlist, buffer, link);
+ if (include_question) {
+ buffer = clone_buffer(&query->sendbuf);
+ ISC_LIST_ENQUEUE(query->sendlist, buffer, link);
+ }
+ }
+
ISC_LINK_INIT(&query->lengthbuf, link);
ISC_LIST_ENQUEUE(query->lengthlist, &query->lengthbuf, link);
@@ -2890,6 +2954,12 @@ connect_done(isc_task_t *task, isc_event_t *event) {
UNLOCK_LOOKUP;
return;
}
+ if (keep_open) {
+ if (keep != NULL)
+ isc_socket_detach(&keep);
+ isc_socket_attach(query->sock, &keep);
+ keepaddr = query->sockaddr;
+ }
launch_next_query(query, ISC_TRUE);
isc_event_free(&event);
UNLOCK_LOOKUP;
@@ -2913,6 +2983,9 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg,
isc_boolean_t ixfr = query->lookup->rdtype == dns_rdatatype_ixfr;
isc_boolean_t axfr = query->lookup->rdtype == dns_rdatatype_axfr;
+ if (ixfr)
+ axfr = query->ixfr_axfr;
+
debug("check_for_more_data()");
/*
@@ -2961,7 +3034,7 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg,
query->second_rr_rcvd = ISC_TRUE;
query->second_rr_serial = 0;
debug("got the second rr as nonsoa");
- axfr = ISC_TRUE;
+ axfr = query->ixfr_axfr = ISC_TRUE;
goto next_rdata;
}
@@ -3397,7 +3470,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
}
if (!l->doing_xfr || l->xfr_q == query) {
- if (msg->rcode != dns_rcode_noerror &&
+ if (msg->rcode == dns_rcode_nxdomain &&
(l->origin != NULL || l->need_search)) {
if (!next_origin(query) || showsearch) {
printmessage(query, msg, ISC_TRUE);
@@ -3668,18 +3741,31 @@ cancel_all(void) {
if (current_lookup != NULL) {
if (current_lookup->timer != NULL)
isc_timer_detach(&current_lookup->timer);
- q = ISC_LIST_HEAD(current_lookup->q);
- while (q != NULL) {
- debug("canceling query %p, belonging to %p",
- q, current_lookup);
+ for (q = ISC_LIST_HEAD(current_lookup->q);
+ q != NULL;
+ q = nq)
+ {
nq = ISC_LIST_NEXT(q, link);
- if (q->sock != NULL) {
+ debug("canceling pending query %p, belonging to %p",
+ q, current_lookup);
+ if (q->sock != NULL)
isc_socket_cancel(q->sock, NULL,
ISC_SOCKCANCEL_ALL);
- } else {
+ else
+ clear_query(q);
+ }
+ for (q = ISC_LIST_HEAD(current_lookup->connecting);
+ q != NULL;
+ q = nq)
+ {
+ nq = ISC_LIST_NEXT(q, clink);
+ debug("canceling connecting query %p, belonging to %p",
+ q, current_lookup);
+ if (q->sock != NULL)
+ isc_socket_cancel(q->sock, NULL,
+ ISC_SOCKCANCEL_ALL);
+ else
clear_query(q);
- }
- q = nq;
}
}
l = ISC_LIST_HEAD(lookup_list);
@@ -3706,6 +3792,8 @@ destroy_libs(void) {
isc_result_t result;
#endif
+ if (keep != NULL)
+ isc_socket_detach(&keep);
debug("destroy_libs()");
if (global_task != NULL) {
debug("freeing task");
@@ -3857,7 +3945,7 @@ output_filter(isc_buffer_t *buffer, unsigned int used_org,
fromlen = isc_buffer_usedlength(buffer) - used_org;
if (fromlen >= MAXDLEN)
return (ISC_R_SUCCESS);
- memcpy(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);
+ memmove(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);
end_with_dot = (tmp1[fromlen - 1] == '.') ? ISC_TRUE : ISC_FALSE;
if (absolute && !end_with_dot) {
fromlen++;
@@ -3886,8 +3974,8 @@ output_filter(isc_buffer_t *buffer, unsigned int used_org,
return (ISC_R_NOSPACE);
isc_buffer_subtract(buffer, isc_buffer_usedlength(buffer) - used_org);
- memcpy(isc_buffer_used(buffer), tmp1, tolen);
- isc_buffer_add(buffer, tolen);
+ memmove(isc_buffer_used(buffer), tmp1, tolen);
+ isc_buffer_add(buffer, (unsigned int)tolen);
return (ISC_R_SUCCESS);
}
@@ -3906,7 +3994,8 @@ append_textname(char *name, const char *origin, size_t namesize) {
if (namelen + 1 + originlen >= namesize)
return idn_buffer_overflow;
- name[namelen++] = '.';
+ if (*origin != '.')
+ name[namelen++] = '.';
(void)strcpy(name + namelen, origin);
return idn_success;
}
@@ -4129,17 +4218,35 @@ sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers,
return (NULL);
}
-void
-insert_trustedkey(dst_key_t **keyp)
+isc_result_t
+insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset)
{
- if (*keyp == NULL)
- return;
- if (tk_list.nb_tk >= MAX_TRUSTED_KEY)
- return;
+ isc_result_t result;
+ dst_key_t *key;
- tk_list.key[tk_list.nb_tk++] = *keyp;
- *keyp = NULL;
- return;
+ UNUSED(arg);
+
+ if (rdataset == NULL || rdataset->type != dns_rdatatype_dnskey)
+ return (ISC_R_SUCCESS);
+
+ for (result = dns_rdataset_first(rdataset);
+ result == ISC_R_SUCCESS;
+ result = dns_rdataset_next(rdataset)) {
+ dns_rdata_t rdata = DNS_RDATA_INIT;
+ isc_buffer_t b;
+
+ dns_rdataset_current(rdataset, &rdata);
+ isc_buffer_init(&b, rdata.data, rdata.length);
+ isc_buffer_add(&b, rdata.length);
+ if (tk_list.nb_tk >= MAX_TRUSTED_KEY)
+ return (ISC_R_SUCCESS);
+ key = NULL;
+ result = dst_key_fromdns(name, rdata.rdclass, &b, mctx, &key);
+ if (result != ISC_R_SUCCESS)
+ continue;
+ tk_list.key[tk_list.nb_tk++] = key;
+ }
+ return (ISC_R_SUCCESS);
}
void
@@ -4186,86 +4293,11 @@ removetmpkey(isc_mem_t *mctx, const char *file)
}
isc_result_t
-opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
- FILE *f = NULL;
- isc_result_t result;
- char *tempname = NULL;
- char *tempnamekey = NULL;
- int tempnamelen;
- int tempnamekeylen;
- char *x;
- char *cp;
- isc_uint32_t which;
-
- while (1) {
- tempnamelen = strlen(file) + 20;
- tempname = isc_mem_allocate(mctx, tempnamelen);
- if (tempname == NULL)
- return (ISC_R_NOMEMORY);
- memset(tempname, 0, tempnamelen);
-
- result = isc_file_mktemplate(file, tempname, tempnamelen);
- if (result != ISC_R_SUCCESS)
- goto cleanup;
-
- cp = tempname;
- while (*cp != '\0')
- cp++;
- if (cp == tempname) {
- 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);
- strlcpy(tempnamekey, tempname, tempnamelen);
- strcat(tempnamekey ,".key");
-
-
- if (isc_file_exists(tempnamekey)) {
- isc_mem_free(mctx, tempnamekey);
- isc_mem_free(mctx, tempname);
- continue;
- }
-
- if ((f = fopen(tempnamekey, "w")) == NULL) {
- printf("get_trusted_key(): trusted key not found %s\n",
- tempnamekey);
- return (ISC_R_FAILURE);
- }
- break;
- }
- isc_mem_free(mctx, tempnamekey);
- *tempp = tempname;
- *fp = f;
- return (ISC_R_SUCCESS);
-
- cleanup:
- isc_mem_free(mctx, tempname);
-
- return (result);
-}
-
-isc_result_t
get_trusted_key(isc_mem_t *mctx)
{
isc_result_t result;
const char *filename = NULL;
- char *filetemp = NULL;
- char buf[1500];
- FILE *fp, *fptemp;
- dst_key_t *key = NULL;
+ dns_rdatacallbacks_t callbacks;
result = isc_file_exists(trustedkey);
if (result != ISC_TRUE) {
@@ -4286,40 +4318,11 @@ get_trusted_key(isc_mem_t *mctx)
return (ISC_R_FAILURE);
}
- if ((fp = fopen(filename, "r")) == NULL) {
- printf("get_trusted_key(): trusted key not found %s\n",
- filename);
- return (ISC_R_FAILURE);
- }
- while (fgets(buf, sizeof(buf), fp) != NULL) {
- result = opentmpkey(mctx,"tmp_file", &filetemp, &fptemp);
- if (result != ISC_R_SUCCESS) {
- fclose(fp);
- return (ISC_R_FAILURE);
- }
- if (fputs(buf, fptemp) < 0) {
- fclose(fp);
- fclose(fptemp);
- return (ISC_R_FAILURE);
- }
- fclose(fptemp);
- result = dst_key_fromnamedfile(filetemp, NULL, DST_TYPE_PUBLIC,
- mctx, &key);
- removetmpkey(mctx, filetemp);
- isc_mem_free(mctx, filetemp);
- if (result != ISC_R_SUCCESS) {
- fclose(fp);
- return (ISC_R_FAILURE);
- }
-#if 0
- dst_key_tofile(key, DST_TYPE_PUBLIC,"/tmp");
-#endif
- insert_trustedkey(&key);
- if (key != NULL)
- dst_key_free(&key);
- }
- fclose(fp);
- return (ISC_R_SUCCESS);
+ dns_rdatacallbacks_init_stdio(&callbacks);
+ callbacks.add = insert_trustedkey;
+ return (dns_master_loadfile(filename, dns_rootname, dns_rootname,
+ current_lookup->rdclass, 0, &callbacks,
+ mctx));
}
@@ -4333,7 +4336,7 @@ nameFromString(const char *str, dns_name_t *p_ret) {
REQUIRE(p_ret != NULL);
REQUIRE(str != NULL);
- isc_buffer_init(&buffer, str, len);
+ isc_buffer_constinit(&buffer, str, len);
isc_buffer_add(&buffer, len);
dns_fixedname_init(&fixedname);
diff --git a/bin/dig/host.c b/bin/dig/host.c
index 49fe991e1ca0..d1392fc8460b 100644
--- a/bin/dig/host.c
+++ b/bin/dig/host.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -638,6 +638,8 @@ pre_parse_args(int argc, char **argv) {
case 'w': break;
case 'C': break;
case 'D':
+ if (debugging)
+ debugtiming = ISC_TRUE;
debugging = ISC_TRUE;
break;
case 'N': break;
diff --git a/bin/dig/include/dig/dig.h b/bin/dig/include/dig/dig.h
index f04440cfb527..0150d11dfb3c 100644
--- a/bin/dig/include/dig/dig.h
+++ b/bin/dig/include/dig/dig.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -202,6 +202,7 @@ struct dig_query {
isc_uint32_t second_rr_serial;
isc_uint32_t msg_count;
isc_uint32_t rr_count;
+ isc_boolean_t ixfr_axfr;
char *servname;
char *userarg;
isc_bufferlist_t sendlist,
@@ -275,7 +276,8 @@ extern isc_boolean_t validated;
extern isc_taskmgr_t *taskmgr;
extern isc_task_t *global_task;
extern isc_boolean_t free_now;
-extern isc_boolean_t debugging, memdebugging;
+extern isc_boolean_t debugging, debugtiming, memdebugging;
+extern isc_boolean_t keep_open;
extern char *progname;
extern int tries;
diff --git a/bin/dig/nslookup.1 b/bin/dig/nslookup.1
index f988995ba86e..3d6975910701 100644
--- a/bin/dig/nslookup.1
+++ b/bin/dig/nslookup.1
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004-2007, 2010 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004-2007, 2010, 2013, 2014 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
@@ -216,6 +216,11 @@ Tell the name server to query other servers if it does not have the information.
(Default = recurse; abbreviation = [no]rec)
.RE
.PP
+\fBndots=\fR\fInumber\fR
+.RS 4
+Set the number of dots (label separators) in a domain that will disable searching. Absolute names always stop searching.
+.RE
+.PP
\fBretry=\fR\fInumber\fR
.RS 4
Set the number of retries to number.
@@ -254,5 +259,5 @@ Try the next nameserver if a nameserver responds with SERVFAIL or a referral (no
.PP
Andrew Cherenson
.SH "COPYRIGHT"
-Copyright \(co 2004\-2007, 2010 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004\-2007, 2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
.br
diff --git a/bin/dig/nslookup.c b/bin/dig/nslookup.c
index 3f5b82fd292d..6c2f0a949983 100644
--- a/bin/dig/nslookup.c
+++ b/bin/dig/nslookup.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -442,8 +442,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
dns_name_format(query->lookup->name,
nametext, sizeof(nametext));
printf("** server can't find %s: %s\n",
- (msg->rcode != dns_rcode_nxdomain) ? nametext :
- query->lookup->textname, rcode_totext(msg->rcode));
+ nametext, rcode_totext(msg->rcode));
debug("returning with rcode == 0");
/* the lookup failed */
@@ -502,8 +501,8 @@ show_settings(isc_boolean_t full, isc_boolean_t serv_only) {
printf(" %s\t\t%s\n",
usesearch ? "search" : "nosearch",
recurse ? "recurse" : "norecurse");
- printf(" timeout = %d\t\tretry = %d\tport = %d\n",
- timeout, tries, port);
+ printf(" timeout = %d\t\tretry = %d\tport = %d\tndots = %d\n",
+ timeout, tries, port, ndots);
printf(" querytype = %-8s\tclass = %s\n", deftype, defclass);
printf(" srchlist = ");
for (listent = ISC_LIST_HEAD(search_list);
@@ -575,6 +574,14 @@ set_tries(const char *value) {
}
static void
+set_ndots(const char *value) {
+ isc_uint32_t n;
+ isc_result_t result = parse_uint(&n, value, 128, "ndots");
+ if (result == ISC_R_SUCCESS)
+ ndots = n;
+}
+
+static void
setoption(char *opt) {
if (strncasecmp(opt, "all", 4) == 0) {
show_settings(ISC_TRUE, ISC_FALSE);
@@ -654,6 +661,8 @@ setoption(char *opt) {
nofail=ISC_FALSE;
} else if (strncasecmp(opt, "nofail", 3) == 0) {
nofail=ISC_TRUE;
+ } else if (strncasecmp(opt, "ndots=", 6) == 0) {
+ set_ndots(&opt[6]);
} else {
printf("*** Invalid option: %s\n", opt);
}
@@ -767,7 +776,8 @@ get_next_command(void) {
if (interactive) {
#ifdef HAVE_READLINE
ptr = readline("> ");
- add_history(ptr);
+ if (ptr != NULL)
+ add_history(ptr);
#else
fputs("> ", stderr);
fflush(stderr);
diff --git a/bin/dig/nslookup.docbook b/bin/dig/nslookup.docbook
index f4d497b3998b..4da87b1eb5dd 100644
--- a/bin/dig/nslookup.docbook
+++ b/bin/dig/nslookup.docbook
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004-2007, 2010 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2007, 2010, 2013, 2014 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
@@ -30,11 +30,7 @@
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - 3. All advertising materials mentioning features or use of this software
- - must display the following acknowledgement:
- - This product includes software developed by the University of
- - California, Berkeley and its contributors.
- - 4. Neither the name of the University nor the names of its contributors
+ - 3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
@@ -74,6 +70,8 @@
<year>2006</year>
<year>2007</year>
<year>2010</year>
+ <year>2013</year>
+ <year>2014</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -410,6 +408,17 @@ nslookup -query=hinfo -timeout=10
</varlistentry>
<varlistentry>
+ <term><constant>ndots=</constant><replaceable>number</replaceable></term>
+ <listitem>
+ <para>
+ Set the number of dots (label separators) in a domain
+ that will disable searching. Absolute names always
+ stop searching.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><constant>retry=</constant><replaceable>number</replaceable></term>
<listitem>
<para>
diff --git a/bin/dig/nslookup.html b/bin/dig/nslookup.html
index 4bf6aab5c43c..b7e88e947319 100644
--- a/bin/dig/nslookup.html
+++ b/bin/dig/nslookup.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004-2007, 2010 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2007, 2010, 2013, 2014 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
@@ -31,7 +31,7 @@
<div class="cmdsynopsis"><p><code class="command">nslookup</code> [<code class="option">-option</code>] [name | -] [server]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543361"></a><h2>DESCRIPTION</h2>
+<a name="id2543435"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">Nslookup</strong></span>
is a program to query Internet domain name servers. <span><strong class="command">Nslookup</strong></span>
has two modes: interactive and non-interactive. Interactive mode allows
@@ -43,7 +43,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543377"></a><h2>ARGUMENTS</h2>
+<a name="id2543451"></a><h2>ARGUMENTS</h2>
<p>
Interactive mode is entered in the following cases:
</p>
@@ -78,7 +78,7 @@ nslookup -query=hinfo -timeout=10
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543420"></a><h2>INTERACTIVE COMMANDS</h2>
+<a name="id2543495"></a><h2>INTERACTIVE COMMANDS</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="constant">host</code> [<span class="optional">server</span>]</span></dt>
<dd>
@@ -249,6 +249,12 @@ nslookup -query=hinfo -timeout=10
(Default = recurse; abbreviation = [no]rec)
</p>
</dd>
+<dt><span class="term"><code class="constant">ndots=</code><em class="replaceable"><code>number</code></em></span></dt>
+<dd><p>
+ Set the number of dots (label separators) in a domain
+ that will disable searching. Absolute names always
+ stop searching.
+ </p></dd>
<dt><span class="term"><code class="constant">retry=</code><em class="replaceable"><code>number</code></em></span></dt>
<dd><p>
Set the number of retries to number.
@@ -288,19 +294,19 @@ nslookup -query=hinfo -timeout=10
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2546286"></a><h2>FILES</h2>
+<a name="id2546309"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2546298"></a><h2>SEE ALSO</h2>
+<a name="id2546321"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2546332"></a><h2>Author</h2>
+<a name="id2546355"></a><h2>Author</h2>
<p>
Andrew Cherenson
</p>
diff --git a/bin/dnssec/Makefile.in b/bin/dnssec/Makefile.in
index 4f8bceb968dc..5966d16389f6 100644
--- a/bin/dnssec/Makefile.in
+++ b/bin/dnssec/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2005, 2007-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2005, 2007-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -45,13 +45,13 @@ NOSYMLIBS = ${DNSLIBS} ${ISCNOSYMLIBS} @LIBS@
TARGETS = dnssec-keygen@EXEEXT@ dnssec-signzone@EXEEXT@ \
dnssec-keyfromlabel@EXEEXT@ dnssec-dsfromkey@EXEEXT@ \
dnssec-revoke@EXEEXT@ dnssec-settime@EXEEXT@ \
- dnssec-verify@EXEEXT@
+ dnssec-verify@EXEEXT@ dnssec-importkey@EXEEXT@
OBJS = dnssectool.@O@
SRCS = dnssec-dsfromkey.c dnssec-keyfromlabel.c dnssec-keygen.c \
dnssec-revoke.c dnssec-settime.c dnssec-signzone.c \
- dnssec-verify.c dnssectool.c
+ dnssec-verify.c dnssec-importkey.c dnssectool.c
MANPAGES = dnssec-dsfromkey.8 dnssec-keyfromlabel.8 dnssec-keygen.8 \
dnssec-revoke.8 dnssec-settime.8 dnssec-signzone.8 \
@@ -102,6 +102,10 @@ dnssec-settime@EXEEXT@: dnssec-settime.@O@ ${OBJS} ${DEPLIBS}
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
dnssec-settime.@O@ ${OBJS} ${LIBS}
+dnssec-importkey@EXEEXT@: dnssec-importkey.@O@ ${OBJS} ${DEPLIBS}
+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
+ dnssec-importkey.@O@ ${OBJS} ${LIBS}
+
doc man:: ${MANOBJS}
docclean manclean maintainer-clean::
diff --git a/bin/dnssec/dnssec-importkey.8 b/bin/dnssec/dnssec-importkey.8
new file mode 100644
index 000000000000..a7b31261070d
--- /dev/null
+++ b/bin/dnssec/dnssec-importkey.8
@@ -0,0 +1,112 @@
+.\" Copyright (C) 2013 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$
+.\"
+.hy 0
+.ad l
+'\" t
+.\" Title: dnssec-importkey
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\" Date: August 30, 2013
+.\" Manual: BIND9
+.\" Source: BIND9
+.\" Language: English
+.\"
+.TH "DNSSEC\-IMPORTKEY" "8" "August 30, 2013" "BIND9" "BIND9"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+dnssec-importkey \- Import DNSKEY records from external systems so they can be managed\&.
+.SH "SYNOPSIS"
+.HP 17
+\fBdnssec\-importkey\fR [\fB\-f\ \fR\fB\fIfilename\fR\fR] [\fB\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-P\ \fR\fB\fIdate/offset\fR\fR] [\fB\-D\ \fR\fB\fIdate/offset\fR\fR] [\fB\-h\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fBkeyname\fR]
+.SH "DESCRIPTION"
+.PP
+\fBdnssec\-importkey\fR
+read a DNSKEY record and generated a \&.key/\&.private key pair\&. Publication (\fB\-P\fR) and deletions (\fB\-D\fR) times can be set for the key\&.
+.SH "OPTIONS"
+.PP
+\-f \fIfilename\fR
+.RS 4
+Filename to read the key from\&.
+.RE
+.PP
+\-K \fIdirectory\fR
+.RS 4
+Sets the directory in which the key files are to reside\&.
+.RE
+.PP
+\-L \fIttl\fR
+.RS 4
+Sets the default TTL to use for this key when it is converted into a DNSKEY RR\&. If the key is imported into a zone, this is the TTL that will be used for it, unless there was already a DNSKEY RRset in place, in which case the existing TTL would take precedence\&. importkey the default TTL to
+0
+or
+none
+removes it\&.
+.RE
+.PP
+\-h
+.RS 4
+Emit usage message and exit\&.
+.RE
+.PP
+\-v \fIlevel\fR
+.RS 4
+Sets the debugging level\&.
+.RE
+.SH "TIMING OPTIONS"
+.PP
+Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS\&. If the argument begins with a \*(Aq+\*(Aq or \*(Aq\-\*(Aq, it is interpreted as an offset from the present time\&. For convenience, if such an offset is followed by one of the suffixes \*(Aqy\*(Aq, \*(Aqmo\*(Aq, \*(Aqw\*(Aq, \*(Aqd\*(Aq, \*(Aqh\*(Aq, or \*(Aqmi\*(Aq, then the offset is computed in years (defined as 365 24\-hour days, ignoring leap years), months (defined as 30 24\-hour days), weeks, days, hours, or minutes, respectively\&. Without a suffix, the offset is computed in seconds\&. To unset a date, use \*(Aqnone\*(Aq\&.
+.PP
+\-P \fIdate/offset\fR
+.RS 4
+Sets the date on which a key is to be published to the zone\&. After that date, the key will be included in the zone but will not be used to sign it\&.
+.RE
+.PP
+\-D \fIdate/offset\fR
+.RS 4
+Sets the date on which the key is to be deleted\&. After that date, the key will no longer be included in the zone\&. (It may remain in the key repository, however\&.)
+.RE
+.SH "SEE ALSO"
+.PP
+\fBdnssec-keygen\fR(8),
+\fBdnssec-signzone\fR(8),
+BIND 9 Administrator Reference Manual,
+RFC 5011\&.
+.SH "AUTHOR"
+.PP
+Internet Systems Consortium
+.SH "COPYRIGHT"
+.br
+Copyright \(co 2013 Internet Systems Consortium, Inc. ("ISC")
+.br
diff --git a/bin/dnssec/dnssec-importkey.c b/bin/dnssec/dnssec-importkey.c
new file mode 100644
index 000000000000..67502a6939d5
--- /dev/null
+++ b/bin/dnssec/dnssec-importkey.c
@@ -0,0 +1,434 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+/*! \file */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <isc/buffer.h>
+#include <isc/commandline.h>
+#include <isc/entropy.h>
+#include <isc/hash.h>
+#include <isc/mem.h>
+#include <isc/print.h>
+#include <isc/string.h>
+#include <isc/util.h>
+
+#include <dns/callbacks.h>
+#include <dns/db.h>
+#include <dns/dbiterator.h>
+#include <dns/ds.h>
+#include <dns/fixedname.h>
+#include <dns/keyvalues.h>
+#include <dns/log.h>
+#include <dns/master.h>
+#include <dns/name.h>
+#include <dns/rdata.h>
+#include <dns/rdataclass.h>
+#include <dns/rdataset.h>
+#include <dns/rdatasetiter.h>
+#include <dns/rdatatype.h>
+#include <dns/result.h>
+
+#include <dst/dst.h>
+
+#include "dnssectool.h"
+
+#ifndef PATH_MAX
+#define PATH_MAX 1024 /* AIX, WIN32, and others don't define this. */
+#endif
+
+const char *program = "dnssec-importkey";
+int verbose;
+
+static dns_rdataclass_t rdclass;
+static dns_fixedname_t fixed;
+static dns_name_t *name = NULL;
+static isc_mem_t *mctx = NULL;
+static isc_boolean_t setpub = ISC_FALSE, setdel = ISC_FALSE;
+static isc_boolean_t setttl = ISC_FALSE;
+static isc_stdtime_t pub = 0, del = 0;
+static dns_ttl_t ttl = 0;
+
+static isc_result_t
+initname(char *setname) {
+ isc_result_t result;
+ isc_buffer_t buf;
+
+ dns_fixedname_init(&fixed);
+ name = dns_fixedname_name(&fixed);
+
+ isc_buffer_init(&buf, setname, strlen(setname));
+ isc_buffer_add(&buf, strlen(setname));
+ result = dns_name_fromtext(name, &buf, dns_rootname, 0, NULL);
+ return (result);
+}
+
+static void
+db_load_from_stream(dns_db_t *db, FILE *fp) {
+ isc_result_t result;
+ dns_rdatacallbacks_t callbacks;
+
+ dns_rdatacallbacks_init(&callbacks);
+ result = dns_db_beginload(db, &callbacks.add, &callbacks.add_private);
+ if (result != ISC_R_SUCCESS)
+ fatal("dns_db_beginload failed: %s", isc_result_totext(result));
+
+ result = dns_master_loadstream(fp, name, name, rdclass, 0,
+ &callbacks, mctx);
+ if (result != ISC_R_SUCCESS)
+ fatal("can't load from input: %s", isc_result_totext(result));
+
+ result = dns_db_endload(db, &callbacks.add_private);
+ if (result != ISC_R_SUCCESS)
+ fatal("dns_db_endload failed: %s", isc_result_totext(result));
+}
+
+static isc_result_t
+loadset(const char *filename, dns_rdataset_t *rdataset) {
+ isc_result_t result;
+ dns_db_t *db = NULL;
+ dns_dbnode_t *node = NULL;
+ char setname[DNS_NAME_FORMATSIZE];
+
+ dns_name_format(name, setname, sizeof(setname));
+
+ result = dns_db_create(mctx, "rbt", name, dns_dbtype_zone,
+ rdclass, 0, NULL, &db);
+ if (result != ISC_R_SUCCESS)
+ fatal("can't create database");
+
+ if (strcmp(filename, "-") == 0) {
+ db_load_from_stream(db, stdin);
+ filename = "input";
+ } else {
+ result = dns_db_load3(db, filename, dns_masterformat_text,
+ DNS_MASTER_NOTTL);
+ if (result != ISC_R_SUCCESS && result != DNS_R_SEENINCLUDE)
+ fatal("can't load %s: %s", filename,
+ isc_result_totext(result));
+ }
+
+ result = dns_db_findnode(db, name, ISC_FALSE, &node);
+ if (result != ISC_R_SUCCESS)
+ fatal("can't find %s node in %s", setname, filename);
+
+ result = dns_db_findrdataset(db, node, NULL, dns_rdatatype_dnskey,
+ 0, 0, rdataset, NULL);
+
+ if (result == ISC_R_NOTFOUND)
+ fatal("no DNSKEY RR for %s in %s", setname, filename);
+ else if (result != ISC_R_SUCCESS)
+ fatal("dns_db_findrdataset");
+
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+ if (db != NULL)
+ dns_db_detach(&db);
+ return (result);
+}
+
+static void
+loadkey(char *filename, unsigned char *key_buf, unsigned int key_buf_size,
+ dns_rdata_t *rdata)
+{
+ isc_result_t result;
+ dst_key_t *key = NULL;
+ isc_buffer_t keyb;
+ isc_region_t r;
+
+ dns_rdata_init(rdata);
+
+ isc_buffer_init(&keyb, key_buf, key_buf_size);
+
+ result = dst_key_fromnamedfile(filename, NULL, DST_TYPE_PUBLIC,
+ mctx, &key);
+ if (result != ISC_R_SUCCESS)
+ fatal("invalid keyfile name %s: %s",
+ filename, isc_result_totext(result));
+
+ if (verbose > 2) {
+ char keystr[DST_KEY_FORMATSIZE];
+
+ dst_key_format(key, keystr, sizeof(keystr));
+ fprintf(stderr, "%s: %s\n", program, keystr);
+ }
+
+ result = dst_key_todns(key, &keyb);
+ if (result != ISC_R_SUCCESS)
+ fatal("can't decode key");
+
+ isc_buffer_usedregion(&keyb, &r);
+ dns_rdata_fromregion(rdata, dst_key_class(key),
+ dns_rdatatype_dnskey, &r);
+
+ rdclass = dst_key_class(key);
+
+ dns_fixedname_init(&fixed);
+ name = dns_fixedname_name(&fixed);
+ result = dns_name_copy(dst_key_name(key), name, NULL);
+ if (result != ISC_R_SUCCESS)
+ fatal("can't copy name");
+
+ dst_key_free(&key);
+}
+
+static void
+emit(const char *dir, dns_rdata_t *rdata) {
+ isc_result_t result;
+ char keystr[DST_KEY_FORMATSIZE];
+ char pubname[1024];
+ char priname[1024];
+ isc_buffer_t buf;
+ dst_key_t *key = NULL, *tmp = NULL;
+
+ isc_buffer_init(&buf, rdata->data, rdata->length);
+ isc_buffer_add(&buf, rdata->length);
+ result = dst_key_fromdns(name, rdclass, &buf, mctx, &key);
+ if (result != ISC_R_SUCCESS) {
+ fatal("dst_key_fromdns: %s", isc_result_totext(result));
+ }
+
+ isc_buffer_init(&buf, pubname, sizeof(pubname));
+ result = dst_key_buildfilename(key, DST_TYPE_PUBLIC, dir, &buf);
+ if (result != ISC_R_SUCCESS) {
+ fatal("Failed to build public key filename: %s",
+ isc_result_totext(result));
+ }
+ isc_buffer_init(&buf, priname, sizeof(priname));
+ result = dst_key_buildfilename(key, DST_TYPE_PRIVATE, dir, &buf);
+ if (result != ISC_R_SUCCESS) {
+ fatal("Failed to build private key filename: %s",
+ isc_result_totext(result));
+ }
+
+ result = dst_key_fromfile(dst_key_name(key), dst_key_id(key),
+ dst_key_alg(key),
+ DST_TYPE_PUBLIC | DST_TYPE_PRIVATE,
+ dir, mctx, &tmp);
+ if (result == ISC_R_SUCCESS) {
+ if (dst_key_isprivate(tmp) && !dst_key_isexternal(tmp))
+ fatal("Private key already exists in %s", priname);
+ dst_key_free(&tmp);
+ }
+
+ dst_key_setexternal(key, ISC_TRUE);
+ if (setpub)
+ dst_key_settime(key, DST_TIME_PUBLISH, pub);
+ if (setdel)
+ dst_key_settime(key, DST_TIME_DELETE, del);
+ if (setttl)
+ dst_key_setttl(key, ttl);
+
+ result = dst_key_tofile(key, DST_TYPE_PUBLIC|DST_TYPE_PRIVATE,
+ dir);
+ if (result != ISC_R_SUCCESS) {
+ dst_key_format(key, keystr, sizeof(keystr));
+ fatal("Failed to write key %s: %s", keystr,
+ isc_result_totext(result));
+ }
+ printf("%s\n", pubname);
+
+ isc_buffer_clear(&buf);
+ result = dst_key_buildfilename(key, DST_TYPE_PRIVATE, dir, &buf);
+ if (result != ISC_R_SUCCESS) {
+ fatal("Failed to build private key filename: %s",
+ isc_result_totext(result));
+ }
+ printf("%s\n", priname);
+ dst_key_free(&key);
+}
+
+ISC_PLATFORM_NORETURN_PRE static void
+usage(void) ISC_PLATFORM_NORETURN_POST;
+
+static void
+usage(void) {
+ fprintf(stderr, "Usage:\n");
+ fprintf(stderr, " %s options [-K dir] keyfile\n\n", program);
+ fprintf(stderr, " %s options -f file [keyname]\n\n", program);
+ fprintf(stderr, "Version: %s\n", VERSION);
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -f file: read key from zone file\n");
+ fprintf(stderr, " -K <directory>: directory in which to store "
+ "the key files\n");
+ fprintf(stderr, " -L ttl: set default key TTL\n");
+ fprintf(stderr, " -v <verbose level>\n");
+ fprintf(stderr, " -h: print usage and exit\n");
+ fprintf(stderr, "Timing options:\n");
+ fprintf(stderr, " -P date/[+-]offset/none: set/unset key "
+ "publication date\n");
+ fprintf(stderr, " -D date/[+-]offset/none: set/unset key "
+ "deletion date\n");
+
+ exit (-1);
+}
+
+int
+main(int argc, char **argv) {
+ char *classname = NULL;
+ char *filename = NULL, *dir = NULL, *namestr;
+ char *endp;
+ int ch;
+ isc_result_t result;
+ isc_log_t *log = NULL;
+ isc_entropy_t *ectx = NULL;
+ dns_rdataset_t rdataset;
+ dns_rdata_t rdata;
+ isc_stdtime_t now;
+
+ dns_rdata_init(&rdata);
+ isc_stdtime_get(&now);
+
+ if (argc == 1)
+ usage();
+
+ result = isc_mem_create(0, 0, &mctx);
+ if (result != ISC_R_SUCCESS)
+ fatal("out of memory");
+
+ dns_result_register();
+
+ isc_commandline_errprint = ISC_FALSE;
+
+#define CMDLINE_FLAGS "D:f:hK:L:P:v:"
+ while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
+ switch (ch) {
+ case 'D':
+ if (setdel)
+ fatal("-D specified more than once");
+
+ setdel = ISC_TRUE;
+ del = strtotime(isc_commandline_argument, now, now);
+ break;
+ case 'K':
+ dir = isc_commandline_argument;
+ if (strlen(dir) == 0U)
+ fatal("directory must be non-empty string");
+ break;
+ case 'L':
+ if (strcmp(isc_commandline_argument, "none") == 0)
+ ttl = 0;
+ else
+ ttl = strtottl(isc_commandline_argument);
+ setttl = ISC_TRUE;
+ break;
+ case 'P':
+ if (setpub)
+ fatal("-P specified more than once");
+ setpub = ISC_TRUE;
+ pub = strtotime(isc_commandline_argument, now, now);
+ break;
+ case 'f':
+ filename = isc_commandline_argument;
+ break;
+ case 'v':
+ verbose = strtol(isc_commandline_argument, &endp, 0);
+ if (*endp != '\0')
+ fatal("-v must be followed by a number");
+ break;
+ case '?':
+ if (isc_commandline_option != '?')
+ fprintf(stderr, "%s: invalid argument -%c\n",
+ program, isc_commandline_option);
+ /* FALLTHROUGH */
+ case 'h':
+ usage();
+
+ default:
+ fprintf(stderr, "%s: unhandled option -%c\n",
+ program, isc_commandline_option);
+ exit(1);
+ }
+ }
+
+ rdclass = strtoclass(classname);
+
+ if (argc < isc_commandline_index + 1 && filename == NULL)
+ fatal("the key file name was not specified");
+ if (argc > isc_commandline_index + 1)
+ fatal("extraneous arguments");
+
+ if (ectx == NULL)
+ setup_entropy(mctx, NULL, &ectx);
+ result = isc_hash_create(mctx, ectx, DNS_NAME_MAXWIRE);
+ if (result != ISC_R_SUCCESS)
+ fatal("could not initialize hash");
+ result = dst_lib_init(mctx, ectx,
+ ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
+ if (result != ISC_R_SUCCESS)
+ fatal("could not initialize dst: %s",
+ isc_result_totext(result));
+ isc_entropy_stopcallbacksources(ectx);
+
+ setup_logging(verbose, mctx, &log);
+
+ dns_rdataset_init(&rdataset);
+
+ if (filename != NULL) {
+ if (argc < isc_commandline_index + 1) {
+ /* using filename as zone name */
+ namestr = filename;
+ } else
+ namestr = argv[isc_commandline_index];
+
+ result = initname(namestr);
+ if (result != ISC_R_SUCCESS)
+ fatal("could not initialize name %s", namestr);
+
+ result = loadset(filename, &rdataset);
+
+ if (result != ISC_R_SUCCESS)
+ fatal("could not load DNSKEY set: %s\n",
+ isc_result_totext(result));
+
+ for (result = dns_rdataset_first(&rdataset);
+ result == ISC_R_SUCCESS;
+ result = dns_rdataset_next(&rdataset)) {
+
+ dns_rdata_init(&rdata);
+ dns_rdataset_current(&rdataset, &rdata);
+ emit(dir, &rdata);
+ }
+ } else {
+ unsigned char key_buf[DST_KEY_MAXSIZE];
+
+ loadkey(argv[isc_commandline_index], key_buf,
+ DST_KEY_MAXSIZE, &rdata);
+
+ emit(dir, &rdata);
+ }
+
+ if (dns_rdataset_isassociated(&rdataset))
+ dns_rdataset_disassociate(&rdataset);
+ cleanup_logging(&log);
+ dst_lib_destroy();
+ isc_hash_destroy();
+ cleanup_entropy(&ectx);
+ dns_name_destroy();
+ if (verbose > 10)
+ isc_mem_stats(mctx, stdout);
+ isc_mem_destroy(&mctx);
+
+ fflush(stdout);
+ if (ferror(stdout)) {
+ fprintf(stderr, "write error\n");
+ return (1);
+ } else
+ return (0);
+}
diff --git a/bin/dnssec/dnssec-importkey.docbook b/bin/dnssec/dnssec-importkey.docbook
new file mode 100644
index 000000000000..f9b322c884be
--- /dev/null
+++ b/bin/dnssec/dnssec-importkey.docbook
@@ -0,0 +1,225 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+ [<!ENTITY mdash "&#8212;">]>
+<!--
+ - Copyright (C) 2013 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: dnssec-importkey.docbook,v 1.15 2011/11/03 20:21:37 each Exp $ -->
+<refentry id="man.dnssec-importkey">
+ <refentryinfo>
+ <date>August 30, 2013</date>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle><application>dnssec-importkey</application></refentrytitle>
+ <manvolnum>8</manvolnum>
+ <refmiscinfo>BIND9</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname><application>dnssec-importkey</application></refname>
+ <refpurpose>Import DNSKEY records from external systems so they can be managed.</refpurpose>
+ </refnamediv>
+
+ <docinfo>
+ <copyright>
+ <year>2013</year>
+ <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
+ </copyright>
+ </docinfo>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>dnssec-importkey</command>
+ <arg><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
+ <arg><option>-L <replaceable class="parameter">ttl</replaceable></option></arg>
+ <arg><option>-P <replaceable class="parameter">date/offset</replaceable></option></arg>
+ <arg><option>-D <replaceable class="parameter">date/offset</replaceable></option></arg>
+ <arg><option>-h</option></arg>
+ <arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
+ <arg choice="req"><option>keyfile</option></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>dnssec-importkey</command>
+ <arg choice="req"><option>-f <replaceable class="parameter">filename</replaceable></option></arg>
+ <arg><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
+ <arg><option>-L <replaceable class="parameter">ttl</replaceable></option></arg>
+ <arg><option>-P <replaceable class="parameter">date/offset</replaceable></option></arg>
+ <arg><option>-D <replaceable class="parameter">date/offset</replaceable></option></arg>
+ <arg><option>-h</option></arg>
+ <arg><option>-v <replaceable class="parameter">level</replaceable></option></arg>
+ <arg><option>dnsname</option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para><command>dnssec-importkey</command>
+ reads a public DNSKEY record and generates a pair of
+ .key/.private files. The DNSKEY record may be read from an
+ existing .key file, in which case a corresponding .private file
+ will be generated, or it may be read from any other file or
+ from the standard input, in which case both .key and .private
+ files will be generated.
+ </para>
+ <para>
+ The newly-created .private file does <emphasis>not</command>
+ contain private key data, and cannot be used for signing.
+ However, having a .private file makes it possible to set
+ publication (<option>-P</option>) and deletion
+ (<option>-D</option>) times for the key, which means the
+ public key can be added to and removed from the DNSKEY RRset
+ on schedule even if the true private key is stored offline.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>-f <replaceable class="parameter">filename</replaceable></term>
+ <listitem>
+ <para>
+ Zone file mode: instead of a public keyfile name, the argument
+ is the DNS domain name of a zone master file, which can be read
+ from <option>file</option>. If the domain name is the same as
+ <option>file</option>, then it may be omitted.
+ </para>
+ <para>
+ If <option>file</option> is set to <literal>"-"</literal>, then
+ the zone data is read from the standard input.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-K <replaceable class="parameter">directory</replaceable></term>
+ <listitem>
+ <para>
+ Sets the directory in which the key files are to reside.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-L <replaceable class="parameter">ttl</replaceable></term>
+ <listitem>
+ <para>
+ Sets the default TTL to use for this key when it is converted
+ into a DNSKEY RR. If the key is imported into a zone,
+ this is the TTL that will be used for it, unless there was
+ already a DNSKEY RRset in place, in which case the existing TTL
+ would take precedence. Setting the default TTL to
+ <literal>0</literal> or <literal>none</literal> removes it.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-h</term>
+ <listitem>
+ <para>
+ Emit usage message and exit.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-v <replaceable class="parameter">level</replaceable></term>
+ <listitem>
+ <para>
+ Sets the debugging level.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>TIMING OPTIONS</title>
+ <para>
+ Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
+ If the argument begins with a '+' or '-', it is interpreted as
+ an offset from the present time. For convenience, if such an offset
+ is followed by one of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi',
+ then the offset is computed in years (defined as 365 24-hour days,
+ ignoring leap years), months (defined as 30 24-hour days), weeks,
+ days, hours, or minutes, respectively. Without a suffix, the offset
+ is computed in seconds. To unset a date, use 'none'.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>-P <replaceable class="parameter">date/offset</replaceable></term>
+ <listitem>
+ <para>
+ Sets the date on which a key is to be published to the zone.
+ After that date, the key will be included in the zone but will
+ not be used to sign it.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-D <replaceable class="parameter">date/offset</replaceable></term>
+ <listitem>
+ <para>
+ Sets the date on which the key is to be deleted. After that
+ date, the key will no longer be included in the zone. (It
+ may remain in the key repository, however.)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>FILES</title>
+ <para>
+ A keyfile can be designed by the key identification
+ <filename>Knnnn.+aaa+iiiii</filename> or the full file name
+ <filename>Knnnn.+aaa+iiiii.key</filename> as generated by
+ <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para><citerefentry>
+ <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>dnssec-signzone</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citetitle>BIND 9 Administrator Reference Manual</citetitle>,
+ <citetitle>RFC 5011</citetitle>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>AUTHOR</title>
+ <para><corpauthor>Internet Systems Consortium</corpauthor>
+ </para>
+ </refsect1>
+
+</refentry><!--
+ - Local variables:
+ - mode: sgml
+ - End:
+-->
diff --git a/bin/dnssec/dnssec-importkey.html b/bin/dnssec/dnssec-importkey.html
new file mode 100644
index 000000000000..55729ba56b05
--- /dev/null
+++ b/bin/dnssec/dnssec-importkey.html
@@ -0,0 +1,113 @@
+<!--
+ - Copyright (C) 2013 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$ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>dnssec-importkey</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry">
+<a name="man.dnssec-importkey"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2>Name</h2>
+<p><span class="application">dnssec-importkey</span> &#8212; Import DNSKEY records from external systems so they can be managed.</p>
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="cmdsynopsis"><p><code class="command">dnssec-importkey</code> [<code class="option">-f <em class="replaceable"><code>filename</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-h</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">keyname</code>]</p></div>
+</div>
+<div class="refsect1">
+<a name="idp5321760"></a><h2>DESCRIPTION</h2>
+<p><span class="command"><strong>dnssec-importkey</strong></span>
+ read a DNSKEY record and generated a .key/.private key pair.
+ Publication (<code class="option">-P</code>) and deletions (<code class="option">-D</code>)
+ times can be set for the key.
+ </p>
+</div>
+<div class="refsect1">
+<a name="idp5324080"></a><h2>OPTIONS</h2>
+<div class="variablelist"><dl class="variablelist">
+<dt><span class="term">-f <em class="replaceable"><code>filename</code></em></span></dt>
+<dd><p>
+ Filename to read the key from.
+ </p></dd>
+<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
+<dd><p>
+ Sets the directory in which the key files are to reside.
+ </p></dd>
+<dt><span class="term">-L <em class="replaceable"><code>ttl</code></em></span></dt>
+<dd><p>
+ Sets the default TTL to use for this key when it is converted
+ into a DNSKEY RR. If the key is imported into a zone,
+ this is the TTL that will be used for it, unless there was
+ already a DNSKEY RRset in place, in which case the existing TTL
+ would take precedence. importkey the default TTL to
+ <code class="literal">0</code> or <code class="literal">none</code> removes it.
+ </p></dd>
+<dt><span class="term">-h</span></dt>
+<dd><p>
+ Emit usage message and exit.
+ </p></dd>
+<dt><span class="term">-v <em class="replaceable"><code>level</code></em></span></dt>
+<dd><p>
+ Sets the debugging level.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1">
+<a name="idp5336224"></a><h2>TIMING OPTIONS</h2>
+<p>
+ Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
+ If the argument begins with a '+' or '-', it is interpreted as
+ an offset from the present time. For convenience, if such an offset
+ is followed by one of the suffixes 'y', 'mo', 'w', 'd', 'h', or 'mi',
+ then the offset is computed in years (defined as 365 24-hour days,
+ ignoring leap years), months (defined as 30 24-hour days), weeks,
+ days, hours, or minutes, respectively. Without a suffix, the offset
+ is computed in seconds. To unset a date, use 'none'.
+ </p>
+<div class="variablelist"><dl class="variablelist">
+<dt><span class="term">-P <em class="replaceable"><code>date/offset</code></em></span></dt>
+<dd><p>
+ Sets the date on which a key is to be published to the zone.
+ After that date, the key will be included in the zone but will
+ not be used to sign it.
+ </p></dd>
+<dt><span class="term">-D <em class="replaceable"><code>date/offset</code></em></span></dt>
+<dd><p>
+ Sets the date on which the key is to be deleted. After that
+ date, the key will no longer be included in the zone. (It
+ may remain in the key repository, however.)
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1">
+<a name="idp5342816"></a><h2>SEE ALSO</h2>
+<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
+ <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
+ <em class="citetitle">BIND 9 Administrator Reference Manual</em>,
+ <em class="citetitle">RFC 5011</em>.
+ </p>
+</div>
+<div class="refsect1">
+<a name="idp5346704"></a><h2>AUTHOR</h2>
+<p><span class="corpauthor">Internet Systems Consortium</span>
+ </p>
+</div>
+</div></body>
+</html>
diff --git a/bin/dnssec/dnssec-keygen.c b/bin/dnssec/dnssec-keygen.c
index 1e61ca392e86..706182977e28 100644
--- a/bin/dnssec/dnssec-keygen.c
+++ b/bin/dnssec/dnssec-keygen.c
@@ -655,9 +655,9 @@ main(int argc, char **argv) {
mctx, &prevkey);
if (ret != ISC_R_SUCCESS)
fatal("Invalid keyfile %s: %s",
- filename, isc_result_totext(ret));
+ predecessor, isc_result_totext(ret));
if (!dst_key_isprivate(prevkey))
- fatal("%s is not a private key", filename);
+ fatal("%s is not a private key", predecessor);
name = dst_key_name(prevkey);
alg = dst_key_alg(prevkey);
diff --git a/bin/dnssec/dnssec-settime.c b/bin/dnssec/dnssec-settime.c
index 4c88a07ac455..108d8033c126 100644
--- a/bin/dnssec/dnssec-settime.c
+++ b/bin/dnssec/dnssec-settime.c
@@ -370,7 +370,7 @@ main(int argc, char **argv) {
if (result != ISC_R_SUCCESS)
fatal("Invalid keyfile %s: %s",
filename, isc_result_totext(result));
- if (!dst_key_isprivate(prevkey))
+ if (!dst_key_isprivate(prevkey) && !dst_key_isexternal(prevkey))
fatal("%s is not a private key", filename);
name = dst_key_name(prevkey);
@@ -462,7 +462,7 @@ main(int argc, char **argv) {
fatal("Invalid keyfile %s: %s",
filename, isc_result_totext(result));
- if (!dst_key_isprivate(key))
+ if (!dst_key_isprivate(key) && !dst_key_isexternal(key))
fatal("%s is not a private key", filename);
dst_key_format(key, keystr, sizeof(keystr));
diff --git a/bin/dnssec/dnssec-signzone.8 b/bin/dnssec/dnssec-signzone.8
index c91749569a50..d35a54b99955 100644
--- a/bin/dnssec/dnssec-signzone.8
+++ b/bin/dnssec/dnssec-signzone.8
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2003 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -260,15 +260,25 @@ Disable post sign verification tests.
The post sign verification test ensures that for each algorithm in use there is at least one non revoked self signed KSK key, that all revoked KSK keys are self signed, and that all records in the zone are signed by the algorithm. This option skips these tests.
.RE
.PP
-\-R
+\-Q
.RS 4
-Remove signatures from keys that no longer exist.
+Remove signatures from keys that are no longer active.
.sp
Normally, when a previously\-signed zone is passed as input to the signer, and a DNSKEY record has been removed and replaced with a new one, signatures from the old key that are still within their validity period are retained. This allows the zone to continue to validate with cached copies of the old DNSKEY RRset. The
-\fB\-R\fR
+\fB\-Q\fR
forces
\fBdnssec\-signzone\fR
-to remove all orphaned signatures.
+to remove signatures from keys that are no longer active. This enables ZSK rollover using the procedure described in RFC 4641, section 4.2.1.1 ("Pre\-Publish Key Rollover").
+.RE
+.PP
+\-R
+.RS 4
+Remove signatures from keys that are no longer published.
+.sp
+This option is similar to
+\fB\-Q\fR, except it forces
+\fBdnssec\-signzone\fR
+to signatures from keys that are no longer published. This enables ZSK rollover using the procedure described in RFC 4641, section 4.2.1.2 ("Double Signature Zone Signing Key Rollover").
.RE
.PP
\-r \fIrandomdev\fR
@@ -359,7 +369,7 @@ Generate an NSEC3 chain with the given hex encoded salt. A dash (\fIsalt\fR) can
.PP
\-H \fIiterations\fR
.RS 4
-When generating an NSEC3 chain, use this many interations. The default is 10.
+When generating an NSEC3 chain, use this many iterations. The default is 10.
.RE
.PP
\-A
@@ -423,12 +433,13 @@ db.example.com.signed
.PP
\fBdnssec\-keygen\fR(8),
BIND 9 Administrator Reference Manual,
-RFC 4033.
+RFC 4033,
+RFC 4641.
.SH "AUTHOR"
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
-Copyright \(co 2004\-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004\-2009, 2011, 2013 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 83456a7db7d7..0a13d9fa0a4e 100644
--- a/bin/dnssec/dnssec-signzone.c
+++ b/bin/dnssec/dnssec-signzone.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -175,7 +175,8 @@ static isc_boolean_t update_chain = ISC_FALSE;
static isc_boolean_t set_keyttl = ISC_FALSE;
static dns_ttl_t keyttl;
static isc_boolean_t smartsign = ISC_FALSE;
-static isc_boolean_t remove_orphans = ISC_FALSE;
+static isc_boolean_t remove_orphansigs = ISC_FALSE;
+static isc_boolean_t remove_inactkeysigs = ISC_FALSE;
static isc_boolean_t output_dnssec_only = ISC_FALSE;
static isc_boolean_t output_stdout = ISC_FALSE;
@@ -554,9 +555,14 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name,
"private dnskey not found\n",
sigstr);
} else if (key == NULL || future) {
- keep = (!expired && !remove_orphans);
+ keep = (!expired && !remove_orphansigs);
vbprintf(2, "\trrsig by %s %s - dnskey not found\n",
keep ? "retained" : "dropped", sigstr);
+ } else if (!dns_dnssec_keyactive(key->key, now) &&
+ remove_inactkeysigs) {
+ keep = ISC_FALSE;
+ vbprintf(2, "\trrsig by %s dropped - key inactive\n",
+ sigstr);
} else if (issigningkey(key)) {
wassignedby[key->index] = ISC_TRUE;
@@ -571,7 +577,7 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name,
"ttl change" : "failed to verify");
resign = ISC_TRUE;
}
- } else if (!ispublishedkey(key) && remove_orphans) {
+ } else if (!ispublishedkey(key) && remove_orphansigs) {
vbprintf(2, "\trrsig by %s dropped - dnskey removed\n",
sigstr);
} else if (iszonekey(key)) {
@@ -724,7 +730,7 @@ hashlist_add(hashlist_t *l, const unsigned char *hash, size_t len)
fatal("unable to grow hashlist: out of memory");
}
memset(l->hashbuf + l->entries * l->length, 0, l->length);
- memcpy(l->hashbuf + l->entries * l->length, hash, len);
+ memmove(l->hashbuf + l->entries * l->length, hash, len);
l->entries++;
}
@@ -739,7 +745,8 @@ hashlist_add_dns_name(hashlist_t *l, /*const*/ dns_name_t *name,
unsigned int len;
size_t i;
- len = isc_iterated_hash(hash, hashalg, iterations, salt, salt_length,
+ len = isc_iterated_hash(hash, hashalg, iterations,
+ salt, (int)salt_length,
name->ndata, name->length);
if (verbose) {
dns_name_format(name, nametext, sizeof nametext);
@@ -791,7 +798,7 @@ static const unsigned char *
hashlist_findnext(const hashlist_t *l,
const unsigned char hash[NSEC3_MAX_HASH_LENGTH])
{
- unsigned int entries = l->entries;
+ size_t entries = l->entries;
const unsigned char *next = bsearch(hash, l->hashbuf, l->entries,
l->length, hashlist_comp);
INSIST(next != NULL);
@@ -803,8 +810,8 @@ hashlist_findnext(const hashlist_t *l,
next = l->hashbuf;
if (next[l->length - 1] == 0)
break;
- } while (entries-- > 1);
- INSIST(entries != 0);
+ } while (entries-- > 1U);
+ INSIST(entries != 0U);
return (next);
}
@@ -1809,7 +1816,7 @@ nsecify(void) {
static void
addnsec3param(const unsigned char *salt, size_t salt_length,
- unsigned int iterations)
+ dns_iterations_t iterations)
{
dns_dbnode_t *node = NULL;
dns_rdata_nsec3param_t nsec3param;
@@ -1829,7 +1836,7 @@ addnsec3param(const unsigned char *salt, size_t salt_length,
nsec3param.flags = 0;
nsec3param.hash = unknownalg ? DNS_NSEC3_UNKNOWNALG : dns_hash_sha1;
nsec3param.iterations = iterations;
- nsec3param.salt_length = salt_length;
+ nsec3param.salt_length = (unsigned char)salt_length;
DE_CONST(salt, nsec3param.salt);
isc_buffer_init(&b, nsec3parambuf, sizeof(nsec3parambuf));
@@ -2126,7 +2133,7 @@ remove_duplicates(void) {
* Generate NSEC3 records for the zone.
*/
static void
-nsec3ify(unsigned int hashalg, unsigned int iterations,
+nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
const unsigned char *salt, size_t salt_length, hashlist_t *hashlist)
{
dns_dbiterator_t *dbiter = NULL;
@@ -2661,7 +2668,7 @@ set_nsec3params(isc_boolean_t update_chain, isc_boolean_t set_salt,
"Use -u to update it.");
} else if (!set_salt) {
salt_length = orig_saltlen;
- memcpy(saltbuf, orig_salt, orig_saltlen);
+ memmove(saltbuf, orig_salt, orig_saltlen);
salt = saltbuf;
}
@@ -2948,6 +2955,9 @@ usage(void) {
fprintf(stderr, "use pseudorandom data (faster but less secure)\n");
fprintf(stderr, "\t-P:\t");
fprintf(stderr, "disable post-sign verification\n");
+ fprintf(stderr, "\t-Q:\t");
+ fprintf(stderr, "remove signatures from keys that are no "
+ "longer active\n");
fprintf(stderr, "\t-R:\t");
fprintf(stderr, "remove signatures from keys that no longer exist\n");
fprintf(stderr, "\t-T TTL:\tTTL for newly added DNSKEYs\n");
@@ -3051,8 +3061,9 @@ main(int argc, char *argv[]) {
isc_boolean_t set_iter = ISC_FALSE;
isc_boolean_t nonsecify = ISC_FALSE;
+ /* Unused letters: Bb G J M q Yy (and F is reserved). */
#define CMDLINE_FLAGS \
- "3:AaCc:Dd:E:e:f:FghH:i:I:j:K:k:L:l:m:n:N:o:O:PpRr:s:ST:tuUv:X:xzZ:"
+ "3:AaCc:Dd:E:e:f:FghH:i:I:j:K:k:L:l:m:n:N:o:O:PpQRr:s:ST:tuUv:X:xzZ:"
/*
* Process memory debugging argument first.
@@ -3255,8 +3266,12 @@ main(int argc, char *argv[]) {
pseudorandom = ISC_TRUE;
break;
+ case 'Q':
+ remove_inactkeysigs = ISC_TRUE;
+ break;
+
case 'R':
- remove_orphans = ISC_TRUE;
+ remove_orphansigs = ISC_TRUE;
break;
case 'r':
@@ -3343,7 +3358,6 @@ main(int argc, char *argv[]) {
if (result != ISC_R_SUCCESS)
fatal("could not initialize dst: %s",
isc_result_totext(result));
-
isc_stdtime_get(&now);
if (startstr != NULL) {
diff --git a/bin/dnssec/dnssec-signzone.docbook b/bin/dnssec/dnssec-signzone.docbook
index e427fc1266bc..a1adafd04201 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"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -44,6 +44,7 @@
<year>2008</year>
<year>2009</year>
<year>2011</year>
+ <year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -489,10 +490,10 @@
</varlistentry>
<varlistentry>
- <term>-R</term>
+ <term>-Q</term>
<listitem>
<para>
- Remove signatures from keys that no longer exist.
+ Remove signatures from keys that are no longer active.
</para>
<para>
Normally, when a previously-signed zone is passed as input
@@ -500,9 +501,26 @@
replaced with a new one, signatures from the old key
that are still within their validity period are retained.
This allows the zone to continue to validate with cached
- copies of the old DNSKEY RRset. The <option>-R</option> forces
- <command>dnssec-signzone</command> to remove all orphaned
- signatures.
+ copies of the old DNSKEY RRset. The <option>-Q</option>
+ forces <command>dnssec-signzone</command> to remove
+ signatures from keys that are no longer active. This
+ enables ZSK rollover using the procedure described in
+ RFC 4641, section 4.2.1.1 ("Pre-Publish Key Rollover").
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>-R</term>
+ <listitem>
+ <para>
+ Remove signatures from keys that are no longer published.
+ </para>
+ <para>
+ This option is similar to <option>-Q</option>, except it
+ forces <command>dnssec-signzone</command> to signatures from
+ keys that are no longer published. This enables ZSK rollover
+ using the procedure described in RFC 4641, section 4.2.1.2
+ ("Double Signature Zone Signing Key Rollover").
</para>
</listitem>
</varlistentry>
@@ -680,7 +698,7 @@
<term>-H <replaceable class="parameter">iterations</replaceable></term>
<listitem>
<para>
- When generating an NSEC3 chain, use this many interations. The
+ When generating an NSEC3 chain, use this many iterations. The
default is 10.
</para>
</listitem>
@@ -765,7 +783,7 @@ db.example.com.signed
<refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citetitle>BIND 9 Administrator Reference Manual</citetitle>,
- <citetitle>RFC 4033</citetitle>.
+ <citetitle>RFC 4033</citetitle>, <citetitle>RFC 4641</citetitle>.
</para>
</refsect1>
diff --git a/bin/dnssec/dnssec-signzone.html b/bin/dnssec/dnssec-signzone.html
index 37994539b605..65abf80eb53d 100644
--- a/bin/dnssec/dnssec-signzone.html
+++ b/bin/dnssec/dnssec-signzone.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -32,7 +32,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-P</code>] [<code class="option">-p</code>] [<code class="option">-R</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S</code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-T <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-t</code>] [<code class="option">-u</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-X <em class="replaceable"><code>extended end-time</code></em></code>] [<code class="option">-x</code>] [<code class="option">-z</code>] [<code class="option">-3 <em class="replaceable"><code>salt</code></em></code>] [<code class="option">-H <em class="replaceable"><code>iterations</code></em></code>] [<code class="option">-A</code>] {zonefile} [key...]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543626"></a><h2>DESCRIPTION</h2>
+<a name="id2543629"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-signzone</strong></span>
signs a zone. It generates
NSEC and RRSIG records and produces a signed version of the
@@ -43,7 +43,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543641"></a><h2>OPTIONS</h2>
+<a name="id2543644"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a</span></dt>
<dd><p>
@@ -288,10 +288,10 @@
This option skips these tests.
</p>
</dd>
-<dt><span class="term">-R</span></dt>
+<dt><span class="term">-Q</span></dt>
<dd>
<p>
- Remove signatures from keys that no longer exist.
+ Remove signatures from keys that are no longer active.
</p>
<p>
Normally, when a previously-signed zone is passed as input
@@ -299,9 +299,24 @@
replaced with a new one, signatures from the old key
that are still within their validity period are retained.
This allows the zone to continue to validate with cached
- copies of the old DNSKEY RRset. The <code class="option">-R</code> forces
- <span><strong class="command">dnssec-signzone</strong></span> to remove all orphaned
- signatures.
+ copies of the old DNSKEY RRset. The <code class="option">-Q</code>
+ forces <span><strong class="command">dnssec-signzone</strong></span> to remove
+ signatures from keys that are no longer active. This
+ enables ZSK rollover using the procedure described in
+ RFC 4641, section 4.2.1.1 ("Pre-Publish Key Rollover").
+ </p>
+</dd>
+<dt><span class="term">-R</span></dt>
+<dd>
+<p>
+ Remove signatures from keys that are no longer published.
+ </p>
+<p>
+ This option is similar to <code class="option">-Q</code>, except it
+ forces <span><strong class="command">dnssec-signzone</strong></span> to signatures from
+ keys that are no longer published. This enables ZSK rollover
+ using the procedure described in RFC 4641, section 4.2.1.2
+ ("Double Signature Zone Signing Key Rollover").
</p>
</dd>
<dt><span class="term">-r <em class="replaceable"><code>randomdev</code></em></span></dt>
@@ -414,7 +429,7 @@
</p></dd>
<dt><span class="term">-H <em class="replaceable"><code>iterations</code></em></span></dt>
<dd><p>
- When generating an NSEC3 chain, use this many interations. The
+ When generating an NSEC3 chain, use this many iterations. The
default is 10.
</p></dd>
<dt><span class="term">-A</span></dt>
@@ -446,7 +461,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2545127"></a><h2>EXAMPLE</h2>
+<a name="id2545153"></a><h2>EXAMPLE</h2>
<p>
The following command signs the <strong class="userinput"><code>example.com</code></strong>
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
@@ -476,14 +491,14 @@ db.example.com.signed
%</pre>
</div>
<div class="refsect1" lang="en">
-<a name="id2545182"></a><h2>SEE ALSO</h2>
+<a name="id2545208"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
- <em class="citetitle">RFC 4033</em>.
+ <em class="citetitle">RFC 4033</em>, <em class="citetitle">RFC 4641</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545207"></a><h2>AUTHOR</h2>
+<a name="id2545236"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/bin/dnssec/dnssectool.c b/bin/dnssec/dnssectool.c
index 7c8c6ce2254a..74698e1b17ec 100644
--- a/bin/dnssec/dnssectool.c
+++ b/bin/dnssec/dnssectool.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2014 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
@@ -319,11 +319,35 @@ strtotime(const char *str, isc_int64_t now, isc_int64_t base) {
isc_result_t result;
const char *orig = str;
char *endp;
+ int n;
if ((str[0] == '0' || str[0] == '-') && str[1] == '\0')
return ((isc_stdtime_t) 0);
- if (strncmp(str, "now", 3) == 0) {
+ /*
+ * We accept times in the following formats:
+ * now([+-]offset)
+ * YYYYMMDD([+-]offset)
+ * YYYYMMDDhhmmss([+-]offset)
+ * [+-]offset
+ */
+ n = strspn(str, "0123456789");
+ if ((n == 8 || n == 14) &&
+ (str[n] == '\0' || str[n] == '-' || str[n] == '+'))
+ {
+ char timestr[15];
+
+ strlcpy(timestr, str, sizeof(timestr));
+ timestr[n] = 0;
+ if (n == 8)
+ strlcat(timestr, "000000", sizeof(timestr));
+ result = dns_time64_fromtext(timestr, &val);
+ if (result != ISC_R_SUCCESS)
+ fatal("time value %s is invalid: %s", orig,
+ isc_result_totext(result));
+ base = val;
+ str += n;
+ } else if (strncmp(str, "now", 3) == 0) {
base = now;
str += 3;
}
@@ -338,21 +362,8 @@ strtotime(const char *str, isc_int64_t now, isc_int64_t base) {
offset = strtol(str + 1, &endp, 0);
offset = time_units((isc_stdtime_t) offset, endp, orig);
val = base - offset;
- } else if (strlen(str) == 8U) {
- char timestr[15];
- sprintf(timestr, "%s000000", str);
- result = dns_time64_fromtext(timestr, &val);
- if (result != ISC_R_SUCCESS)
- fatal("time value %s is invalid: %s", orig,
- isc_result_totext(result));
- } else if (strlen(str) > 14U) {
+ } else
fatal("time value %s is invalid", orig);
- } else {
- result = dns_time64_fromtext(str, &val);
- if (result != ISC_R_SUCCESS)
- fatal("time value %s is invalid: %s", orig,
- isc_result_totext(result));
- }
return ((isc_stdtime_t) val);
}
@@ -714,11 +725,11 @@ record_nsec3(const unsigned char *rawhash, const dns_rdata_nsec3_t *nsec3,
element->next_length = nsec3->next_length;
element->iterations = nsec3->iterations;
cp = (unsigned char *)(element + 1);
- memcpy(cp, nsec3->salt, nsec3->salt_length);
+ memmove(cp, nsec3->salt, nsec3->salt_length);
cp += nsec3->salt_length;
- memcpy(cp, rawhash, nsec3->next_length);
+ memmove(cp, rawhash, nsec3->next_length);
cp += nsec3->next_length;
- memcpy(cp, nsec3->next, nsec3->next_length);
+ memmove(cp, nsec3->next, nsec3->next_length);
result = isc_heap_insert(chains, element);
if (result != ISC_R_SUCCESS) {
fprintf(stderr, "isc_heap_insert failed: %s\n",
diff --git a/bin/named/Makefile.in b/bin/named/Makefile.in
index 689413570378..1d4a365d552f 100644
--- a/bin/named/Makefile.in
+++ b/bin/named/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -102,7 +102,7 @@ SYMOBJS = symtbl.@O@
SRCS = builtin.c client.c config.c control.c \
controlconf.c interfacemgr.c \
listenlist.c log.c logconf.c main.c notify.c \
- query.c server.c sortlist.c statschannel.c symtbl.c symtbl-empty.c \
+ query.c server.c sortlist.c statschannel.c \
tkeyconf.c tsigconf.c update.c xfrout.c \
zoneconf.c \
lwaddr.c lwresd.c lwdclient.c lwderror.c lwdgabn.c \
@@ -124,6 +124,7 @@ main.@O@: main.c
-DDESCRIPTION=\"${DESCRIPTION}\" \
-DSRCID=\"${SRCID}\" \
-DCONFIGARGS="\"${CONFIGARGS}\"" \
+ -DBUILDER="\"make\"" \
-DNS_LOCALSTATEDIR=\"${localstatedir}\" \
-DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c
diff --git a/bin/named/bind9.ver3.xsl b/bin/named/bind9.ver3.xsl
index 22e5c45fbef4..699bcb4830a5 100644
--- a/bin/named/bind9.ver3.xsl
+++ b/bin/named/bind9.ver3.xsl
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- - Copyright (C) 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2012-2014 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
@@ -20,60 +20,61 @@
<!-- %Id: bind9.xsl,v 1.21 2009/01/27 23:47:54 tbox Exp % -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output method="html" indent="yes" version="4.0"/>
- <xsl:template match="statistics[@version=&quot;3.0&quot;]">
+ <xsl:template match="statistics[@version=&quot;3.3&quot;]">
<html>
<head>
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<!-- Non Mozilla specific markup -->
<script type="text/javascript" src="https://www.google.com/jsapi"/>
<script type="text/javascript">
-
+
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(loadGraphs);
var graphs=[];
-
- function drawChart(chart_title,target,data) {
+
+ function drawChart(chart_title,target,style,data) {
var data = google.visualization.arrayToDataTable(data);
var options = {
title: chart_title
};
-
- var chart = new google.visualization.BarChart(document.getElementById(target));
- chart.draw(data, options);
+
+ var chart;
+ if (style == "barchart") {
+ chart = new google.visualization.BarChart(document.getElementById(target));
+ chart.draw(data, options);
+ } else if (style == "piechart") {
+ chart = new google.visualization.PieChart(document.getElementById(target));
+ chart.draw(data, options);
+ }
}
-
+
function loadGraphs(){
- //alert("here we are!");
var g;
-
- // Server Incoming query Types
+
while(g = graphs.shift()){
// alert("going for: " + g.target);
if(g.data.length > 1){
- drawChart(g.title,g.target,g.data);
+ drawChart(g.title,g.target,g.style,g.data);
}
}
}
-
- // Server Incoming Queries Types
- graphs.push({
- 'title' : "Server Incoming Query Types",
- 'target': 'chart_incoming_qtypes',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
-
- // Server Incoming Requests
- graphs.push({
- 'title' : "Server Incoming Requests",
- 'target': 'chart_incoming_requests',
- 'data': [['Requests','Counter'],<xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]});
-
-
-
-
+
+ // Server Incoming Query Types
+ graphs.push({
+ 'title' : "Server Incoming Query Types",
+ 'target': 'chart_incoming_qtypes',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+
+ // Server Incoming Requests by opcode
+ graphs.push({
+ 'title' : "Server Incoming Requests by DNS Opcode",
+ 'target': 'chart_incoming_opcodes',
+ 'style': 'barchart',
+ 'data': [['Opcode','Counter'],<xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]});
</script>
</xsl:if>
<style type="text/css">
@@ -83,15 +84,15 @@
color: #000000;
font-size: 10pt;
}
-
+
.odd{
background-color: #f0f0f0;
}
-
+
.even{
background-color: #ffffff;
}
-
+
p.footer{
font-style:italic;
color: grey;
@@ -106,21 +107,101 @@
border: 1px solid grey;
width: 500px;
}
-
table.counters th {
+ text-align: right;
+ border: 1px solid grey;
+ width: 150px;
+ }
+ table.counters td {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.counters tr:hover{
+ background-color: #99ddff;
+ }
+
+ table.info {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.info th {
text-align: center;
border: 1px solid grey;
- width: 120px;
- }
- table.counters td{
- text-align:center;
-
- }
-
- table.counters tr:hover{
+ width: 150px;
+ }
+ table.info td {
+ text-align: center;
+ }
+ table.info tr:hover{
background-color: #99ddff;
- }
-
+ }
+
+ table.tasks {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.tasks th {
+ text-align: center;
+ border: 1px solid grey;
+ width: 150px;
+ }
+ table.tasks td {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.tasks td:nth-child(2) {
+ text-align: center;
+ }
+ table.tasks td:nth-child(4) {
+ text-align: center;
+ }
+ table.tasks tr:hover{
+ background-color: #99ddff;
+ }
+
+ table.netstat {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.netstat th {
+ text-align: center;
+ border: 1px solid grey;
+ width: 150px;
+ }
+ table.netstat td {
+ text-align: center;
+ }
+ table.netstat td:nth-child(4) {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.netstat td:nth-child(7) {
+ text-align: left;
+ }
+ table.netstat tr:hover{
+ background-color: #99ddff;
+ }
+
+ table.mctx {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.mctx th {
+ text-align: center;
+ border: 1px solid grey;
+ }
+ table.mctx td {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.mctx td:nth-child(-n+2) {
+ text-align: left;
+ width: 100px;
+ }
+ table.mctx tr:hover{
+ background-color: #99ddff;
+ }
+
.totals {
background-color: rgb(1,169,206);
color: #ffffff;
@@ -160,20 +241,18 @@
width:500px;
text-align:center;
}
-
+
h3 {
color: #444444;
font-size: 12pt;
width:500px;
text-align:center;
-
}
h4 {
color: rgb(1,169,206);
font-size: 10pt;
width:500px;
text-align:center;
-
}
.pie {
@@ -190,7 +269,7 @@
</div>
<hr/>
<h2>Server Times</h2>
- <table class="counters">
+ <table class="info">
<tr>
<th>Boot time:</th>
<td>
@@ -198,97 +277,142 @@
</td>
</tr>
<tr>
- <th>Sample time:</th>
+ <th>Current time:</th>
<td>
<xsl:value-of select="server/current-time"/>
</td>
</tr>
</table>
<br/>
- <h2>Incoming Requests</h2>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <div class="pie" id="chart_incoming_requests">[no incoming requests]</div>
- </xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:if test="server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0]">
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <h2>Incoming Requests by DNS Opcode</h2>
+ <!-- Non Mozilla specific markup -->
+ <div class="pie" id="chart_incoming_opcodes">
+ [cannot display chart]
+ </div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <tr>
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
<tr>
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
+ <th class="totals">Total:</th>
+ <td class="totals">
+ <xsl:value-of select="sum(server/counters[@type=&quot;opcode&quot;]/counter)"/>
</td>
</tr>
- </xsl:for-each>
- <tr>
- <th class="totals">Total:</th>
- <td class="totals">
- <xsl:value-of select="sum(server/counters[@type=&quot;opcode&quot;]/counter)"/>
- </td>
- </tr>
- </table>
- <br/>
- <h3>Incoming Queries by Type</h3>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <div class="pie" id="chart_incoming_qtypes">[no incoming queries]</div>
+ </table>
+ <br/>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
+ <xsl:if test="server/counters[@type=&quot;qtype&quot;]/counter">
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <h3>Incoming Queries by Query Type</h3>
+ <div class="pie" id="chart_incoming_qtypes">
+ [cannot display chart]
+ </div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <tr>
+ <th class="totals">Total:</th>
+ <td class="totals">
+ <xsl:value-of select="sum(server/counters[@type=&quot;qtype&quot;]/counter)"/>
</td>
</tr>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]">
+ <h2>Outgoing Queries per view</h2>
+ <xsl:for-each select="views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Outgoing Queries for view: <xsl:value-of select="@name"/>",
+ 'target': 'chart_outgoing_queries_view_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_outgoing_queries_view_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class1">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class1}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
</xsl:for-each>
- <tr>
- <th class="totals">Total:</th>
- <td class="totals">
- <xsl:value-of select="sum(server/counters[@type=&quot;qtype&quot;]/counter)"/>
- </td>
- </tr>
- </table>
- <br/>
- <h2>Outgoing Queries per view</h2>
- <xsl:for-each select="views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]">
- <h3>View <xsl:value-of select="@name"/></h3>
+ </xsl:if>
+ <xsl:if test="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">
+ <h2>Server Statistics</h2>
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<!-- Non Mozilla specific markup -->
<script type="text/javascript">
- graphs.push({
- 'title': "Outgoing queries for view: <xsl:value-of select="@name"/>",
- 'target': 'chart_outgoing_queries_view_<xsl:value-of select="@name"/>',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_outgoing_queries_view_{$target}"/>
+ graphs.push({
+ 'title' : "Server Counters",
+ 'target': 'chart_server_nsstat_restype',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <div class="pie" id="chart_server_nsstat_restype">[no data to display]</div>
</xsl:if>
<table class="counters">
- <xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">
+ <xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">
<xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class1">
+ <xsl:variable name="css-class2">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
<xsl:otherwise>odd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <tr class="{$css-class1}">
+ <tr class="{$css-class2}">
<th>
<xsl:value-of select="@name"/>
</th>
@@ -299,104 +423,53 @@
</xsl:for-each>
</table>
<br/>
- </xsl:for-each>
- <h2>Server Statistics</h2>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title' : "Server Counters",
- 'target': 'chart_server_nsstat_restype',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <div class="pie" id="chart_server_nsstat_restype"/>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class2">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class2}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Zone Maintenance Statistics</h2>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <script type="text/javascript">
- graphs.push({
- 'title' : "Zone Maintenance Stats",
- 'target': 'chart_server_zone_maint',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <!-- Non Mozilla specific markup -->
- <div class="pie" id="chart_server_zone_maint"/>
+ <xsl:if test="server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]">
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <h2>Zone Maintenance Statistics</h2>
+ <script type="text/javascript">
+ graphs.push({
+ 'title' : "Zone Maintenance Stats",
+ 'target': 'chart_server_zone_maint',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <!-- Non Mozilla specific markup -->
+ <div class="pie" id="chart_server_zone_maint">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class3">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class3}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class3">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class3}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <h2>Resolver Statistics (Common)</h2>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;restat&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class4">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class4}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <xsl:for-each select="views/view">
- <h3>Resolver Statistics for View <xsl:value-of select="@name"/></h3>
+ <xsl:if test="server/counters[@type=&quot;resstat&quot;]/counter[.&gt;0]">
+ <h2>Resolver Statistics (Common)</h2>
<table class="counters">
- <xsl:for-each select="counters[@type=&quot;resstats&quot;]/counter[.&gt;0]">
+ <xsl:for-each select="server/counters[@type=&quot;resstat&quot;]/counter">
<xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class5">
+ <xsl:variable name="css-class4">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
<xsl:otherwise>odd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <tr class="{$css-class5}">
+ <tr class="{$css-class4}">
<th>
<xsl:value-of select="@name"/>
</th>
@@ -406,330 +479,375 @@
</tr>
</xsl:for-each>
</table>
+ </xsl:if>
+ <xsl:for-each select="views/view">
+ <xsl:if test="counters[@type=&quot;resstats&quot;]/counter[.&gt;0]">
+ <h3>Resolver Statistics for View <xsl:value-of select="@name"/></h3>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;resstats&quot;]/counter[.&gt;0]">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class5">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class5}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
</xsl:for-each>
- <h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
+
<xsl:for-each select="views/view">
+ <xsl:if test="cache/rrset">
+ <h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
+ <table class="counters">
+ <xsl:for-each select="cache/rrset">
+ <xsl:variable name="css-class6">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class6}">
+ <th>
+ <xsl:value-of select="name"/>
+ </th>
+ <td>
+ <xsl:value-of select="counter"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:if test="server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]">
+ <h2>Socket I/O Statistics</h2>
<table class="counters">
- <xsl:for-each select="cache/rrset">
- <xsl:variable name="css-class6">
+ <xsl:for-each select="server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]">
+ <xsl:variable name="css-class7">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
<xsl:otherwise>odd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <tr class="{$css-class6}">
+ <tr class="{$css-class7}">
<th>
- <xsl:value-of select="name"/>
+ <xsl:value-of select="@name"/>
</th>
<td>
- <xsl:value-of select="counter"/>
+ <xsl:value-of select="."/>
</td>
</tr>
</xsl:for-each>
</table>
<br/>
- </xsl:for-each>
- <h2>Socket I/O Statistics</h2>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
+ </xsl:if>
+ <xsl:if test="views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]">
+ <h2>Response Codes per view/zone</h2>
+ <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:variable name="thisview">
+ <xsl:value-of select="@name"/>
</xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- <br/>
- <h2>Response Codes per view/zone</h2>
- <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]">
- <h3>View <xsl:value-of select="@name"/></h3>
- <xsl:variable name="thisview">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <xsl:for-each select="zones/zone">
- <xsl:if test="counters[@type=&quot;rcode&quot;]/counter[. &gt; 0]">
- <h4>Zone <xsl:value-of select="@name"/></h4>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title': "Response Codes for zone <xsl:value-of select="@name"/>",
- 'target': 'chart_rescode_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_rescode_{$thisview}_{$target}"/>
+ <xsl:for-each select="zones/zone">
+ <xsl:if test="counters[@type=&quot;rcode&quot;]/counter[. &gt; 0]">
+ <h4>Zone <xsl:value-of select="@name"/></h4>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Response Codes for zone <xsl:value-of select="@name"/>",
+ 'target': 'chart_rescode_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_rescode_{$thisview}_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">
+ <xsl:sort select="."/>
+ <xsl:variable name="css-class10">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class10}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">
- <xsl:sort select="."/>
- <xsl:variable name="css-class10">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class10}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
+ </xsl:for-each>
</xsl:for-each>
- </xsl:for-each>
- <h2>Received QTYPES per view/zone</h2>
- <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]">
- <h3>View <xsl:value-of select="@name"/></h3>
- <xsl:variable name="thisview2">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <xsl:for-each select="zones/zone">
- <xsl:if test="counters[@type=&quot;qtype&quot;]/counter[count(.) &gt; 0]">
- <h4>Zone <xsl:value-of select="@name"/></h4>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title': "Query Types for zone <xsl:value-of select="@name"/>",
- 'target': 'chart_qtype_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_qtype_{$thisview2}_{$target}"/>
+ </xsl:if>
+ <xsl:if test="views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]">
+ <h2>Received QTYPES per view/zone</h2>
+ <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:variable name="thisview2">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:for-each select="zones/zone">
+ <xsl:if test="counters[@type=&quot;qtype&quot;]/counter[count(.) &gt; 0]">
+ <h4>Zone <xsl:value-of select="@name"/></h4>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Query Types for zone <xsl:value-of select="@name"/>",
+ 'target': 'chart_qtype_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_qtype_{$thisview2}_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter">
+ <xsl:sort select="."/>
+ <xsl:variable name="css-class11">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class11}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter">
- <xsl:sort select="."/>
- <xsl:variable name="css-class11">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class11}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
+ </xsl:for-each>
</xsl:for-each>
- </xsl:for-each>
- <h2>Network Status</h2>
- <table class="counters">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>Type</th>
- <th>References</th>
- <th>LocalAddress</th>
- <th>PeerAddress</th>
- <th>State</th>
- </tr>
- <xsl:for-each select="socketmgr/sockets/socket">
- <xsl:sort select="id"/>
- <xsl:variable name="css-class12">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class12}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="type"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="local-address"/>
- </td>
- <td>
- <xsl:value-of select="peer-address"/>
- </td>
- <td>
- <xsl:for-each select="states">
- <xsl:value-of select="."/>
- </xsl:for-each>
- </td>
+ </xsl:if>
+ <xsl:if test="socketmgr/sockets/socket">
+ <h2>Network Status</h2>
+ <table class="netstat">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>Type</th>
+ <th>References</th>
+ <th>LocalAddress</th>
+ <th>PeerAddress</th>
+ <th>State</th>
</tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Task Manager Configuration</h2>
- <table class="counters">
- <tr>
- <th class="even">Thread-Model</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/type"/>
- </td>
- </tr>
- <tr class="odd">
- <th>Worker Threads</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/worker-threads"/>
- </td>
- </tr>
- <tr class="even">
- <th>Default Quantum</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/default-quantum"/>
- </td>
- </tr>
- <tr class="odd">
- <th>Tasks Running</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/tasks-running"/>
- </td>
- </tr>
- </table>
- <br/>
- <h2>Tasks</h2>
- <table class="counters">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>References</th>
- <th>State</th>
- <th>Quantum</th>
- </tr>
- <xsl:for-each select="taskmgr/tasks/task">
- <xsl:sort select="name"/>
- <xsl:variable name="css-class14">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class14}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="state"/>
- </td>
+ <xsl:for-each select="socketmgr/sockets/socket">
+ <xsl:sort select="id"/>
+ <xsl:variable name="css-class12">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class12}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="type"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="local-address"/>
+ </td>
+ <td>
+ <xsl:value-of select="peer-address"/>
+ </td>
+ <td>
+ <xsl:for-each select="states">
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="taskmgr/thread-model/type">
+ <h2>Task Manager Configuration</h2>
+ <table class="counters">
+ <tr>
+ <th class="even">Thread-Model</th>
<td>
- <xsl:value-of select="quantum"/>
+ <xsl:value-of select="taskmgr/thread-model/type"/>
</td>
</tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Memory Usage Summary</h2>
- <table class="counters">
- <xsl:for-each select="memory/summary/*">
- <xsl:variable name="css-class13">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class13}">
- <th>
- <xsl:value-of select="name()"/>
- </th>
+ <tr class="odd">
+ <th>Worker Threads</th>
<td>
- <xsl:value-of select="."/>
+ <xsl:value-of select="taskmgr/thread-model/worker-threads"/>
</td>
</tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Memory Contexts</h2>
- <table class="counters">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>References</th>
- <th>TotalUse</th>
- <th>InUse</th>
- <th>MaxUse</th>
- <th>BlockSize</th>
- <th>Pools</th>
- <th>HiWater</th>
- <th>LoWater</th>
- </tr>
- <xsl:for-each select="memory/contexts/context">
- <xsl:sort select="total" data-type="number" order="descending"/>
- <xsl:variable name="css-class14">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class14}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="total"/>
- </td>
- <td>
- <xsl:value-of select="inuse"/>
- </td>
- <td>
- <xsl:value-of select="maxinuse"/>
- </td>
- <td>
- <xsl:value-of select="blocksize"/>
- </td>
- <td>
- <xsl:value-of select="pools"/>
- </td>
+ <tr class="even">
+ <th>Default Quantum</th>
<td>
- <xsl:value-of select="hiwater"/>
+ <xsl:value-of select="taskmgr/thread-model/default-quantum"/>
</td>
+ </tr>
+ <tr class="odd">
+ <th>Tasks Running</th>
<td>
- <xsl:value-of select="lowater"/>
+ <xsl:value-of select="taskmgr/thread-model/tasks-running"/>
</td>
</tr>
- </xsl:for-each>
- </table>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="taskmgr/tasks/task">
+ <h2>Tasks</h2>
+ <table class="tasks">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>References</th>
+ <th>State</th>
+ <th>Quantum</th>
+ </tr>
+ <xsl:for-each select="taskmgr/tasks/task">
+ <xsl:sort select="name"/>
+ <xsl:variable name="css-class14">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class14}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="state"/>
+ </td>
+ <td>
+ <xsl:value-of select="quantum"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="memory/summary">
+ <h2>Memory Usage Summary</h2>
+ <table class="counters">
+ <xsl:for-each select="memory/summary/*">
+ <xsl:variable name="css-class13">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class13}">
+ <th>
+ <xsl:value-of select="name()"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="memory/contexts/context">
+ <h2>Memory Contexts</h2>
+ <table class="mctx">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>References</th>
+ <th>TotalUse</th>
+ <th>InUse</th>
+ <th>MaxUse</th>
+ <th>BlockSize</th>
+ <th>Pools</th>
+ <th>HiWater</th>
+ <th>LoWater</th>
+ </tr>
+ <xsl:for-each select="memory/contexts/context">
+ <xsl:sort select="total" data-type="number" order="descending"/>
+ <xsl:variable name="css-class14">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class14}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="total"/>
+ </td>
+ <td>
+ <xsl:value-of select="inuse"/>
+ </td>
+ <td>
+ <xsl:value-of select="maxinuse"/>
+ </td>
+ <td>
+ <xsl:value-of select="blocksize"/>
+ </td>
+ <td>
+ <xsl:value-of select="pools"/>
+ </td>
+ <td>
+ <xsl:value-of select="hiwater"/>
+ </td>
+ <td>
+ <xsl:value-of select="lowater"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
<hr/>
<p class="footer">Internet Systems Consortium Inc.<br/><a href="http://www.isc.org">http://www.isc.org</a></p>
</body>
diff --git a/bin/named/bind9.ver3.xsl.h b/bin/named/bind9.ver3.xsl.h
index c55714a6fb7b..371e69c7a171 100644
--- a/bin/named/bind9.ver3.xsl.h
+++ b/bin/named/bind9.ver3.xsl.h
@@ -5,7 +5,7 @@
static char xslmsg[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!--\n"
- " - Copyright (C) 2006-2009 Internet Systems Consortium, Inc. (\"ISC\")\n"
+ " - Copyright (C) 2012-2014 Internet Systems Consortium, Inc. (\"ISC\")\n"
" -\n"
" - Permission to use, copy, modify, and/or distribute this software for any\n"
" - purpose with or without fee is hereby granted, provided that the above\n"
@@ -19,63 +19,67 @@ static char xslmsg[] =
" - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n"
" - PERFORMANCE OF THIS SOFTWARE.\n"
"-->\n"
+ "\n"
+ "<!-- $Id$ -->\n"
+ "\n"
"<!-- \045Id: bind9.xsl,v 1.21 2009/01/27 23:47:54 tbox Exp \045 -->\n"
"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns=\"http://www.w3.org/1999/xhtml\" version=\"1.0\">\n"
" <xsl:output method=\"html\" indent=\"yes\" version=\"4.0\"/>\n"
- " <xsl:template match=\"statistics[@version=&quot;3.0&quot;]\">\n"
+ " <xsl:template match=\"statistics[@version=&quot;3.3&quot;]\">\n"
" <html>\n"
" <head>\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
" <!-- Non Mozilla specific markup -->\n"
" <script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"/>\n"
" <script type=\"text/javascript\">\n"
- " \n"
+ "\n"
" google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});\n"
" google.setOnLoadCallback(loadGraphs);\n"
"\n"
" var graphs=[];\n"
- " \n"
- " function drawChart(chart_title,target,data) {\n"
+ "\n"
+ " function drawChart(chart_title,target,style,data) {\n"
" var data = google.visualization.arrayToDataTable(data);\n"
"\n"
" var options = {\n"
" title: chart_title\n"
" };\n"
- " \n"
- " var chart = new google.visualization.BarChart(document.getElementById(target));\n"
+ "\n"
+ " var chart;\n"
+ " if (style == \"barchart\") {\n"
+ " chart = new google.visualization.BarChart(document.getElementById(target));\n"
+ " chart.draw(data, options);\n"
+ " } else if (style == \"piechart\") {\n"
+ " chart = new google.visualization.PieChart(document.getElementById(target));\n"
" chart.draw(data, options);\n"
" }\n"
- " \n"
+ " }\n"
+ "\n"
" function loadGraphs(){\n"
- " //alert(\"here we are!\");\n"
" var g;\n"
- " \n"
- " // Server Incoming query Types\n"
+ "\n"
" while(g = graphs.shift()){\n"
" // alert(\"going for: \" + g.target);\n"
" if(g.data.length > 1){\n"
- " drawChart(g.title,g.target,g.data);\n"
+ " drawChart(g.title,g.target,g.style,g.data);\n"
" }\n"
" }\n"
" }\n"
- " \n"
- " // Server Incoming Queries Types \n"
+ "\n"
+ " // Server Incoming Query Types \n"
" graphs.push({\n"
" 'title' : \"Server Incoming Query Types\",\n"
" 'target': 'chart_incoming_qtypes',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;qtype&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
"\n"
- "\n"
- " // Server Incoming Requests \n"
+ " // Server Incoming Requests by opcode\n"
" graphs.push({\n"
- " 'title' : \"Server Incoming Requests\",\n"
- " 'target': 'chart_incoming_requests',\n"
- " 'data': [['Requests','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]});\n"
- " \n"
- " \n"
- " \n"
- " \n"
+ " 'title' : \"Server Incoming Requests by DNS Opcode\",\n"
+ " 'target': 'chart_incoming_opcodes',\n"
+ " 'style': 'barchart',\n"
+ " 'data': [['Opcode','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]});\n"
" </script>\n"
" </xsl:if>\n"
" <style type=\"text/css\">\n"
@@ -85,15 +89,15 @@ static char xslmsg[] =
" color: #000000;\n"
" font-size: 10pt;\n"
" }\n"
- " \n"
+ "\n"
" .odd{\n"
" background-color: #f0f0f0;\n"
" }\n"
- " \n"
+ "\n"
" .even{\n"
" background-color: #ffffff;\n"
" }\n"
- " \n"
+ "\n"
" p.footer{\n"
" font-style:italic;\n"
" color: grey;\n"
@@ -108,21 +112,101 @@ static char xslmsg[] =
" border: 1px solid grey;\n"
" width: 500px;\n"
" }\n"
- " \n"
" table.counters th {\n"
- " text-align: center;\n"
+ " text-align: right;\n"
" border: 1px solid grey;\n"
- " width: 120px;\n"
+ " width: 150px;\n"
" }\n"
- " table.counters td{\n"
- " text-align:center;\n"
- " \n"
+ " table.counters td {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
" }\n"
- " \n"
" table.counters tr:hover{\n"
" background-color: #99ddff;\n"
" }\n"
- " \n"
+ "\n"
+ " table.info {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.info th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " width: 150px;\n"
+ " }\n"
+ " table.info td {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.info tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
+ " table.tasks {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.tasks th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " width: 150px;\n"
+ " }\n"
+ " table.tasks td {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
+ " }\n"
+ " table.tasks td:nth-child(2) {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.tasks td:nth-child(4) {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.tasks tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
+ " table.netstat {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.netstat th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " width: 150px;\n"
+ " }\n"
+ " table.netstat td {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.netstat td:nth-child(4) {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
+ " }\n"
+ " table.netstat td:nth-child(7) {\n"
+ " text-align: left;\n"
+ " }\n"
+ " table.netstat tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
+ " table.mctx {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.mctx th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " }\n"
+ " table.mctx td {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
+ " }\n"
+ " table.mctx td:nth-child(-n+2) {\n"
+ " text-align: left;\n"
+ " width: 100px;\n"
+ " }\n"
+ " table.mctx tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
" .totals {\n"
" background-color: rgb(1,169,206);\n"
" color: #ffffff;\n"
@@ -162,20 +246,18 @@ static char xslmsg[] =
" width:500px;\n"
" text-align:center;\n"
" }\n"
- " \n"
+ "\n"
" h3 {\n"
" color: #444444;\n"
" font-size: 12pt;\n"
" width:500px;\n"
" text-align:center;\n"
- " \n"
" }\n"
" h4 {\n"
" color: rgb(1,169,206);\n"
" font-size: 10pt;\n"
" width:500px;\n"
" text-align:center;\n"
- " \n"
" }\n"
"\n"
" .pie {\n"
@@ -192,7 +274,7 @@ static char xslmsg[] =
" </div>\n"
" <hr/>\n"
" <h2>Server Times</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"info\">\n"
" <tr>\n"
" <th>Boot time:</th>\n"
" <td>\n"
@@ -200,20 +282,23 @@ static char xslmsg[] =
" </td>\n"
" </tr>\n"
" <tr>\n"
- " <th>Sample time:</th>\n"
+ " <th>Current time:</th>\n"
" <td>\n"
" <xsl:value-of select=\"server/current-time\"/>\n"
" </td>\n"
" </tr>\n"
" </table>\n"
" <br/>\n"
- " <h2>Incoming Requests</h2>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0]\">\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <h2>Incoming Requests by DNS Opcode</h2>\n"
" <!-- Non Mozilla specific markup -->\n"
- " <div class=\"pie\" id=\"chart_incoming_requests\">[graph incoming requests]</div>\n"
+ " <div class=\"pie\" id=\"chart_incoming_opcodes\">\n"
+ " [cannot display chart]\n"
+ " </div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
- " <xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']\">\n"
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
" <tr>\n"
" <th>\n"
@@ -232,10 +317,14 @@ static char xslmsg[] =
" </tr>\n"
" </table>\n"
" <br/>\n"
- " <h3>Incoming Queries by Type</h3>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;qtype&quot;]/counter\">\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
" <!-- Non Mozilla specific markup -->\n"
- " <div class=\"pie\" id=\"chart_incoming_qtypes\">[graph incoming qtypes]</div>\n"
+ " <h3>Incoming Queries by Query Type</h3>\n"
+ " <div class=\"pie\" id=\"chart_incoming_qtypes\">\n"
+ " [cannot display chart]\n"
+ " </div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;qtype&quot;]/counter\">\n"
@@ -263,6 +352,8 @@ static char xslmsg[] =
" </tr>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]\">\n"
" <h2>Outgoing Queries per view</h2>\n"
" <xsl:for-each select=\"views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]\">\n"
" <h3>View <xsl:value-of select=\"@name\"/></h3>\n"
@@ -270,16 +361,16 @@ static char xslmsg[] =
" <!-- Non Mozilla specific markup -->\n"
" <script type=\"text/javascript\">\n"
" graphs.push({\n"
- " 'title': \"Outgoing queries for view: <xsl:value-of select=\"@name\"/>\",\n"
+ " 'title': \"Outgoing Queries for view: <xsl:value-of select=\"@name\"/>\",\n"
" 'target': 'chart_outgoing_queries_view_<xsl:value-of select=\"@name\"/>',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"counters[@type=&quot;resqtype&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
- " \n"
" </script>\n"
" <xsl:variable name=\"target\">\n"
" <xsl:value-of select=\"@name\"/>\n"
" </xsl:variable>\n"
- " <div class=\"pie\" id=\"chart_outgoing_queries_view_{$target}\"/>\n"
+ " <div class=\"pie\" id=\"chart_outgoing_queries_view_{$target}\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;resqtype&quot;]/counter\">\n"
@@ -302,18 +393,20 @@ static char xslmsg[] =
" </table>\n"
" <br/>\n"
" </xsl:for-each>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">\n"
" <h2>Server Statistics</h2>\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
" <!-- Non Mozilla specific markup -->\n"
" <script type=\"text/javascript\">\n"
" graphs.push({\n"
- " 'title' : \"Server Response Types\",\n"
+ " 'title' : \"Server Counters\",\n"
" 'target': 'chart_server_nsstat_restype',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
- " \n"
" </script>\n"
- " <div class=\"pie\" id=\"chart_server_nsstat_restype\"/>\n"
+ " <div class=\"pie\" id=\"chart_server_nsstat_restype\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">\n"
@@ -335,18 +428,20 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
- " <h2>Zone Maintenance Statistics</h2>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]\">\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <h2>Zone Maintenance Statistics</h2>\n"
" <script type=\"text/javascript\">\n"
" graphs.push({\n"
" 'title' : \"Zone Maintenance Stats\",\n"
" 'target': 'chart_server_zone_maint',\n"
- " 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
+ " 'style': 'barchart',\n"
+ " 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
- "\n"
" </script>\n"
" <!-- Non Mozilla specific markup -->\n"
- " <div class=\"pie\" id=\"chart_server_zone_maint\"/>\n"
+ " <div class=\"pie\" id=\"chart_server_zone_maint\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter\">\n"
@@ -367,9 +462,11 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;resstat&quot;]/counter[.&gt;0]\">\n"
" <h2>Resolver Statistics (Common)</h2>\n"
" <table class=\"counters\">\n"
- " <xsl:for-each select=\"server/counters[@type=&quot;restat&quot;]/counter\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;resstat&quot;]/counter\">\n"
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
" <xsl:variable name=\"css-class4\">\n"
" <xsl:choose>\n"
@@ -387,7 +484,9 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
" <xsl:for-each select=\"views/view\">\n"
+ " <xsl:if test=\"counters[@type=&quot;resstats&quot;]/counter[.&gt;0]\">\n"
" <h3>Resolver Statistics for View <xsl:value-of select=\"@name\"/></h3>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;resstats&quot;]/counter[.&gt;0]\">\n"
@@ -408,9 +507,12 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
" </xsl:for-each>\n"
- " <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
+ "\n"
" <xsl:for-each select=\"views/view\">\n"
+ " <xsl:if test=\"cache/rrset\">\n"
+ " <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"cache/rrset\">\n"
" <xsl:variable name=\"css-class6\">\n"
@@ -430,7 +532,10 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
" </xsl:for-each>\n"
+ "\n"
+ " <xsl:if test=\"server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]\">\n"
" <h2>Socket I/O Statistics</h2>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]\">\n"
@@ -451,7 +556,8 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
- " <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]\">\n"
" <h2>Response Codes per view/zone</h2>\n"
" <xsl:for-each select=\"views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]\">\n"
" <h3>View <xsl:value-of select=\"@name\"/></h3>\n"
@@ -467,6 +573,7 @@ static char xslmsg[] =
" graphs.push({\n"
" 'title': \"Response Codes for zone <xsl:value-of select=\"@name\"/>\",\n"
" 'target': 'chart_rescode_<xsl:value-of select=\"../../@name\"/>_<xsl:value-of select=\"@name\"/>',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
"\n"
@@ -474,7 +581,7 @@ static char xslmsg[] =
" <xsl:variable name=\"target\">\n"
" <xsl:value-of select=\"@name\"/>\n"
" </xsl:variable>\n"
- " <div class=\"pie\" id=\"chart_rescode_{$thisview}_{$target}\"/>\n"
+ " <div class=\"pie\" id=\"chart_rescode_{$thisview}_{$target}\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]\">\n"
@@ -498,6 +605,8 @@ static char xslmsg[] =
" </xsl:if>\n"
" </xsl:for-each>\n"
" </xsl:for-each>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]\">\n"
" <h2>Received QTYPES per view/zone</h2>\n"
" <xsl:for-each select=\"views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]\">\n"
" <h3>View <xsl:value-of select=\"@name\"/></h3>\n"
@@ -513,6 +622,7 @@ static char xslmsg[] =
" graphs.push({\n"
" 'title': \"Query Types for zone <xsl:value-of select=\"@name\"/>\",\n"
" 'target': 'chart_qtype_<xsl:value-of select=\"../../@name\"/>_<xsl:value-of select=\"@name\"/>',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"counters[@type=&quot;qtype&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
"\n"
@@ -520,7 +630,7 @@ static char xslmsg[] =
" <xsl:variable name=\"target\">\n"
" <xsl:value-of select=\"@name\"/>\n"
" </xsl:variable>\n"
- " <div class=\"pie\" id=\"chart_qtype_{$thisview2}_{$target}\"/>\n"
+ " <div class=\"pie\" id=\"chart_qtype_{$thisview2}_{$target}\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;qtype&quot;]/counter\">\n"
@@ -544,8 +654,10 @@ static char xslmsg[] =
" </xsl:if>\n"
" </xsl:for-each>\n"
" </xsl:for-each>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"socketmgr/sockets/socket\">\n"
" <h2>Network Status</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"netstat\">\n"
" <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
@@ -591,6 +703,8 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"taskmgr/thread-model/type\">\n"
" <h2>Task Manager Configuration</h2>\n"
" <table class=\"counters\">\n"
" <tr>\n"
@@ -619,8 +733,10 @@ static char xslmsg[] =
" </tr>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"taskmgr/tasks/task\">\n"
" <h2>Tasks</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"tasks\">\n"
" <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
@@ -656,6 +772,8 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"memory/summary\">\n"
" <h2>Memory Usage Summary</h2>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"memory/summary/*\">\n"
@@ -676,8 +794,10 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"memory/contexts/context\">\n"
" <h2>Memory Contexts</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"mctx\">\n"
" <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
@@ -732,6 +852,7 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
" <hr/>\n"
" <p class=\"footer\">Internet Systems Consortium Inc.<br/><a href=\"http://www.isc.org\">http://www.isc.org</a></p>\n"
" </body>\n"
diff --git a/bin/named/builtin.c b/bin/named/builtin.c
index 4604cb3ce07e..e55e95422235 100644
--- a/bin/named/builtin.c
+++ b/bin/named/builtin.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -117,7 +117,7 @@ dns64_rdata(unsigned char *v, size_t start, unsigned char *rdata) {
rdata[j++] = decimal[c];
}
}
- memcpy(&rdata[j], "\07in-addr\04arpa", 14);
+ memmove(&rdata[j], "\07in-addr\04arpa", 14);
return (j + 14);
}
@@ -276,7 +276,8 @@ dns64_cname(const dns_name_t *zone, const dns_name_t *name,
*/
return (ISC_R_NOTFOUND);
}
- return (dns_sdb_putrdata(lookup, dns_rdatatype_cname, 600, rdata, len));
+ return (dns_sdb_putrdata(lookup, dns_rdatatype_cname, 600,
+ rdata, (unsigned int)len));
}
static isc_result_t
@@ -319,7 +320,7 @@ put_txt(dns_sdblookup_t *lookup, const char *text) {
if (len > 255)
len = 255; /* Silently truncate */
buf[0] = len;
- memcpy(&buf[1], text, len);
+ memmove(&buf[1], text, len);
return (dns_sdb_putrdata(lookup, dns_rdatatype_txt, 0, buf, len + 1));
}
@@ -501,11 +502,11 @@ builtin_create(const char *zone, int argc, char **argv,
isc_mem_put(ns_g_mctx, empty, sizeof (*empty));
} else {
if (strcmp(argv[0], "empty") == 0)
- memcpy(empty, &empty_builtin,
- sizeof (empty_builtin));
+ memmove(empty, &empty_builtin,
+ sizeof (empty_builtin));
else
- memcpy(empty, &dns64_builtin,
- sizeof (empty_builtin));
+ memmove(empty, &dns64_builtin,
+ sizeof (empty_builtin));
empty->server = server;
empty->contact = contact;
*dbdata = empty;
diff --git a/bin/named/client.c b/bin/named/client.c
index 933abc7631e2..e68f96defa2c 100644
--- a/bin/named/client.c
+++ b/bin/named/client.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -973,6 +973,7 @@ ns_client_send(ns_client_t *client) {
result = dns_compress_init(&cctx, -1, client->mctx);
if (result != ISC_R_SUCCESS)
goto done;
+ dns_compress_setsensitive(&cctx, ISC_TRUE);
cleanup_cctx = ISC_TRUE;
result = dns_message_renderbegin(client->message, &cctx, &buffer);
@@ -994,6 +995,13 @@ ns_client_send(ns_client_t *client) {
}
if (result != ISC_R_SUCCESS)
goto done;
+#ifdef USE_RRL
+ /*
+ * Stop after the question if TC was set for rate limiting.
+ */
+ if ((client->message->flags & DNS_MESSAGEFLAG_TC) != 0)
+ goto renderend;
+#endif /* USE_RRL */
result = dns_message_rendersection(client->message,
DNS_SECTION_ANSWER,
DNS_MESSAGERENDER_PARTIAL |
@@ -1133,6 +1141,53 @@ ns_client_error(ns_client_t *client, isc_result_t result) {
}
#endif
+#ifdef USE_RRL
+ /*
+ * Try to rate limit error responses.
+ */
+ if (client->view != NULL && client->view->rrl != NULL) {
+ isc_boolean_t wouldlog;
+ char log_buf[DNS_RRL_LOG_BUF_LEN];
+ dns_rrl_result_t rrl_result;
+
+ INSIST(rcode != dns_rcode_noerror &&
+ rcode != dns_rcode_nxdomain);
+ wouldlog = isc_log_wouldlog(ns_g_lctx, DNS_RRL_LOG_DROP);
+ rrl_result = dns_rrl(client->view, &client->peeraddr,
+ TCP_CLIENT(client),
+ dns_rdataclass_in, dns_rdatatype_none,
+ NULL, result, client->now,
+ wouldlog, log_buf, sizeof(log_buf));
+ if (rrl_result != DNS_RRL_RESULT_OK) {
+ /*
+ * Log dropped errors in the query category
+ * so that they are not lost in silence.
+ * Starts of rate-limited bursts are logged in
+ * NS_LOGCATEGORY_RRL.
+ */
+ if (wouldlog) {
+ ns_client_log(client,
+ NS_LOGCATEGORY_QUERY_EERRORS,
+ NS_LOGMODULE_CLIENT,
+ DNS_RRL_LOG_DROP,
+ "%s", log_buf);
+ }
+ /*
+ * Some error responses cannot be 'slipped',
+ * so don't try to slip any error responses.
+ */
+ if (!client->view->rrl->log_only) {
+ isc_stats_increment(ns_g_server->nsstats,
+ dns_nsstatscounter_ratedropped);
+ isc_stats_increment(ns_g_server->nsstats,
+ dns_nsstatscounter_dropped);
+ ns_client_next(client, DNS_R_DROP);
+ return;
+ }
+ }
+ }
+#endif /* USE_RRL */
+
/*
* Message may be an in-progress reply that we had trouble
* with, in which case QR will be set. We need to clear QR before
@@ -1189,62 +1244,30 @@ ns_client_error(ns_client_t *client, isc_result_t result) {
static inline isc_result_t
client_addopt(ns_client_t *client) {
- dns_rdataset_t *rdataset;
- dns_rdatalist_t *rdatalist;
- dns_rdata_t *rdata;
+ char nsid[BUFSIZ], *nsidp;
isc_result_t result;
dns_view_t *view;
dns_resolver_t *resolver;
isc_uint16_t udpsize;
+ dns_ednsopt_t ednsopts[2];
+ int count = 0;
+ unsigned int flags;
REQUIRE(client->opt == NULL); /* XXXRTH free old. */
- rdatalist = NULL;
- result = dns_message_gettemprdatalist(client->message, &rdatalist);
- if (result != ISC_R_SUCCESS)
- return (result);
- rdata = NULL;
- result = dns_message_gettemprdata(client->message, &rdata);
- if (result != ISC_R_SUCCESS)
- return (result);
- rdataset = NULL;
- result = dns_message_gettemprdataset(client->message, &rdataset);
- if (result != ISC_R_SUCCESS)
- return (result);
- dns_rdataset_init(rdataset);
-
- rdatalist->type = dns_rdatatype_opt;
- rdatalist->covers = 0;
-
- /*
- * Set the maximum UDP buffer size.
- */
view = client->view;
resolver = (view != NULL) ? view->resolver : NULL;
if (resolver != NULL)
udpsize = dns_resolver_getudpsize(resolver);
else
udpsize = ns_g_udpsize;
- rdatalist->rdclass = udpsize;
- /*
- * Set EXTENDED-RCODE, VERSION and Z to 0.
- */
- rdatalist->ttl = (client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE);
+ flags = client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE;
/* Set EDNS options if applicable */
- if (client->attributes & NS_CLIENTATTR_WANTNSID &&
+ if ((client->attributes & NS_CLIENTATTR_WANTNSID) != 0 &&
(ns_g_server->server_id != NULL ||
ns_g_server->server_usehostname)) {
- /*
- * Space required for NSID data:
- * 2 bytes for opt code
- * + 2 bytes for NSID length
- * + NSID itself
- */
- char nsid[BUFSIZ], *nsidp;
- isc_buffer_t *buffer = NULL;
-
if (ns_g_server->server_usehostname) {
isc_result_t result;
result = ns_os_gethostname(nsid, sizeof(nsid));
@@ -1255,35 +1278,15 @@ client_addopt(ns_client_t *client) {
} else
nsidp = ns_g_server->server_id;
- rdata->length = strlen(nsidp) + 4;
- result = isc_buffer_allocate(client->mctx, &buffer,
- rdata->length);
- if (result != ISC_R_SUCCESS)
- goto no_nsid;
-
- isc_buffer_putuint16(buffer, DNS_OPT_NSID);
- isc_buffer_putuint16(buffer, strlen(nsidp));
- isc_buffer_putstr(buffer, nsidp);
- rdata->data = buffer->base;
- dns_message_takebuffer(client->message, &buffer);
- } else {
-no_nsid:
- rdata->data = NULL;
- rdata->length = 0;
+ ednsopts[count].code = DNS_OPT_NSID;
+ ednsopts[count].length = strlen(nsidp);
+ ednsopts[count].value = (unsigned char *)nsidp;
+ count++;
}
-
- rdata->rdclass = rdatalist->rdclass;
- rdata->type = rdatalist->type;
- rdata->flags = 0;
-
- ISC_LIST_INIT(rdatalist->rdata);
- ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
- RUNTIME_CHECK(dns_rdatalist_tordataset(rdatalist, rdataset)
- == ISC_R_SUCCESS);
-
- client->opt = rdataset;
-
- return (ISC_R_SUCCESS);
+ no_nsid:
+ result = dns_message_buildopt(client->message, &client->opt, 0,
+ udpsize, flags, ednsopts, count);
+ return (result);
}
static inline isc_boolean_t
@@ -1364,6 +1367,83 @@ ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
return (ISC_TF(view == myview));
}
+static isc_result_t
+process_opt(ns_client_t *client, dns_rdataset_t *opt) {
+ dns_rdata_t rdata;
+ isc_buffer_t optbuf;
+ isc_result_t result;
+ isc_uint16_t optcode;
+ isc_uint16_t optlen;
+
+ /*
+ * Set the client's UDP buffer size.
+ */
+ client->udpsize = opt->rdclass;
+
+ /*
+ * If the requested UDP buffer size is less than 512,
+ * ignore it and use 512.
+ */
+ if (client->udpsize < 512)
+ client->udpsize = 512;
+
+ /*
+ * Get the flags out of the OPT record.
+ */
+ client->extflags = (isc_uint16_t)(opt->ttl & 0xFFFF);
+
+ /*
+ * Do we understand this version of EDNS?
+ *
+ * XXXRTH need library support for this!
+ */
+ client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
+ if (client->ednsversion > 0) {
+ isc_stats_increment(ns_g_server->nsstats,
+ dns_nsstatscounter_badednsver);
+ result = client_addopt(client);
+ if (result == ISC_R_SUCCESS)
+ result = DNS_R_BADVERS;
+ ns_client_error(client, result);
+ goto cleanup;
+ }
+
+ /* Check for NSID request */
+ result = dns_rdataset_first(opt);
+ if (result == ISC_R_SUCCESS) {
+ dns_rdata_init(&rdata);
+ dns_rdataset_current(opt, &rdata);
+ isc_buffer_init(&optbuf, rdata.data, rdata.length);
+ isc_buffer_add(&optbuf, rdata.length);
+ while (isc_buffer_remaininglength(&optbuf) >= 4) {
+ optcode = isc_buffer_getuint16(&optbuf);
+ optlen = isc_buffer_getuint16(&optbuf);
+ switch (optcode) {
+ case DNS_OPT_NSID:
+ client->attributes |= NS_CLIENTATTR_WANTNSID;
+ isc_buffer_forward(&optbuf, optlen);
+ break;
+ default:
+ isc_buffer_forward(&optbuf, optlen);
+ break;
+ }
+ }
+ }
+
+ isc_stats_increment(ns_g_server->nsstats, dns_nsstatscounter_edns0in);
+
+ /*
+ * Create an OPT for our reply.
+ */
+ result = client_addopt(client);
+ if (result != ISC_R_SUCCESS) {
+ ns_client_error(client, result);
+ goto cleanup;
+ }
+ cleanup:
+ return (result);
+}
+
/*
* Handle an incoming request event from the socket (UDP case)
* or tcpmsg (TCP case).
@@ -1385,8 +1465,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
dns_messageid_t id;
unsigned int flags;
isc_boolean_t notimp;
- dns_rdata_t rdata;
- isc_uint16_t optcode;
REQUIRE(event != NULL);
client = event->ev_arg;
@@ -1586,67 +1664,9 @@ client_request(isc_task_t *task, isc_event_t *event) {
*/
opt = dns_message_getopt(client->message);
if (opt != NULL) {
- /*
- * Set the client's UDP buffer size.
- */
- client->udpsize = opt->rdclass;
-
- /*
- * If the requested UDP buffer size is less than 512,
- * ignore it and use 512.
- */
- if (client->udpsize < 512)
- client->udpsize = 512;
-
- /*
- * Get the flags out of the OPT record.
- */
- client->extflags = (isc_uint16_t)(opt->ttl & 0xFFFF);
-
- /*
- * Do we understand this version of EDNS?
- *
- * XXXRTH need library support for this!
- */
- client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
- if (client->ednsversion > 0) {
- isc_stats_increment(ns_g_server->nsstats,
- dns_nsstatscounter_badednsver);
- result = client_addopt(client);
- if (result == ISC_R_SUCCESS)
- result = DNS_R_BADVERS;
- ns_client_error(client, result);
- goto cleanup;
- }
-
- /* Check for NSID request */
- result = dns_rdataset_first(opt);
- if (result == ISC_R_SUCCESS) {
- dns_rdata_init(&rdata);
- dns_rdataset_current(opt, &rdata);
- if (rdata.length >= 2) {
- isc_buffer_t nsidbuf;
- isc_buffer_init(&nsidbuf,
- rdata.data, rdata.length);
- isc_buffer_add(&nsidbuf, rdata.length);
- optcode = isc_buffer_getuint16(&nsidbuf);
- if (optcode == DNS_OPT_NSID)
- client->attributes |=
- NS_CLIENTATTR_WANTNSID;
- }
- }
-
- isc_stats_increment(ns_g_server->nsstats,
- dns_nsstatscounter_edns0in);
-
- /*
- * Create an OPT for our reply.
- */
- result = client_addopt(client);
- if (result != ISC_R_SUCCESS) {
- ns_client_error(client, result);
+ result = process_opt(client, opt);
+ if (result != ISC_R_SUCCESS)
goto cleanup;
- }
}
if (client->message->rdclass == 0) {
@@ -2715,7 +2735,8 @@ ns_client_checkacl(ns_client_t *client, isc_sockaddr_t *sockaddr,
static void
ns_client_name(ns_client_t *client, char *peerbuf, size_t len) {
if (client->peeraddr_valid)
- isc_sockaddr_format(&client->peeraddr, peerbuf, len);
+ isc_sockaddr_format(&client->peeraddr, peerbuf,
+ (unsigned int)len);
else
snprintf(peerbuf, len, "@%p", client);
}
diff --git a/bin/named/config.c b/bin/named/config.c
index fa349eeade2f..278272082ae2 100644
--- a/bin/named/config.c
+++ b/bin/named/config.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -98,7 +98,7 @@ options {\n\
statistics-file \"named.stats\";\n\
statistics-interval 60;\n\
tcp-clients 100;\n\
- tcp-listen-queue 3;\n\
+ tcp-listen-queue 10;\n\
# tkey-dhkey <none>\n\
# tkey-gssapi-credential <none>\n\
# tkey-domain <none>\n\
@@ -227,8 +227,17 @@ view \"_bind\" chaos {\n\
recursion no;\n\
notify no;\n\
allow-new-zones no;\n\
-\n\
- zone \"version.bind\" chaos {\n\
+"
+#ifdef USE_RRL
+" # Prevent use of this zone in DNS amplified reflection DoS attacks\n\
+ rate-limit {\n\
+ responses-per-second 3;\n\
+ slip 0;\n\
+ min-table-size 10;\n\
+ };\n\
+"
+#endif /* USE_RRL */
+" zone \"version.bind\" chaos {\n\
type master;\n\
database \"_builtin version\";\n\
};\n\
@@ -564,7 +573,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (listcount != 0) {
- memcpy(new, lists, oldsize);
+ memmove(new, lists, oldsize);
isc_mem_put(mctx, lists, oldsize);
}
lists = new;
@@ -599,7 +608,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (stackcount != 0) {
- memcpy(new, stack, oldsize);
+ memmove(new, stack, oldsize);
isc_mem_put(mctx, stack, oldsize);
}
stack = new;
@@ -626,7 +635,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (addrcount != 0) {
- memcpy(new, addrs, oldsize);
+ memmove(new, addrs, oldsize);
isc_mem_put(mctx, addrs, oldsize);
}
addrs = new;
@@ -638,7 +647,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (keycount != 0) {
- memcpy(new, keys, oldsize);
+ memmove(new, keys, oldsize);
isc_mem_put(mctx, keys, oldsize);
}
keys = new;
@@ -686,7 +695,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
new = isc_mem_get(mctx, newsize);
if (new == NULL)
goto cleanup;
- memcpy(new, addrs, newsize);
+ memmove(new, addrs, newsize);
} else
new = NULL;
isc_mem_put(mctx, addrs, oldsize);
@@ -699,7 +708,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
new = isc_mem_get(mctx, newsize);
if (new == NULL)
goto cleanup;
- memcpy(new, keys, newsize);
+ memmove(new, keys, newsize);
} else
new = NULL;
isc_mem_put(mctx, keys, oldsize);
diff --git a/bin/named/control.c b/bin/named/control.c
index fabe442aabc3..35312fee59f3 100644
--- a/bin/named/control.c
+++ b/bin/named/control.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -105,7 +105,8 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
} else if (command_compare(command, NS_COMMAND_REFRESH)) {
result = ns_server_refreshcommand(ns_g_server, command, text);
} else if (command_compare(command, NS_COMMAND_RETRANSFER)) {
- result = ns_server_retransfercommand(ns_g_server, command);
+ result = ns_server_retransfercommand(ns_g_server,
+ command, text);
} else if (command_compare(command, NS_COMMAND_HALT)) {
#ifdef HAVE_LIBSCF
/*
@@ -200,11 +201,11 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) {
result = ns_server_validation(ns_g_server, command);
} else if (command_compare(command, NS_COMMAND_SIGN) ||
command_compare(command, NS_COMMAND_LOADKEYS)) {
- result = ns_server_rekey(ns_g_server, command);
+ result = ns_server_rekey(ns_g_server, command, text);
} else if (command_compare(command, NS_COMMAND_ADDZONE)) {
result = ns_server_add_zone(ns_g_server, command);
} else if (command_compare(command, NS_COMMAND_DELZONE)) {
- result = ns_server_del_zone(ns_g_server, command);
+ result = ns_server_del_zone(ns_g_server, command, text);
} else if (command_compare(command, NS_COMMAND_SIGNING)) {
result = ns_server_signing(ns_g_server, command, text);
} else {
diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c
index c46a6e15f467..509a113b3597 100644
--- a/bin/named/controlconf.c
+++ b/bin/named/controlconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -367,7 +367,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
secret.rstart = isc_mem_get(listener->mctx, key->secret.length);
if (secret.rstart == NULL)
goto cleanup;
- memcpy(secret.rstart, key->secret.base, key->secret.length);
+ memmove(secret.rstart, key->secret.base, key->secret.length);
secret.rend = secret.rstart + key->secret.length;
result = isccc_cc_fromwire(&ccregion, &request, &secret);
if (result == ISC_R_SUCCESS)
@@ -784,8 +784,8 @@ register_keys(const cfg_obj_t *control, const cfg_obj_t *keylist,
free_controlkey(keyid, mctx);
break;
}
- memcpy(keyid->secret.base, isc_buffer_base(&b),
- keyid->secret.length);
+ memmove(keyid->secret.base, isc_buffer_base(&b),
+ keyid->secret.length);
}
}
}
@@ -864,8 +864,8 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
"out of memory", keyid->keyname);
CHECK(ISC_R_NOMEMORY);
}
- memcpy(keyid->secret.base, isc_buffer_base(&b),
- keyid->secret.length);
+ memmove(keyid->secret.base, isc_buffer_base(&b),
+ keyid->secret.length);
ISC_LIST_APPEND(*keyids, keyid, link);
keyid = NULL;
result = ISC_R_SUCCESS;
diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
index cbc14d8b72d9..a9174f3e31c4 100644
--- a/bin/named/include/named/globals.h
+++ b/bin/named/include/named/globals.h
@@ -71,6 +71,7 @@ EXTERN const char * ns_g_product INIT(PRODUCT);
EXTERN const char * ns_g_description INIT(DESCRIPTION);
EXTERN const char * ns_g_srcid INIT(SRCID);
EXTERN const char * ns_g_configargs INIT(CONFIGARGS);
+EXTERN const char * ns_g_builder INIT(BUILDER);
EXTERN in_port_t ns_g_port INIT(0);
EXTERN in_port_t lwresd_g_listenport INIT(0);
diff --git a/bin/named/include/named/main.h b/bin/named/include/named/main.h
index 44251fa825c6..1537fb641da6 100644
--- a/bin/named/include/named/main.h
+++ b/bin/named/include/named/main.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -22,6 +22,10 @@
/*! \file */
+#ifdef ISC_MAIN_HOOK
+#define main(argc, argv) bindmain(argc, argv)
+#endif
+
ISC_PLATFORM_NORETURN_PRE void
ns_main_earlyfatal(const char *format, ...)
ISC_FORMAT_PRINTF(1, 2) ISC_PLATFORM_NORETURN_POST;
diff --git a/bin/named/include/named/query.h b/bin/named/include/named/query.h
index 6dfe96bc9d4d..3beabb82b2f6 100644
--- a/bin/named/include/named/query.h
+++ b/bin/named/include/named/query.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2010, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2010, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -86,6 +86,10 @@ struct ns_query {
#define NS_QUERYATTR_DNS64 0x4000
#define NS_QUERYATTR_DNS64EXCLUDE 0x8000
+#ifdef USE_RRL
+#define NS_QUERYATTR_RRL_CHECKED 0x10000
+#endif /* USE_RRL */
+
isc_result_t
ns_query_init(ns_client_t *client);
diff --git a/bin/named/include/named/server.h b/bin/named/include/named/server.h
index 3ba0c64a712d..52ba94d29538 100644
--- a/bin/named/include/named/server.h
+++ b/bin/named/include/named/server.h
@@ -167,7 +167,14 @@ enum {
dns_nsstatscounter_rpz_rewrites = 36,
+#ifdef USE_RRL
+ dns_nsstatscounter_ratedropped = 37,
+ dns_nsstatscounter_rateslipped = 38,
+
+ dns_nsstatscounter_max = 39
+#else /* USE_RRL */
dns_nsstatscounter_max = 37
+#endif /* USE_RRL */
};
void
@@ -224,7 +231,8 @@ ns_server_refreshcommand(ns_server_t *server, char *args, isc_buffer_t *text);
*/
isc_result_t
-ns_server_retransfercommand(ns_server_t *server, char *args);
+ns_server_retransfercommand(ns_server_t *server, char *args,
+ isc_buffer_t *text);
/*%<
* Act on a "retransfer" command from the command channel.
*/
@@ -313,7 +321,7 @@ ns_server_sync(ns_server_t *server, char *args, isc_buffer_t *text);
* take place incrementally.
*/
isc_result_t
-ns_server_rekey(ns_server_t *server, char *args);
+ns_server_rekey(ns_server_t *server, char *args, isc_buffer_t *text);
/*%
* Dump the current recursive queries.
@@ -343,7 +351,7 @@ ns_server_add_zone(ns_server_t *server, char *args);
* Deletes a zone from a running process
*/
isc_result_t
-ns_server_del_zone(ns_server_t *server, char *args);
+ns_server_del_zone(ns_server_t *server, char *args, isc_buffer_t *text);
/*%
* Lists the status of the signing records for a given zone.
diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c
index 84bf21d77142..514d702978a9 100644
--- a/bin/named/interfacemgr.c
+++ b/bin/named/interfacemgr.c
@@ -553,15 +553,22 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
return (result);
if (result != ISC_R_SUCCESS) {
- isc_log_write(IFMGR_COMMON_LOGARGS,
- ISC_LOG_WARNING,
+ isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
"omitting IPv4 interface %s from "
- "localnets ACL: %s",
- interface->name,
+ "localnets ACL: %s", interface->name,
isc_result_totext(result));
return (ISC_R_SUCCESS);
}
+ if (prefixlen == 0U) {
+ isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
+ "omitting %s interface %s from localnets ACL: "
+ "zero prefix length detected",
+ (netaddr->family == AF_INET) ? "IPv4" : "IPv6",
+ interface->name);
+ return (ISC_R_SUCCESS);
+ }
+
result = dns_iptable_addprefix(mgr->aclenv.localnets->iptable,
netaddr, prefixlen, ISC_TRUE);
if (result != ISC_R_SUCCESS)
diff --git a/bin/named/logconf.c b/bin/named/logconf.c
index b99a167d12f1..ce804055cc39 100644
--- a/bin/named/logconf.c
+++ b/bin/named/logconf.c
@@ -41,10 +41,10 @@
/*%
* Set up a logging category according to the named.conf data
- * in 'ccat' and add it to 'lctx'.
+ * in 'ccat' and add it to 'logconfig'.
*/
static isc_result_t
-category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
+category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *logconfig) {
isc_result_t result;
const char *catname;
isc_logcategory_t *category;
@@ -64,6 +64,9 @@ category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
return (ISC_R_SUCCESS);
}
+ if (logconfig == NULL)
+ return (ISC_R_SUCCESS);
+
module = NULL;
destinations = cfg_tuple_get(ccat, "destinations");
@@ -74,7 +77,7 @@ category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
const cfg_obj_t *channel = cfg_listelt_value(element);
const char *channelname = cfg_obj_asstring(channel);
- result = isc_log_usechannel(lctx, channelname, category,
+ result = isc_log_usechannel(logconfig, channelname, category,
module);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx, CFG_LOGCATEGORY_CONFIG,
@@ -89,10 +92,11 @@ category_fromconf(const cfg_obj_t *ccat, isc_logconfig_t *lctx) {
/*%
* Set up a logging channel according to the named.conf data
- * in 'cchan' and add it to 'lctx'.
+ * in 'cchan' and add it to 'logconfig'.
*/
static isc_result_t
-channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
+channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *logconfig)
+{
isc_result_t result;
isc_logdestination_t dest;
unsigned int type;
@@ -215,8 +219,11 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
level = cfg_obj_asuint32(severity);
}
- result = isc_log_createchannel(lctx, channelname,
- type, level, &dest, flags);
+ if (logconfig == NULL)
+ result = ISC_R_SUCCESS;
+ else
+ result = isc_log_createchannel(logconfig, channelname,
+ type, level, &dest, flags);
if (result == ISC_R_SUCCESS && type == ISC_LOG_TOFILE) {
FILE *fp;
@@ -226,32 +233,31 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
* Fix defect #22771
*/
result = isc_file_isplainfile(dest.file.name);
- if (result == ISC_R_SUCCESS ||
- result == ISC_R_FILENOTFOUND) {
+ if (result == ISC_R_SUCCESS || result == ISC_R_FILENOTFOUND) {
/*
* Test that the file can be opened, since
* isc_log_open() can't effectively report
- * failures when called in
- * isc_log_doit().
+ * failures when called in isc_log_doit().
*/
result = isc_stdio_open(dest.file.name, "a", &fp);
if (result != ISC_R_SUCCESS) {
- syslog(LOG_ERR,
- "isc_stdio_open '%s' failed: %s",
- dest.file.name,
- isc_result_totext(result));
+ if (logconfig != NULL && !ns_g_nosyslog)
+ syslog(LOG_ERR,
+ "isc_stdio_open '%s' failed: "
+ "%s", dest.file.name,
+ isc_result_totext(result));
fprintf(stderr,
- "isc_stdio_open '%s' failed: %s",
+ "isc_stdio_open '%s' failed: %s\n",
dest.file.name,
isc_result_totext(result));
} else
(void)isc_stdio_close(fp);
goto done;
}
- if (!ns_g_nosyslog)
+ if (logconfig != NULL && !ns_g_nosyslog)
syslog(LOG_ERR, "isc_file_isplainfile '%s' failed: %s",
dest.file.name, isc_result_totext(result));
- fprintf(stderr, "isc_file_isplainfile '%s' failed: %s",
+ fprintf(stderr, "isc_file_isplainfile '%s' failed: %s\n",
dest.file.name, isc_result_totext(result));
}
@@ -260,7 +266,7 @@ channel_fromconf(const cfg_obj_t *channel, isc_logconfig_t *lctx) {
}
isc_result_t
-ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
+ns_log_configure(isc_logconfig_t *logconfig, const cfg_obj_t *logstmt) {
isc_result_t result;
const cfg_obj_t *channels = NULL;
const cfg_obj_t *categories = NULL;
@@ -269,7 +275,8 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
isc_boolean_t unmatched_set = ISC_FALSE;
const cfg_obj_t *catname;
- CHECK(ns_log_setdefaultchannels(logconf));
+ if (logconfig != NULL)
+ CHECK(ns_log_setdefaultchannels(logconfig));
(void)cfg_map_get(logstmt, "channel", &channels);
for (element = cfg_list_first(channels);
@@ -277,7 +284,7 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
element = cfg_list_next(element))
{
const cfg_obj_t *channel = cfg_listelt_value(element);
- CHECK(channel_fromconf(channel, logconf));
+ CHECK(channel_fromconf(channel, logconfig));
}
(void)cfg_map_get(logstmt, "category", &categories);
@@ -286,7 +293,7 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
element = cfg_list_next(element))
{
const cfg_obj_t *category = cfg_listelt_value(element);
- CHECK(category_fromconf(category, logconf));
+ CHECK(category_fromconf(category, logconfig));
if (!default_set) {
catname = cfg_tuple_get(category, "name");
if (strcmp(cfg_obj_asstring(catname), "default") == 0)
@@ -299,16 +306,14 @@ ns_log_configure(isc_logconfig_t *logconf, const cfg_obj_t *logstmt) {
}
}
- if (!default_set)
- CHECK(ns_log_setdefaultcategory(logconf));
+ if (logconfig != NULL && !default_set)
+ CHECK(ns_log_setdefaultcategory(logconfig));
- if (!unmatched_set)
- CHECK(ns_log_setunmatchedcategory(logconf));
+ if (logconfig != NULL && !unmatched_set)
+ CHECK(ns_log_setunmatchedcategory(logconfig));
return (ISC_R_SUCCESS);
cleanup:
- if (logconf != NULL)
- isc_logconfig_destroy(&logconf);
return (result);
}
diff --git a/bin/named/lwaddr.c b/bin/named/lwaddr.c
index ed7880ac2682..aecccce21172 100644
--- a/bin/named/lwaddr.c
+++ b/bin/named/lwaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -41,11 +41,11 @@ lwaddr_netaddr_fromlwresaddr(isc_netaddr_t *na, lwres_addr_t *la) {
if (la->family == LWRES_ADDRTYPE_V4) {
struct in_addr ina;
- memcpy(&ina.s_addr, la->address, 4);
+ memmove(&ina.s_addr, la->address, 4);
isc_netaddr_fromin(na, &ina);
} else {
struct in6_addr ina6;
- memcpy(&ina6.s6_addr, la->address, 16);
+ memmove(&ina6.s6_addr, la->address, 16);
isc_netaddr_fromin6(na, &ina6);
}
return (ISC_R_SUCCESS);
@@ -77,11 +77,11 @@ lwaddr_lwresaddr_fromnetaddr(lwres_addr_t *la, isc_netaddr_t *na) {
if (na->family == AF_INET) {
la->family = LWRES_ADDRTYPE_V4;
la->length = 4;
- memcpy(la->address, &na->type.in, 4);
+ memmove(la->address, &na->type.in, 4);
} else {
la->family = LWRES_ADDRTYPE_V6;
la->length = 16;
- memcpy(la->address, &na->type.in6, 16);
+ memmove(la->address, &na->type.in6, 16);
}
return (ISC_R_SUCCESS);
}
diff --git a/bin/named/lwdgnba.c b/bin/named/lwdgnba.c
index dfc2ad654399..2de5287d63df 100644
--- a/bin/named/lwdgnba.c
+++ b/bin/named/lwdgnba.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -226,12 +226,12 @@ ns_lwdclient_processgnba(ns_lwdclient_t *client, lwres_buffer_t *b) {
client->na.family = AF_INET;
if (req->addr.length != 4)
goto out;
- memcpy(&client->na.type.in, req->addr.address, 4);
+ memmove(&client->na.type.in, req->addr.address, 4);
} else if (req->addr.family == LWRES_ADDRTYPE_V6) {
client->na.family = AF_INET6;
if (req->addr.length != 16)
goto out;
- memcpy(&client->na.type.in6, req->addr.address, 16);
+ memmove(&client->na.type.in6, req->addr.address, 16);
} else {
goto out;
}
diff --git a/bin/named/lwdgrbn.c b/bin/named/lwdgrbn.c
index 5c858cbedacd..3e7b15bbdbbf 100644
--- a/bin/named/lwdgrbn.c
+++ b/bin/named/lwdgrbn.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013, 2014 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
@@ -124,8 +124,8 @@ iterate_node(lwres_grbnresponse_t *grbn, dns_db_t *db, dns_dbnode_t *node,
lens = isc_mem_get(mctx, size * sizeof(*lens));
if (lens == NULL)
goto out;
- memcpy(rdatas, oldrdatas, used * sizeof(*rdatas));
- memcpy(lens, oldlens, used * sizeof(*lens));
+ memmove(rdatas, oldrdatas, used * sizeof(*rdatas));
+ memmove(lens, oldlens, used * sizeof(*lens));
isc_mem_put(mctx, oldrdatas,
oldsize * sizeof(*oldrdatas));
isc_mem_put(mctx, oldlens, oldsize * sizeof(*oldlens));
@@ -158,8 +158,8 @@ iterate_node(lwres_grbnresponse_t *grbn, dns_db_t *db, dns_dbnode_t *node,
newlens = isc_mem_get(mctx, used * sizeof(*lens));
if (newlens == NULL)
goto out;
- memcpy(newrdatas, rdatas, used * sizeof(*rdatas));
- memcpy(newlens, lens, used * sizeof(*lens));
+ memmove(newrdatas, rdatas, used * sizeof(*rdatas));
+ memmove(newlens, lens, used * sizeof(*lens));
isc_mem_put(mctx, rdatas, size * sizeof(*rdatas));
isc_mem_put(mctx, lens, size * sizeof(*lens));
grbn->rdatas = newrdatas;
@@ -204,6 +204,8 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
lwres_grbnresponse_t *grbn;
int i;
+ REQUIRE(event != NULL);
+
UNUSED(task);
lwb.base = NULL;
@@ -324,9 +326,6 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
(grbn->nsigs == 1) ? "" : "s");
}
- dns_lookup_destroy(&client->lookup);
- isc_event_free(&event);
-
/*
* Render the packet.
*/
@@ -362,6 +361,9 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
NS_LWDCLIENT_SETSEND(client);
+ dns_lookup_destroy(&client->lookup);
+ isc_event_free(&event);
+
return;
out:
@@ -384,8 +386,7 @@ lookup_done(isc_task_t *task, isc_event_t *event) {
if (lwb.base != NULL)
lwres_context_freemem(cm->lwctx, lwb.base, lwb.length);
- if (event != NULL)
- isc_event_free(&event);
+ isc_event_free(&event);
ns_lwdclient_log(50, "error constructing getrrsetbyname response");
ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE);
diff --git a/bin/named/main.c b/bin/named/main.c
index a5467249082a..1d844e03e3d1 100644
--- a/bin/named/main.c
+++ b/bin/named/main.c
@@ -390,7 +390,7 @@ set_flags(const char *arg, struct flag_def *defs, unsigned int *ret) {
int arglen;
if (end == NULL)
end = arg + strlen(arg);
- arglen = end - arg;
+ arglen = (int)(end - arg);
for (def = defs; def->name != NULL; def++) {
if (arglen == (int)strlen(def->name) &&
memcmp(arg, def->name, arglen) == 0) {
@@ -415,6 +415,7 @@ parse_command_line(int argc, char *argv[]) {
save_command_line(argc, argv);
+ /* PLEASE keep options synchronized when main is hooked! */
isc_commandline_errprint = ISC_FALSE;
while ((ch = isc_commandline_parse(argc, argv,
"46c:C:d:E:fFgi:lm:n:N:p:P:"
@@ -549,8 +550,25 @@ parse_command_line(int argc, char *argv[]) {
printf("%s %s", ns_g_product, ns_g_version);
if (*ns_g_description != 0)
printf(" %s", ns_g_description);
- printf(" <id:%s> built with %s\n", ns_g_srcid,
- ns_g_configargs);
+ printf(" <id:%s> built by %s with %s\n", ns_g_srcid,
+ ns_g_builder, ns_g_configargs);
+#ifdef __clang__
+ printf("compiled by CLANG %s\n", __VERSION__);
+#else
+#if defined(__ICC) || defined(__INTEL_COMPILER)
+ printf("compiled by ICC %s\n", __VERSION__);
+#else
+#ifdef __GNUC__
+ printf("compiled by GCC %s\n", __VERSION__);
+#endif
+#endif
+#endif
+#ifdef _MSC_VER
+ printf("compiled by MSVC %d\n", _MSC_VER);
+#endif
+#ifdef __SUNPRO_C
+ printf("compiled by Solaris Studio %x\n", __SUNPRO_C);
+#endif
#ifdef OPENSSL
printf("using OpenSSL version: %s\n",
OPENSSL_VERSION_TEXT);
@@ -1043,6 +1061,8 @@ ns_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
}
#endif /* HAVE_LIBSCF */
+/* main entry point, possibly hooked */
+
int
main(int argc, char *argv[]) {
isc_result_t result;
diff --git a/bin/named/named.conf.5 b/bin/named/named.conf.5
index 8d0122280b8a..0f5662c3ae8c 100644
--- a/bin/named/named.conf.5
+++ b/bin/named/named.conf.5
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004-2011, 2013, 2014 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
@@ -187,7 +187,7 @@ options {
random\-device \fIquoted_string\fR;
recursive\-clients \fIinteger\fR;
serial\-query\-rate \fIinteger\fR;
- server\-id ( \fIquoted_string\fR | none );
+ server\-id ( \fIquoted_string\fR | hostname | none );
stacksize \fIsize\fR;
statistics\-file \fIquoted_string\fR;
statistics\-interval \fIinteger\fR; // not yet implemented
@@ -323,7 +323,7 @@ options {
zone\-statistics \fIboolean\fR;
key\-directory \fIquoted_string\fR;
managed\-keys\-directory \fIquoted_string\fR;
- auto\-dnssec \fBallow\fR|\fBmaintain\fR|\fBcreate\fR|\fBoff\fR;
+ auto\-dnssec \fBallow\fR|\fBmaintain\fR|\fBoff\fR;
try\-tcp\-refresh \fIboolean\fR;
zero\-no\-soa\-ttl \fIboolean\fR;
zero\-no\-soa\-ttl\-cache \fIboolean\fR;
@@ -596,5 +596,5 @@ zone \fIstring\fR \fIoptional_class\fR {
\fBrndc\fR(8),
BIND 9 Administrator Reference Manual.
.SH "COPYRIGHT"
-Copyright \(co 2004\-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004\-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
.br
diff --git a/bin/named/named.conf.docbook b/bin/named/named.conf.docbook
index d778706930e0..b4d0c38e5e62 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"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2011, 2013, 2014 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
@@ -45,6 +45,7 @@
<year>2010</year>
<year>2011</year>
<year>2013</year>
+ <year>2014</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -219,7 +220,7 @@ options {
random-device <replaceable>quoted_string</replaceable>;
recursive-clients <replaceable>integer</replaceable>;
serial-query-rate <replaceable>integer</replaceable>;
- server-id ( <replaceable>quoted_string</replaceable> | none );
+ server-id ( <replaceable>quoted_string</replaceable> | hostname | none );
stacksize <replaceable>size</replaceable>;
statistics-file <replaceable>quoted_string</replaceable>;
statistics-interval <replaceable>integer</replaceable>; // not yet implemented
@@ -366,7 +367,7 @@ options {
zone-statistics <replaceable>boolean</replaceable>;
key-directory <replaceable>quoted_string</replaceable>;
managed-keys-directory <replaceable>quoted_string</replaceable>;
- auto-dnssec <constant>allow</constant>|<constant>maintain</constant>|<constant>create</constant>|<constant>off</constant>;
+ auto-dnssec <constant>allow</constant>|<constant>maintain</constant>|<constant>off</constant>;
try-tcp-refresh <replaceable>boolean</replaceable>;
zero-no-soa-ttl <replaceable>boolean</replaceable>;
zero-no-soa-ttl-cache <replaceable>boolean</replaceable>;
diff --git a/bin/named/named.conf.html b/bin/named/named.conf.html
index 23d9391af3d0..5847466785a4 100644
--- a/bin/named/named.conf.html
+++ b/bin/named/named.conf.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2011, 2013, 2014 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
@@ -31,7 +31,7 @@
<div class="cmdsynopsis"><p><code class="command">named.conf</code> </p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543357"></a><h2>DESCRIPTION</h2>
+<a name="id2543361"></a><h2>DESCRIPTION</h2>
<p><code class="filename">named.conf</code> is the configuration file
for
<span><strong class="command">named</strong></span>. Statements are enclosed
@@ -50,14 +50,14 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543385"></a><h2>ACL</h2>
+<a name="id2543388"></a><h2>ACL</h2>
<div class="literallayout"><p><br>
acl <em class="replaceable"><code>string</code></em> { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543401"></a><h2>KEY</h2>
+<a name="id2543404"></a><h2>KEY</h2>
<div class="literallayout"><p><br>
key <em class="replaceable"><code>domain_name</code></em> {<br>
algorithm <em class="replaceable"><code>string</code></em>;<br>
@@ -66,7 +66,7 @@ key <em class="replaceable"><code>domain_name</code></em> {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543420"></a><h2>MASTERS</h2>
+<a name="id2543424"></a><h2>MASTERS</h2>
<div class="literallayout"><p><br>
masters <em class="replaceable"><code>string</code></em> [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
( <em class="replaceable"><code>masters</code></em> | <em class="replaceable"><code>ipv4_address</code></em> [<span class="optional">port <em class="replaceable"><code>integer</code></em></span>] |<br>
@@ -75,7 +75,7 @@ masters <em class="replaceable"><code>string</code></em> [<span class="optional"
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543466"></a><h2>SERVER</h2>
+<a name="id2543469"></a><h2>SERVER</h2>
<div class="literallayout"><p><br>
server ( <em class="replaceable"><code>ipv4_address[<span class="optional">/prefixlen</span>]</code></em> | <em class="replaceable"><code>ipv6_address[<span class="optional">/prefixlen</span>]</code></em> ) {<br>
bogus <em class="replaceable"><code>boolean</code></em>;<br>
@@ -97,7 +97,7 @@ server ( <em class="replaceable"><code>ipv4_address[<span class="optional">/pref
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543534"></a><h2>TRUSTED-KEYS</h2>
+<a name="id2543538"></a><h2>TRUSTED-KEYS</h2>
<div class="literallayout"><p><br>
trusted-keys {<br>
<em class="replaceable"><code>domain_name</code></em> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key</code></em>; ... <br>
@@ -105,7 +105,7 @@ trusted-keys {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543560"></a><h2>MANAGED-KEYS</h2>
+<a name="id2543563"></a><h2>MANAGED-KEYS</h2>
<div class="literallayout"><p><br>
managed-keys {<br>
<em class="replaceable"><code>domain_name</code></em> <code class="constant">initial-key</code> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key</code></em>; ... <br>
@@ -113,7 +113,7 @@ managed-keys {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543589"></a><h2>CONTROLS</h2>
+<a name="id2543592"></a><h2>CONTROLS</h2>
<div class="literallayout"><p><br>
controls {<br>
inet ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> | * )<br>
@@ -125,7 +125,7 @@ controls {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543624"></a><h2>LOGGING</h2>
+<a name="id2543627"></a><h2>LOGGING</h2>
<div class="literallayout"><p><br>
logging {<br>
channel <em class="replaceable"><code>string</code></em> {<br>
@@ -143,7 +143,7 @@ logging {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543662"></a><h2>LWRES</h2>
+<a name="id2543666"></a><h2>LWRES</h2>
<div class="literallayout"><p><br>
lwres {<br>
listen-on [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
@@ -156,7 +156,7 @@ lwres {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543704"></a><h2>OPTIONS</h2>
+<a name="id2543707"></a><h2>OPTIONS</h2>
<div class="literallayout"><p><br>
options {<br>
avoid-v4-udp-ports { <em class="replaceable"><code>port</code></em>; ... };<br>
@@ -184,7 +184,7 @@ options {<br>
random-device <em class="replaceable"><code>quoted_string</code></em>;<br>
recursive-clients <em class="replaceable"><code>integer</code></em>;<br>
serial-query-rate <em class="replaceable"><code>integer</code></em>;<br>
- server-id ( <em class="replaceable"><code>quoted_string</code></em> | none );<br>
+ server-id ( <em class="replaceable"><code>quoted_string</code></em> | hostname | none );<br>
stacksize <em class="replaceable"><code>size</code></em>;<br>
statistics-file <em class="replaceable"><code>quoted_string</code></em>;<br>
statistics-interval <em class="replaceable"><code>integer</code></em>; // not yet implemented<br>
@@ -331,7 +331,7 @@ options {<br>
zone-statistics <em class="replaceable"><code>boolean</code></em>;<br>
key-directory <em class="replaceable"><code>quoted_string</code></em>;<br>
managed-keys-directory <em class="replaceable"><code>quoted_string</code></em>;<br>
- auto-dnssec <code class="constant">allow</code>|<code class="constant">maintain</code>|<code class="constant">create</code>|<code class="constant">off</code>;<br>
+ auto-dnssec <code class="constant">allow</code>|<code class="constant">maintain</code>|<code class="constant">off</code>;<br>
try-tcp-refresh <em class="replaceable"><code>boolean</code></em>;<br>
zero-no-soa-ttl <em class="replaceable"><code>boolean</code></em>;<br>
zero-no-soa-ttl-cache <em class="replaceable"><code>boolean</code></em>;<br>
@@ -361,7 +361,7 @@ options {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2544585"></a><h2>VIEW</h2>
+<a name="id2544586"></a><h2>VIEW</h2>
<div class="literallayout"><p><br>
view <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>optional_class</code></em> {<br>
match-clients { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
@@ -525,7 +525,7 @@ view <em class="replaceable"><code>string</code></em> <em class="replaceable"><c
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2545301"></a><h2>ZONE</h2>
+<a name="id2545302"></a><h2>ZONE</h2>
<div class="literallayout"><p><br>
zone <em class="replaceable"><code>string</code></em> <em class="replaceable"><code>optional_class</code></em> {<br>
type ( master | slave | stub | hint | redirect |<br>
@@ -622,12 +622,12 @@ zone <em class="replaceable"><code>string</code></em> <em class="replaceable"><c
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2545690"></a><h2>FILES</h2>
+<a name="id2545691"></a><h2>FILES</h2>
<p><code class="filename">/etc/named.conf</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2545702"></a><h2>SEE ALSO</h2>
+<a name="id2545703"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
diff --git a/bin/named/query.c b/bin/named/query.c
index 5093cb243da4..c357f83ee427 100644
--- a/bin/named/query.c
+++ b/bin/named/query.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -193,7 +193,7 @@ inc_stats(ns_client_t *client, isc_statscounter_t counter) {
#ifdef NEWSTATS
/* Do query type statistics
*
- * We only increment per-type if we're using the authoriative
+ * We only increment per-type if we're using the authoritative
* answer counter, preventing double-counting.
*/
if (counter == dns_nsstatscounter_authans) {
@@ -800,7 +800,7 @@ query_validatezonedb(ns_client_t *client, dns_name_t *name,
if (queryonacl == NULL)
queryonacl = client->view->queryonacl;
- result = ns_client_checkaclsilent(client, NULL,
+ result = ns_client_checkaclsilent(client, &client->destaddr,
queryonacl, ISC_TRUE);
if ((options & DNS_GETDB_NOLOG) == 0 &&
result != ISC_R_SUCCESS)
@@ -4601,6 +4601,7 @@ rpz_rewrite(ns_client_t *client, dns_rdatatype_t qtype, isc_result_t qresult,
memset(&st->m, 0, sizeof(st->m));
st->m.type = DNS_RPZ_TYPE_BAD;
st->m.policy = DNS_RPZ_POLICY_MISS;
+ st->m.ttl = ~0;
memset(&st->r, 0, sizeof(st->r));
memset(&st->q, 0, sizeof(st->q));
dns_fixedname_init(&st->_qnamef);
@@ -4982,12 +4983,12 @@ rdata_tonetaddr(const dns_rdata_t *rdata, isc_netaddr_t *netaddr) {
switch (rdata->type) {
case dns_rdatatype_a:
INSIST(rdata->length == 4);
- memcpy(&ina.s_addr, rdata->data, 4);
+ memmove(&ina.s_addr, rdata->data, 4);
isc_netaddr_fromin(netaddr, &ina);
return (ISC_R_SUCCESS);
case dns_rdatatype_aaaa:
INSIST(rdata->length == 16);
- memcpy(in6a.s6_addr, rdata->data, 16);
+ memmove(in6a.s6_addr, rdata->data, 16);
isc_netaddr_fromin6(netaddr, &in6a);
return (ISC_R_SUCCESS);
default:
@@ -5260,8 +5261,7 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
dns_fixedname_t fixed;
dns_hash_t hash;
dns_name_t name;
- int order;
- unsigned int count;
+ unsigned int skip = 0, labels;
dns_rdata_nsec3_t nsec3;
dns_rdata_t rdata = DNS_RDATA_INIT;
isc_boolean_t optout;
@@ -5276,6 +5276,7 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
dns_name_init(&name, NULL);
dns_name_clone(qname, &name);
+ labels = dns_name_countlabels(&name);
dns_clientinfomethods_init(&cm, ns_client_sourceip);
dns_clientinfo_init(&ci, client);
@@ -5309,13 +5310,14 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
dns_rdata_reset(&rdata);
optout = ISC_TF((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0);
if (found != NULL && optout &&
- dns_name_fullcompare(&name, dns_db_origin(db), &order,
- &count) == dns_namereln_subdomain) {
+ dns_name_issubdomain(&name, dns_db_origin(db)))
+ {
dns_rdataset_disassociate(rdataset);
if (dns_rdataset_isassociated(sigrdataset))
dns_rdataset_disassociate(sigrdataset);
- count = dns_name_countlabels(&name) - 1;
- dns_name_getlabelsequence(&name, 1, count, &name);
+ skip++;
+ dns_name_getlabelsequence(qname, skip, labels - skip,
+ &name);
ns_client_log(client, DNS_LOGCATEGORY_DNSSEC,
NS_LOGMODULE_QUERY, ISC_LOG_DEBUG(3),
"looking for closest provable encloser");
@@ -5333,7 +5335,11 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
ns_client_log(client, DNS_LOGCATEGORY_DNSSEC,
NS_LOGMODULE_QUERY, ISC_LOG_WARNING,
"expected covering NSEC3, got an exact match");
- if (found != NULL)
+ if (found == qname) {
+ if (skip != 0U)
+ dns_name_getlabelsequence(qname, skip, labels - skip,
+ found);
+ } else if (found != NULL)
dns_name_copy(&name, found, NULL);
return;
}
@@ -5865,6 +5871,133 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
resume:
CTRACE("query_find: resume");
+#ifdef USE_RRL
+ /*
+ * Rate limit these responses to this client.
+ * Do not delay counting and handling obvious referrals,
+ * since those won't come here again.
+ * Delay handling delegations for which we are certain to recurse and
+ * return here (DNS_R_DELEGATION, not a child of one of our
+ * own zones, and recursion enabled)
+ * Don't mess with responses rewritten by RPZ
+ * Count each response at most once.
+ */
+ if (client->view->rrl != NULL &&
+ ((fname != NULL && dns_name_isabsolute(fname)) ||
+ (result == ISC_R_NOTFOUND && !RECURSIONOK(client))) &&
+ !(result == DNS_R_DELEGATION && !is_zone && RECURSIONOK(client)) &&
+ (client->query.rpz_st == NULL ||
+ (client->query.rpz_st->state & DNS_RPZ_REWRITTEN) == 0)&&
+ (client->query.attributes & NS_QUERYATTR_RRL_CHECKED) == 0) {
+ dns_rdataset_t nc_rdataset;
+ isc_boolean_t wouldlog;
+ char log_buf[DNS_RRL_LOG_BUF_LEN];
+ isc_result_t nc_result, resp_result;
+ dns_rrl_result_t rrl_result;
+
+ client->query.attributes |= NS_QUERYATTR_RRL_CHECKED;
+
+ wouldlog = isc_log_wouldlog(ns_g_lctx, DNS_RRL_LOG_DROP);
+ tname = fname;
+ if (result == DNS_R_NXDOMAIN) {
+ /*
+ * Use the database origin name to rate limit NXDOMAIN
+ */
+ if (db != NULL)
+ tname = dns_db_origin(db);
+ resp_result = result;
+ } else if (result == DNS_R_NCACHENXDOMAIN &&
+ rdataset != NULL &&
+ dns_rdataset_isassociated(rdataset) &&
+ (rdataset->attributes &
+ DNS_RDATASETATTR_NEGATIVE) != 0) {
+ /*
+ * Try to use owner name in the negative cache SOA.
+ */
+ dns_fixedname_init(&fixed);
+ dns_rdataset_init(&nc_rdataset);
+ for (nc_result = dns_rdataset_first(rdataset);
+ nc_result == ISC_R_SUCCESS;
+ nc_result = dns_rdataset_next(rdataset)) {
+ dns_ncache_current(rdataset,
+ dns_fixedname_name(&fixed),
+ &nc_rdataset);
+ if (nc_rdataset.type == dns_rdatatype_soa) {
+ dns_rdataset_disassociate(&nc_rdataset);
+ tname = dns_fixedname_name(&fixed);
+ break;
+ }
+ dns_rdataset_disassociate(&nc_rdataset);
+ }
+ resp_result = DNS_R_NXDOMAIN;
+ } else if (result == DNS_R_NXRRSET ||
+ result == DNS_R_EMPTYNAME) {
+ resp_result = DNS_R_NXRRSET;
+ } else if (result == DNS_R_DELEGATION) {
+ resp_result = result;
+ } else if (result == ISC_R_NOTFOUND) {
+ /*
+ * Handle referral to ".", including when recursion
+ * is off or not requested and the hints have not
+ * been loaded or we have "additional-from-cache no".
+ */
+ tname = dns_rootname;
+ resp_result = DNS_R_DELEGATION;
+ } else {
+ resp_result = ISC_R_SUCCESS;
+ }
+ rrl_result = dns_rrl(client->view, &client->peeraddr,
+ ISC_TF((client->attributes
+ & NS_CLIENTATTR_TCP) != 0),
+ client->message->rdclass, qtype, tname,
+ resp_result, client->now,
+ wouldlog, log_buf, sizeof(log_buf));
+ if (rrl_result != DNS_RRL_RESULT_OK) {
+ /*
+ * Log dropped or slipped responses in the query
+ * category so that requests are not silently lost.
+ * Starts of rate-limited bursts are logged in
+ * DNS_LOGCATEGORY_RRL.
+ *
+ * Dropped responses are counted with dropped queries
+ * in QryDropped while slipped responses are counted
+ * with other truncated responses in RespTruncated.
+ */
+ if (wouldlog) {
+ ns_client_log(client,
+ NS_LOGCATEGORY_QUERY_EERRORS,
+ NS_LOGMODULE_QUERY,
+ DNS_RRL_LOG_DROP,
+ "%s", log_buf);
+ }
+ if (!client->view->rrl->log_only) {
+ if (rrl_result == DNS_RRL_RESULT_DROP) {
+ /*
+ * These will also be counted in
+ * dns_nsstatscounter_dropped
+ */
+ inc_stats(client,
+ dns_nsstatscounter_ratedropped);
+ QUERY_ERROR(DNS_R_DROP);
+ } else {
+ /*
+ * These will also be counted in
+ * dns_nsstatscounter_truncatedresp
+ */
+ inc_stats(client,
+ dns_nsstatscounter_rateslipped);
+ client->message->flags |=
+ DNS_MESSAGEFLAG_TC;
+ if (resp_result == DNS_R_NXDOMAIN)
+ client->message->rcode =
+ dns_rcode_nxdomain;
+ }
+ goto cleanup;
+ }
+ }
+ }
+#endif /* USE_RRL */
+
if (!ISC_LIST_EMPTY(client->view->rpz_zones) &&
(RECURSIONOK(client) || !client->view->rpz_recursive_only) &&
rpz_ck_dnssec(client, result, rdataset, sigrdataset) &&
@@ -7028,7 +7161,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
goto addauth;
}
- if (dns_db_issecure(db)) {
+ if (qtype == dns_rdatatype_rrsig &&
+ dns_db_issecure(db)) {
char namebuf[DNS_NAME_FORMATSIZE];
dns_name_format(client->query.qname,
namebuf,
@@ -7317,13 +7451,21 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
goto restart;
}
+#ifdef USE_RRL
if (eresult != ISC_R_SUCCESS &&
- (!PARTIALANSWER(client) || WANTRECURSION(client))) {
+ (!PARTIALANSWER(client) || WANTRECURSION(client)
+ || eresult == DNS_R_DROP))
+#else /* USE_RRL */
+ if (eresult != ISC_R_SUCCESS &&
+ (!PARTIALANSWER(client) || WANTRECURSION(client)))
+#endif /* USE_RRL */
+ {
if (eresult == DNS_R_DUPLICATE || eresult == DNS_R_DROP) {
/*
* This was a duplicate query that we are
- * recursing on. Don't send a response now.
- * The original query will still cause a response.
+ * recursing on or the result of rate limiting.
+ * Don't send a response now for a duplicate query,
+ * because the original will still cause a response.
*/
query_next(client, eresult);
} else {
diff --git a/bin/named/server.c b/bin/named/server.c
index aef922bb73bc..77a4e4406976 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -77,11 +77,13 @@
#include <dns/private.h>
#include <dns/rbt.h>
#include <dns/rdataclass.h>
+#include <dns/rdatalist.h>
#include <dns/rdataset.h>
#include <dns/rdatastruct.h>
#include <dns/resolver.h>
#include <dns/rootns.h>
#include <dns/secalg.h>
+#include <dns/soa.h>
#include <dns/stats.h>
#include <dns/tkey.h>
#include <dns/tsig.h>
@@ -384,6 +386,12 @@ end_reserved_dispatches(ns_server_t *server, isc_boolean_t all);
static void
newzone_cfgctx_destroy(void **cfgp);
+static isc_result_t
+putstr(isc_buffer_t *b, const char *str);
+
+isc_result_t
+add_comment(FILE *fp, const char *viewname);
+
/*%
* Configure a single view ACL at '*aclp'. Get its configuration from
* 'vconfig' (for per-view configuration) and maybe from 'config'
@@ -1316,26 +1324,22 @@ on_disable_list(const cfg_obj_t *disablelist, dns_name_t *zonename) {
return (ISC_FALSE);
}
-static void
-check_dbtype(dns_zone_t **zonep, unsigned int dbtypec, const char **dbargv,
+static isc_result_t
+check_dbtype(dns_zone_t *zone, unsigned int dbtypec, const char **dbargv,
isc_mem_t *mctx)
{
char **argv = NULL;
unsigned int i;
- isc_result_t result;
+ isc_result_t result = ISC_R_SUCCESS;
- result = dns_zone_getdbtype(*zonep, &argv, mctx);
- if (result != ISC_R_SUCCESS) {
- dns_zone_detach(zonep);
- return;
- }
+ CHECK(dns_zone_getdbtype(zone, &argv, mctx));
/*
* Check that all the arguments match.
*/
for (i = 0; i < dbtypec; i++)
if (argv[i] == NULL || strcmp(argv[i], dbargv[i]) != 0) {
- dns_zone_detach(zonep);
+ CHECK(ISC_R_FAILURE);
break;
}
@@ -1343,8 +1347,11 @@ check_dbtype(dns_zone_t **zonep, unsigned int dbtypec, const char **dbargv,
* Check that there are not extra arguments.
*/
if (i == dbtypec && argv[i] != NULL)
- dns_zone_detach(zonep);
+ result = ISC_R_FAILURE;
+
+ cleanup:
isc_mem_free(mctx, argv);
+ return (result);
}
static isc_result_t
@@ -1639,6 +1646,406 @@ configure_rpz(dns_view_t *view, const cfg_listelt_t *element,
return (ISC_R_SUCCESS);
}
+#ifdef USE_RRL
+#define CHECK_RRL(cond, pat, val1, val2) \
+ do { \
+ if (!(cond)) { \
+ cfg_obj_log(obj, ns_g_lctx, ISC_LOG_ERROR, \
+ pat, val1, val2); \
+ result = ISC_R_RANGE; \
+ goto cleanup; \
+ } \
+ } while (0)
+
+#define CHECK_RRL_RATE(rate, def, max_rate, name) \
+ do { \
+ obj = NULL; \
+ rrl->rate.str = name; \
+ result = cfg_map_get(map, name, &obj); \
+ if (result == ISC_R_SUCCESS) { \
+ rrl->rate.r = cfg_obj_asuint32(obj); \
+ CHECK_RRL(rrl->rate.r <= max_rate, \
+ name" %d > %d", \
+ rrl->rate.r, max_rate); \
+ } else { \
+ rrl->rate.r = def; \
+ } \
+ rrl->rate.scaled = rrl->rate.r; \
+ } while (0)
+
+static isc_result_t
+configure_rrl(dns_view_t *view, const cfg_obj_t *config, const cfg_obj_t *map) {
+ const cfg_obj_t *obj;
+ dns_rrl_t *rrl;
+ isc_result_t result;
+ int min_entries, i, j;
+
+ /*
+ * Most DNS servers have few clients, but intentinally open
+ * recursive and authoritative servers often have many.
+ * So start with a small number of entries unless told otherwise
+ * to reduce cold-start costs.
+ */
+ min_entries = 500;
+ obj = NULL;
+ result = cfg_map_get(map, "min-table-size", &obj);
+ if (result == ISC_R_SUCCESS) {
+ min_entries = cfg_obj_asuint32(obj);
+ if (min_entries < 1)
+ min_entries = 1;
+ }
+ result = dns_rrl_init(&rrl, view, min_entries);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ i = ISC_MAX(20000, min_entries);
+ obj = NULL;
+ result = cfg_map_get(map, "max-table-size", &obj);
+ if (result == ISC_R_SUCCESS) {
+ i = cfg_obj_asuint32(obj);
+ CHECK_RRL(i >= min_entries,
+ "max-table-size %d < min-table-size %d",
+ i, min_entries);
+ }
+ rrl->max_entries = i;
+
+ CHECK_RRL_RATE(responses_per_second, 0, DNS_RRL_MAX_RATE,
+ "responses-per-second");
+ CHECK_RRL_RATE(referrals_per_second,
+ rrl->responses_per_second.r, DNS_RRL_MAX_RATE,
+ "referrals-per-second");
+ CHECK_RRL_RATE(nodata_per_second,
+ rrl->responses_per_second.r, DNS_RRL_MAX_RATE,
+ "nodata-per-second");
+ CHECK_RRL_RATE(nxdomains_per_second,
+ rrl->responses_per_second.r, DNS_RRL_MAX_RATE,
+ "nxdomains-per-second");
+ CHECK_RRL_RATE(errors_per_second,
+ rrl->responses_per_second.r, DNS_RRL_MAX_RATE,
+ "errors-per-second");
+
+ CHECK_RRL_RATE(all_per_second, 0, DNS_RRL_MAX_RATE,
+ "all-per-second");
+
+ CHECK_RRL_RATE(slip, 2, DNS_RRL_MAX_SLIP,
+ "slip");
+
+ i = 15;
+ obj = NULL;
+ result = cfg_map_get(map, "window", &obj);
+ if (result == ISC_R_SUCCESS) {
+ i = cfg_obj_asuint32(obj);
+ CHECK_RRL(i >= 1 && i <= DNS_RRL_MAX_WINDOW,
+ "window %d < 1 or > %d", i, DNS_RRL_MAX_WINDOW);
+ }
+ rrl->window = i;
+
+ i = 0;
+ obj = NULL;
+ result = cfg_map_get(map, "qps-scale", &obj);
+ if (result == ISC_R_SUCCESS) {
+ i = cfg_obj_asuint32(obj);
+ CHECK_RRL(i >= 1, "invalid 'qps-scale %d'%s", i, "");
+ }
+ rrl->qps_scale = i;
+ rrl->qps = 1.0;
+
+ i = 24;
+ obj = NULL;
+ result = cfg_map_get(map, "ipv4-prefix-length", &obj);
+ if (result == ISC_R_SUCCESS) {
+ i = cfg_obj_asuint32(obj);
+ CHECK_RRL(i >= 8 && i <= 32,
+ "invalid 'ipv4-prefix-length %d'%s", i, "");
+ }
+ rrl->ipv4_prefixlen = i;
+ if (i == 32)
+ rrl->ipv4_mask = 0xffffffff;
+ else
+ rrl->ipv4_mask = htonl(0xffffffff << (32-i));
+
+ i = 56;
+ obj = NULL;
+ result = cfg_map_get(map, "ipv6-prefix-length", &obj);
+ if (result == ISC_R_SUCCESS) {
+ i = cfg_obj_asuint32(obj);
+ CHECK_RRL(i >= 16 && i <= DNS_RRL_MAX_PREFIX,
+ "ipv6-prefix-length %d < 16 or > %d",
+ i, DNS_RRL_MAX_PREFIX);
+ }
+ rrl->ipv6_prefixlen = i;
+ for (j = 0; j < 4; ++j) {
+ if (i <= 0) {
+ rrl->ipv6_mask[j] = 0;
+ } else if (i < 32) {
+ rrl->ipv6_mask[j] = htonl(0xffffffff << (32-i));
+ } else {
+ rrl->ipv6_mask[j] = 0xffffffff;
+ }
+ i -= 32;
+ }
+
+ obj = NULL;
+ result = cfg_map_get(map, "exempt-clients", &obj);
+ if (result == ISC_R_SUCCESS) {
+ result = cfg_acl_fromconfig(obj, config, ns_g_lctx,
+ ns_g_aclconfctx, ns_g_mctx,
+ 0, &rrl->exempt);
+ CHECK_RRL(result == ISC_R_SUCCESS,
+ "invalid %s%s", "address match list", "");
+ }
+
+ obj = NULL;
+ result = cfg_map_get(map, "log-only", &obj);
+ if (result == ISC_R_SUCCESS && cfg_obj_asboolean(obj))
+ rrl->log_only = ISC_TRUE;
+ else
+ rrl->log_only = ISC_FALSE;
+
+ return (ISC_R_SUCCESS);
+
+ cleanup:
+ dns_rrl_view_destroy(view);
+ return (result);
+}
+#endif /* USE_RRL */
+
+static isc_result_t
+add_soa(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
+ dns_name_t *origin, dns_name_t *contact)
+{
+ dns_dbnode_t *node = NULL;
+ dns_rdata_t rdata = DNS_RDATA_INIT;
+ dns_rdatalist_t rdatalist;
+ dns_rdataset_t rdataset;
+ isc_result_t result;
+ unsigned char buf[DNS_SOA_BUFFERSIZE];
+
+ dns_rdataset_init(&rdataset);
+ dns_rdatalist_init(&rdatalist);
+ CHECK(dns_soa_buildrdata(origin, contact, dns_db_class(db),
+ 0, 28800, 7200, 604800, 86400, buf, &rdata));
+ rdatalist.type = rdata.type;
+ rdatalist.covers = 0;
+ rdatalist.rdclass = rdata.rdclass;
+ rdatalist.ttl = 86400;
+ ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
+ CHECK(dns_rdatalist_tordataset(&rdatalist, &rdataset));
+ CHECK(dns_db_findnode(db, name, ISC_TRUE, &node));
+ CHECK(dns_db_addrdataset(db, node, version, 0, &rdataset, 0, NULL));
+ cleanup:
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+ return (result);
+}
+
+static isc_result_t
+add_ns(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
+ dns_name_t *nsname)
+{
+ dns_dbnode_t *node = NULL;
+ dns_rdata_ns_t ns;
+ dns_rdata_t rdata = DNS_RDATA_INIT;
+ dns_rdatalist_t rdatalist;
+ dns_rdataset_t rdataset;
+ isc_result_t result;
+ isc_buffer_t b;
+ unsigned char buf[DNS_NAME_MAXWIRE];
+
+ isc_buffer_init(&b, buf, sizeof(buf));
+
+ dns_rdataset_init(&rdataset);
+ dns_rdatalist_init(&rdatalist);
+ ns.common.rdtype = dns_rdatatype_ns;
+ ns.common.rdclass = dns_db_class(db);
+ ns.mctx = NULL;
+ dns_name_init(&ns.name, NULL);
+ dns_name_clone(nsname, &ns.name);
+ CHECK(dns_rdata_fromstruct(&rdata, dns_db_class(db), dns_rdatatype_ns,
+ &ns, &b));
+ rdatalist.type = rdata.type;
+ rdatalist.covers = 0;
+ rdatalist.rdclass = rdata.rdclass;
+ rdatalist.ttl = 86400;
+ ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
+ CHECK(dns_rdatalist_tordataset(&rdatalist, &rdataset));
+ CHECK(dns_db_findnode(db, name, ISC_TRUE, &node));
+ CHECK(dns_db_addrdataset(db, node, version, 0, &rdataset, 0, NULL));
+ cleanup:
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+ return (result);
+}
+
+static isc_result_t
+create_empty_zone(dns_zone_t *zone, dns_name_t *name, dns_view_t *view,
+ const cfg_obj_t *zonelist, const char **empty_dbtype,
+ int empty_dbtypec, dns_zonestat_level_t statlevel)
+{
+ char namebuf[DNS_NAME_FORMATSIZE];
+ const cfg_listelt_t *element;
+ const cfg_obj_t *obj;
+ const cfg_obj_t *zconfig;
+ const cfg_obj_t *zoptions;
+ const char *rbt_dbtype[4] = { "rbt" };
+ const char *sep = ": view ";
+ const char *str;
+ const char *viewname = view->name;
+ dns_db_t *db = NULL;
+ dns_dbversion_t *version = NULL;
+ dns_fixedname_t cfixed;
+ dns_fixedname_t fixed;
+ dns_fixedname_t nsfixed;
+ dns_name_t *contact;
+ dns_name_t *ns;
+ dns_name_t *zname;
+ dns_zone_t *myzone = NULL;
+ int rbt_dbtypec = 1;
+ isc_result_t result;
+ dns_namereln_t namereln;
+ int order;
+ unsigned int nlabels;
+
+ dns_fixedname_init(&fixed);
+ zname = dns_fixedname_name(&fixed);
+ dns_fixedname_init(&nsfixed);
+ ns = dns_fixedname_name(&nsfixed);
+ dns_fixedname_init(&cfixed);
+ contact = dns_fixedname_name(&cfixed);
+
+ /*
+ * Look for forward "zones" beneath this empty zone and if so
+ * create a custom db for the empty zone.
+ */
+ for (element = cfg_list_first(zonelist);
+ element != NULL;
+ element = cfg_list_next(element)) {
+
+ zconfig = cfg_listelt_value(element);
+ str = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
+ CHECK(dns_name_fromstring(zname, str, 0, NULL));
+ namereln = dns_name_fullcompare(zname, name, &order, &nlabels);
+ if (namereln != dns_namereln_subdomain)
+ continue;
+
+ zoptions = cfg_tuple_get(zconfig, "options");
+
+ obj = NULL;
+ (void)cfg_map_get(zoptions, "type", &obj);
+ INSIST(obj != NULL);
+ if (strcasecmp(cfg_obj_asstring(obj), "forward") == 0) {
+ obj = NULL;
+ (void)cfg_map_get(zoptions, "forward", &obj);
+ if (obj == NULL)
+ continue;
+ if (strcasecmp(cfg_obj_asstring(obj), "only") != 0)
+ continue;
+ }
+ if (db == NULL) {
+ CHECK(dns_db_create(view->mctx, "rbt", name,
+ dns_dbtype_zone, view->rdclass,
+ 0, NULL, &db));
+ CHECK(dns_db_newversion(db, &version));
+ if (strcmp(empty_dbtype[2], "@") == 0)
+ dns_name_clone(name, ns);
+ else
+ CHECK(dns_name_fromstring(ns, empty_dbtype[2],
+ 0, NULL));
+ CHECK(dns_name_fromstring(contact, empty_dbtype[3],
+ 0, NULL));
+ CHECK(add_soa(db, version, name, ns, contact));
+ CHECK(add_ns(db, version, name, ns));
+ }
+ CHECK(add_ns(db, version, zname, dns_rootname));
+ }
+
+ /*
+ * Is the existing zone the ok to use?
+ */
+ if (zone != NULL) {
+ unsigned int typec;
+ const char **dbargv;
+
+ if (db != NULL) {
+ typec = rbt_dbtypec;
+ dbargv = rbt_dbtype;
+ } else {
+ typec = empty_dbtypec;
+ dbargv = empty_dbtype;
+ }
+
+ result = check_dbtype(zone, typec, dbargv, view->mctx);
+ if (result != ISC_R_SUCCESS)
+ zone = NULL;
+
+ if (zone != NULL && dns_zone_gettype(zone) != dns_zone_master)
+ zone = NULL;
+ if (zone != NULL && dns_zone_getfile(zone) != NULL)
+ zone = NULL;
+ if (zone != NULL) {
+ dns_zone_getraw(zone, &myzone);
+ if (myzone != NULL) {
+ dns_zone_detach(&myzone);
+ zone = NULL;
+ }
+ }
+ }
+
+ if (zone == NULL) {
+ CHECK(dns_zonemgr_createzone(ns_g_server->zonemgr, &myzone));
+ zone = myzone;
+ CHECK(dns_zone_setorigin(zone, name));
+ CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr, zone));
+ if (db == NULL)
+ CHECK(dns_zone_setdbtype(zone, empty_dbtypec,
+ empty_dbtype));
+ dns_zone_setclass(zone, view->rdclass);
+ dns_zone_settype(zone, dns_zone_master);
+ dns_zone_setstats(zone, ns_g_server->zonestats);
+ }
+
+ dns_zone_setoption(zone, ~DNS_ZONEOPT_NOCHECKNS, ISC_FALSE);
+ dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, ISC_TRUE);
+ dns_zone_setnotifytype(zone, dns_notifytype_no);
+ dns_zone_setdialup(zone, dns_dialuptype_no);
+ if (view->queryacl)
+ dns_zone_setqueryacl(zone, view->queryacl);
+ else
+ dns_zone_clearqueryacl(zone);
+ if (view->queryonacl)
+ dns_zone_setqueryonacl(zone, view->queryonacl);
+ else
+ dns_zone_clearqueryonacl(zone);
+ dns_zone_clearupdateacl(zone);
+ dns_zone_clearxfracl(zone);
+
+ CHECK(setquerystats(zone, view->mctx, statlevel));
+ if (db != NULL) {
+ dns_db_closeversion(db, &version, ISC_TRUE);
+ CHECK(dns_zone_replacedb(zone, db, ISC_FALSE));
+ }
+ dns_zone_setview(zone, view);
+ CHECK(dns_view_addzone(view, zone));
+
+ if (!strcmp(viewname, "_default")) {
+ sep = "";
+ viewname = "";
+ }
+ dns_name_format(name, namebuf, sizeof(namebuf));
+ isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
+ ISC_LOG_INFO, "automatic empty zone%s%s: %s",
+ sep, viewname, namebuf);
+
+ cleanup:
+ if (myzone != NULL)
+ dns_zone_detach(&myzone);
+ if (version != NULL)
+ dns_db_closeversion(db, &version, ISC_FALSE);
+ if (db != NULL)
+ dns_db_detach(&db);
+ return (result);
+}
+
/*
* Configure 'view' according to 'vconfig', taking defaults from 'config'
* where values are missing in 'vconfig'.
@@ -1691,9 +2098,6 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
unsigned int resopts = 0;
dns_zone_t *zone = NULL;
isc_uint32_t max_clients_per_query;
- const char *sep = ": view ";
- const char *viewname = view->name;
- const char *forview = " for view ";
isc_boolean_t empty_zones_enable;
const cfg_obj_t *disablelist = NULL;
isc_stats_t *resstats = NULL;
@@ -1735,13 +2139,6 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
cfgmaps[k++] = config;
cfgmaps[k] = NULL;
- if (!strcmp(viewname, "_default")) {
- sep = "";
- viewname = "";
- forview = "";
- POST(forview);
- }
-
/*
* Set the view's port number for outgoing queries.
*/
@@ -3001,48 +3398,26 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
if (pview != NULL) {
(void)dns_view_findzone(pview, name, &zone);
dns_view_detach(&pview);
- if (zone != NULL)
- check_dbtype(&zone, empty_dbtypec,
- empty_dbtype, mctx);
- if (zone != NULL) {
- dns_zone_setview(zone, view);
- CHECK(dns_view_addzone(view, zone));
- CHECK(setquerystats(zone, mctx,
- statlevel));
- dns_zone_detach(&zone);
- continue;
- }
}
- CHECK(dns_zonemgr_createzone(ns_g_server->zonemgr,
- &zone));
- CHECK(dns_zone_setorigin(zone, name));
- dns_zone_setview(zone, view);
- CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr,
- zone));
- dns_zone_setclass(zone, view->rdclass);
- dns_zone_settype(zone, dns_zone_master);
- dns_zone_setstats(zone, ns_g_server->zonestats);
- CHECK(dns_zone_setdbtype(zone, empty_dbtypec,
- empty_dbtype));
- if (view->queryacl != NULL)
- dns_zone_setqueryacl(zone, view->queryacl);
- if (view->queryonacl != NULL)
- dns_zone_setqueryonacl(zone, view->queryonacl);
- dns_zone_setdialup(zone, dns_dialuptype_no);
- dns_zone_setnotifytype(zone, dns_notifytype_no);
- dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS,
- ISC_TRUE);
- CHECK(setquerystats(zone, mctx, statlevel));
- CHECK(dns_view_addzone(view, zone));
- isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
- NS_LOGMODULE_SERVER, ISC_LOG_INFO,
- "automatic empty zone%s%s: %s",
- sep, viewname, empty);
- dns_zone_detach(&zone);
+ CHECK(create_empty_zone(zone, name, view, zonelist,
+ empty_dbtype, empty_dbtypec,
+ statlevel));
+ if (zone != NULL)
+ dns_zone_detach(&zone);
}
}
+#ifdef USE_RRL
+ obj = NULL;
+ result = ns_config_get(maps, "rate-limit", &obj);
+ if (result == ISC_R_SUCCESS) {
+ result = configure_rrl(view, config, obj);
+ if (result != ISC_R_SUCCESS)
+ goto cleanup;
+ }
+#endif /* USE_RRL */
+
result = ISC_R_SUCCESS;
cleanup:
@@ -4516,7 +4891,10 @@ load_configuration(const char *filename, ns_server_t *server,
dns_viewlist_t viewlist, builtin_viewlist;
in_port_t listen_port, udpport_low, udpport_high;
int i;
+ int num_zones = 0;
+ isc_boolean_t exclusive = ISC_FALSE;
isc_interval_t interval;
+ isc_logconfig_t *logc = NULL;
isc_portset_t *v4portset = NULL;
isc_portset_t *v6portset = NULL;
isc_resourcevalue_t nfiles;
@@ -4525,12 +4903,10 @@ load_configuration(const char *filename, ns_server_t *server,
isc_uint32_t interface_interval;
isc_uint32_t reserved;
isc_uint32_t udpsize;
- ns_cachelist_t cachelist, tmpcachelist;
- unsigned int maxsocks;
ns_cache_t *nsc;
+ ns_cachelist_t cachelist, tmpcachelist;
struct cfg_context *nzctx;
- int num_zones = 0;
- isc_boolean_t exclusive = ISC_FALSE;
+ unsigned int maxsocks;
ISC_LIST_INIT(viewlist);
ISC_LIST_INIT(builtin_viewlist);
@@ -4818,8 +5194,8 @@ load_configuration(const char *filename, ns_server_t *server,
result = ns_config_get(maps, "tcp-listen-queue", &obj);
INSIST(result == ISC_R_SUCCESS);
ns_g_listen = cfg_obj_asuint32(obj);
- if (ns_g_listen < 3)
- ns_g_listen = 3;
+ if ((ns_g_listen > 0) && (ns_g_listen < 10))
+ ns_g_listen = 10;
/*
* Configure the interface manager according to the "listen-on"
@@ -5191,13 +5567,30 @@ load_configuration(const char *filename, ns_server_t *server,
* unprivileged user, not root.
*/
if (ns_g_logstderr) {
+ const cfg_obj_t *logobj = NULL;
+
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
- "ignoring config file logging "
- "statement due to -g option");
+ "not using config file logging "
+ "statement for logging due to "
+ "-g option");
+
+ (void)cfg_map_get(config, "logging", &logobj);
+ if (logobj != NULL) {
+ result = ns_log_configure(NULL, logobj);
+ if (result != ISC_R_SUCCESS) {
+ isc_log_write(ns_g_lctx,
+ NS_LOGCATEGORY_GENERAL,
+ NS_LOGMODULE_SERVER,
+ ISC_LOG_ERROR,
+ "checking logging configuration "
+ "failed: %s",
+ isc_result_totext(result));
+ goto cleanup;
+ }
+ }
} else {
const cfg_obj_t *logobj = NULL;
- isc_logconfig_t *logc = NULL;
CHECKM(isc_logconfig_create(ns_g_lctx, &logc),
"creating new logging configuration");
@@ -5216,11 +5609,9 @@ load_configuration(const char *filename, ns_server_t *server,
"setting up default 'category default'");
}
- result = isc_logconfig_use(ns_g_lctx, logc);
- if (result != ISC_R_SUCCESS) {
- isc_logconfig_destroy(&logc);
- CHECKM(result, "installing logging configuration");
- }
+ CHECKM(isc_logconfig_use(ns_g_lctx, logc),
+ "installing logging configuration");
+ logc = NULL;
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_DEBUG(1),
@@ -5352,6 +5743,9 @@ load_configuration(const char *filename, ns_server_t *server,
result = ISC_R_SUCCESS;
cleanup:
+ if (logc != NULL)
+ isc_logconfig_destroy(&logc);
+
if (v4portset != NULL)
isc_portset_destroy(ns_g_mctx, &v4portset);
@@ -5451,7 +5845,7 @@ view_loaded(void *arg) {
}
static isc_result_t
-load_zones(ns_server_t *server) {
+load_zones(ns_server_t *server, isc_boolean_t init) {
isc_result_t result;
dns_view_t *view;
ns_zoneload_t *zl;
@@ -5502,12 +5896,14 @@ load_zones(ns_server_t *server) {
if (refs == 0) {
isc_refcount_destroy(&zl->refs);
isc_mem_put(server->mctx, zl, sizeof (*zl));
- } else {
+ } else if (init) {
/*
* Place the task manager into privileged mode. This
* ensures that after we leave task-exclusive mode, no
* other tasks will be able to run except for the ones
- * that are loading zones.
+ * that are loading zones. (This should only be done during
+ * the initial server setup; it isn't necessary during
+ * a reload.)
*/
isc_taskmgr_setmode(ns_g_taskmgr, isc_taskmgrmode_privileged);
}
@@ -5599,7 +5995,7 @@ run_server(isc_task_t *task, isc_event_t *event) {
isc_hash_init();
- CHECKFATAL(load_zones(server), "loading zones");
+ CHECKFATAL(load_zones(server, ISC_TRUE), "loading zones");
}
void
@@ -6036,7 +6432,7 @@ reload(ns_server_t *server) {
isc_result_t result;
CHECK(loadconfig(server));
- result = load_zones(server);
+ result = load_zones(server, ISC_FALSE);
if (result == ISC_R_SUCCESS)
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
@@ -6118,16 +6514,18 @@ next_token(char **stringp, const char *delim) {
*/
static isc_result_t
zone_from_args(ns_server_t *server, char *args, const char *zonetxt,
- dns_zone_t **zonep, const char **zonename, isc_boolean_t skip)
+ dns_zone_t **zonep, const char **zonename,
+ isc_buffer_t *text, isc_boolean_t skip)
{
char *input, *ptr;
char *classtxt;
const char *viewtxt = NULL;
- dns_fixedname_t name;
+ dns_fixedname_t fname;
+ dns_name_t *name;
isc_result_t result;
- isc_buffer_t buf;
dns_view_t *view = NULL;
dns_rdataclass_t rdclass;
+ char problem[DNS_NAME_FORMATSIZE + 500] = "";
REQUIRE(zonep != NULL && *zonep == NULL);
REQUIRE(zonename == NULL || *zonename == NULL);
@@ -6156,38 +6554,40 @@ zone_from_args(ns_server_t *server, char *args, const char *zonetxt,
viewtxt = next_token(&input, " \t");
}
- isc_buffer_constinit(&buf, zonetxt, strlen(zonetxt));
- isc_buffer_add(&buf, strlen(zonetxt));
- dns_fixedname_init(&name);
- result = dns_name_fromtext(dns_fixedname_name(&name),
- &buf, dns_rootname, 0, NULL);
- if (result != ISC_R_SUCCESS)
- goto fail1;
+ dns_fixedname_init(&fname);
+ name = dns_fixedname_name(&fname);
+ CHECK(dns_name_fromstring(name, zonetxt, 0, NULL));
if (classtxt != NULL) {
isc_textregion_t r;
r.base = classtxt;
r.length = strlen(classtxt);
- result = dns_rdataclass_fromtext(&rdclass, &r);
- if (result != ISC_R_SUCCESS)
- goto fail1;
+ CHECK(dns_rdataclass_fromtext(&rdclass, &r));
} else
rdclass = dns_rdataclass_in;
if (viewtxt == NULL) {
- result = dns_viewlist_findzone(&server->viewlist,
- dns_fixedname_name(&name),
+ result = dns_viewlist_findzone(&server->viewlist, name,
ISC_TF(classtxt == NULL),
rdclass, zonep);
+ if (result == ISC_R_NOTFOUND)
+ snprintf(problem, sizeof(problem),
+ "no matching zone '%s' in any view",
+ zonetxt);
} else {
result = dns_viewlist_find(&server->viewlist, viewtxt,
rdclass, &view);
- if (result != ISC_R_SUCCESS)
- goto fail1;
+ if (result != ISC_R_SUCCESS) {
+ snprintf(problem, sizeof(problem),
+ "no matching view '%s'", viewtxt);
+ goto report;
+ }
- result = dns_zt_find(view->zonetable, dns_fixedname_name(&name),
- 0, NULL, zonep);
- dns_view_detach(&view);
+ result = dns_zt_find(view->zonetable, name, 0, NULL, zonep);
+ if (result != ISC_R_SUCCESS)
+ snprintf(problem, sizeof(problem),
+ "no matching zone '%s' in view '%s'",
+ zonetxt, viewtxt);
}
/* Partial match? */
@@ -6195,7 +6595,20 @@ zone_from_args(ns_server_t *server, char *args, const char *zonetxt,
dns_zone_detach(zonep);
if (result == DNS_R_PARTIALMATCH)
result = ISC_R_NOTFOUND;
- fail1:
+ report:
+ if (result != ISC_R_SUCCESS) {
+ isc_result_t tresult;
+
+ tresult = putstr(text, problem);
+ if (tresult == ISC_R_SUCCESS &&
+ isc_buffer_availablelength(text) > 0U)
+ isc_buffer_putuint8(text, 0);
+ }
+
+ cleanup:
+ if (view != NULL)
+ dns_view_detach(&view);
+
return (result);
}
@@ -6203,13 +6616,16 @@ zone_from_args(ns_server_t *server, char *args, const char *zonetxt,
* Act on a "retransfer" command from the command channel.
*/
isc_result_t
-ns_server_retransfercommand(ns_server_t *server, char *args) {
+ns_server_retransfercommand(ns_server_t *server, char *args,
+ isc_buffer_t *text)
+{
isc_result_t result;
dns_zone_t *zone = NULL;
dns_zone_t *raw = NULL;
dns_zonetype_t type;
- result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE);
+ result = zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_TRUE);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL)
@@ -6239,7 +6655,8 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text) {
dns_zonetype_t type;
const char *msg = NULL;
- result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE);
+ result = zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_TRUE);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL) {
@@ -6299,7 +6716,8 @@ ns_server_notifycommand(ns_server_t *server, char *args, isc_buffer_t *text) {
dns_zone_t *zone = NULL;
const unsigned char msg[] = "zone notify queued";
- result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE);
+ result = zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_TRUE);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL)
@@ -6319,17 +6737,25 @@ ns_server_notifycommand(ns_server_t *server, char *args, isc_buffer_t *text) {
isc_result_t
ns_server_refreshcommand(ns_server_t *server, char *args, isc_buffer_t *text) {
isc_result_t result;
- dns_zone_t *zone = NULL;
+ dns_zone_t *zone = NULL, *raw = NULL;
const unsigned char msg1[] = "zone refresh queued";
const unsigned char msg2[] = "not a slave or stub zone";
dns_zonetype_t type;
- result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE);
+ result = zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_TRUE);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL)
return (ISC_R_UNEXPECTEDEND);
+ dns_zone_getraw(zone, &raw);
+ if (raw != NULL) {
+ dns_zone_detach(&zone);
+ dns_zone_attach(raw, &zone);
+ dns_zone_detach(&raw);
+ }
+
type = dns_zone_gettype(zone);
if (type == dns_zone_slave || type == dns_zone_stub) {
dns_zone_refresh(zone);
@@ -7186,7 +7612,7 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text) {
n = snprintf((char *)isc_buffer_used(text),
isc_buffer_availablelength(text),
- "version: %s%s%s%s\n"
+ "version: %s%s%s%s <id:%s>\n"
#ifdef ISC_PLATFORM_USETHREADS
"CPUs found: %u\n"
"worker threads: %u\n"
@@ -7201,7 +7627,7 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text) {
"recursive clients: %d/%d/%d\n"
"tcp clients: %d/%d\n"
"server is up and running",
- ns_g_version, ob, alt, cb,
+ ns_g_version, ob, alt, cb, ns_g_srcid,
#ifdef ISC_PLATFORM_USETHREADS
ns_g_cpus_detected, ns_g_cpus, ns_g_udpdisp,
#endif
@@ -7445,7 +7871,7 @@ ns_server_tsiglist(ns_server_t *server, isc_buffer_t *text) {
* Act on a "sign" or "loadkeys" command from the command channel.
*/
isc_result_t
-ns_server_rekey(ns_server_t *server, char *args) {
+ns_server_rekey(ns_server_t *server, char *args, isc_buffer_t *text) {
isc_result_t result;
dns_zone_t *zone = NULL;
dns_zonetype_t type;
@@ -7455,7 +7881,8 @@ ns_server_rekey(ns_server_t *server, char *args) {
if (strncasecmp(args, NS_COMMAND_SIGN, strlen(NS_COMMAND_SIGN)) == 0)
fullsign = ISC_TRUE;
- result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE);
+ result = zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_TRUE);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL)
@@ -7528,7 +7955,8 @@ ns_server_sync(ns_server_t *server, char *args, isc_buffer_t *text) {
arg = next_token(&args, " \t");
}
- result = zone_from_args(server, args, arg, &zone, NULL, ISC_FALSE);
+ result = zone_from_args(server, args, arg, &zone, NULL,
+ text, ISC_FALSE);
if (result != ISC_R_SUCCESS)
return (result);
@@ -7604,7 +8032,8 @@ ns_server_freeze(ns_server_t *server, isc_boolean_t freeze, char *args,
isc_boolean_t frozen;
const char *msg = NULL;
- result = zone_from_args(server, args, NULL, &zone, NULL, ISC_TRUE);
+ result = zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_TRUE);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL) {
@@ -7730,6 +8159,23 @@ ns_smf_add_message(isc_buffer_t *text) {
#endif /* HAVE_LIBSCF */
/*
+ * Emit a comment at the top of the nzf file containing the viewname
+ * Expects the fp to already be open for writing
+ */
+#define HEADER1 "# New zone file for view: "
+#define HEADER2 "\n# This file contains configuration for zones added by\n" \
+ "# the 'rndc addzone' command. DO NOT EDIT BY HAND.\n"
+isc_result_t
+add_comment(FILE *fp, const char *viewname) {
+ isc_result_t result;
+ CHECK(isc_stdio_write(HEADER1, sizeof(HEADER1) - 1, 1, fp, NULL));
+ CHECK(isc_stdio_write(viewname, strlen(viewname), 1, fp, NULL));
+ CHECK(isc_stdio_write(HEADER2, sizeof(HEADER2) - 1, 1, fp, NULL));
+ cleanup:
+ return (result);
+}
+
+/*
* Act on an "addzone" command from the command channel.
*/
isc_result_t
@@ -7750,15 +8196,18 @@ ns_server_add_zone(ns_server_t *server, char *args) {
const char *viewname = NULL;
dns_rdataclass_t rdclass;
dns_view_t *view = 0;
- isc_buffer_t buf, *nbuf = NULL;
- dns_name_t dnsname;
+ isc_buffer_t buf;
+ dns_fixedname_t fname;
+ dns_name_t *dnsname;
dns_zone_t *zone = NULL;
FILE *fp = NULL;
struct cfg_context *cfg = NULL;
+ char namebuf[DNS_NAME_FORMATSIZE];
+ off_t offset;
/* Try to parse the argument string */
arglen = strlen(args);
- isc_buffer_init(&argbuf, args, arglen);
+ isc_buffer_init(&argbuf, args, (unsigned int)arglen);
isc_buffer_add(&argbuf, strlen(args));
CHECK(cfg_parser_create(server->mctx, ns_g_lctx, &parser));
CHECK(cfg_parse_buffer(parser, &argbuf, &cfg_type_addzoneconf,
@@ -7768,10 +8217,10 @@ ns_server_add_zone(ns_server_t *server, char *args) {
zonename = cfg_obj_asstring(cfg_tuple_get(parms, "name"));
isc_buffer_constinit(&buf, zonename, strlen(zonename));
isc_buffer_add(&buf, strlen(zonename));
- dns_name_init(&dnsname, NULL);
- isc_buffer_allocate(server->mctx, &nbuf, 256);
- dns_name_setbuffer(&dnsname, nbuf);
- CHECK(dns_name_fromtext(&dnsname, &buf, dns_rootname, ISC_FALSE, NULL));
+
+ dns_fixedname_init(&fname);
+ dnsname = dns_fixedname_name(&fname);
+ CHECK(dns_name_fromtext(dnsname, &buf, dns_rootname, ISC_FALSE, NULL));
/* Make sense of optional class argument */
obj = cfg_tuple_get(parms, "class");
@@ -7800,7 +8249,7 @@ ns_server_add_zone(ns_server_t *server, char *args) {
}
/* Zone shouldn't already exist */
- result = dns_zt_find(view->zonetable, &dnsname, 0, NULL, &zone);
+ result = dns_zt_find(view->zonetable, dnsname, 0, NULL, &zone);
if (result == ISC_R_SUCCESS) {
result = ISC_R_EXISTS;
goto cleanup;
@@ -7828,6 +8277,9 @@ ns_server_add_zone(ns_server_t *server, char *args) {
/* Open save file for write configuration */
CHECK(isc_stdio_open(view->new_zone_file, "a", &fp));
+ CHECK(isc_stdio_tell(fp, &offset));
+ if (offset == 0)
+ CHECK(add_comment(fp, view->name));
/* Mark view unfrozen so that zone can be added */
result = isc_task_beginexclusive(server->task);
@@ -7841,7 +8293,7 @@ ns_server_add_zone(ns_server_t *server, char *args) {
goto cleanup;
/* Is it there yet? */
- CHECK(dns_zt_find(view->zonetable, &dnsname, 0, NULL, &zone));
+ CHECK(dns_zt_find(view->zonetable, dnsname, 0, NULL, &zone));
/*
* Load the zone from the master file. If this fails, we'll
@@ -7869,10 +8321,13 @@ ns_server_add_zone(ns_server_t *server, char *args) {
/* Flag the zone as having been added at runtime */
dns_zone_setadded(zone, ISC_TRUE);
- /* Emit just the zone name from args */
- CHECK(isc_stdio_write("zone ", 5, 1, fp, NULL));
- CHECK(isc_stdio_write(zonename, strlen(zonename), 1, fp, NULL));
- CHECK(isc_stdio_write(" ", 1, 1, fp, NULL));
+ /* Emit the zone name, quoted and escaped */
+ isc_buffer_init(&buf, namebuf, sizeof(namebuf));
+ CHECK(dns_name_totext(dnsname, ISC_TRUE, &buf));
+ isc_buffer_putuint8(&buf, 0);
+ CHECK(isc_stdio_write("zone \"", 6, 1, fp, NULL));
+ CHECK(isc_stdio_write(namebuf, strlen(namebuf), 1, fp, NULL));
+ CHECK(isc_stdio_write("\" ", 2, 1, fp, NULL));
/* Classname, if not default */
if (classname != NULL && *classname != '\0') {
@@ -7916,8 +8371,6 @@ ns_server_add_zone(ns_server_t *server, char *args) {
dns_zone_detach(&zone);
if (view != NULL)
dns_view_detach(&view);
- if (nbuf != NULL)
- isc_buffer_free(&nbuf);
return (result);
}
@@ -7926,20 +8379,22 @@ ns_server_add_zone(ns_server_t *server, char *args) {
* Act on a "delzone" command from the command channel.
*/
isc_result_t
-ns_server_del_zone(ns_server_t *server, char *args) {
- isc_result_t result;
- dns_zone_t *zone = NULL;
- dns_view_t *view = NULL;
- dns_db_t *dbp = NULL;
- const char *filename = NULL;
- char *tmpname = NULL;
- char buf[1024];
- const char *zonename = NULL;
- size_t znamelen = 0;
- FILE *ifp = NULL, *ofp = NULL;
+ns_server_del_zone(ns_server_t *server, char *args, isc_buffer_t *text) {
+ isc_result_t result;
+ dns_zone_t *zone = NULL;
+ dns_view_t *view = NULL;
+ dns_db_t *dbp = NULL;
+ const char *filename = NULL;
+ char *tmpname = NULL;
+ char buf[1024];
+ const char *zonename = NULL;
+ size_t znamelen = 0;
+ FILE *ifp = NULL, *ofp = NULL;
+ isc_boolean_t inheader = ISC_TRUE;
/* Parse parameters */
- CHECK(zone_from_args(server, args, NULL, &zone, &zonename, ISC_TRUE));
+ CHECK(zone_from_args(server, args, NULL, &zone, &zonename,
+ text, ISC_TRUE));
if (zone == NULL) {
result = ISC_R_UNEXPECTEDEND;
@@ -7981,28 +8436,44 @@ ns_server_del_zone(ns_server_t *server, char *args) {
goto cleanup;
}
CHECK(isc_stdio_open(tmpname, "w", &ofp));
+ CHECK(add_comment(ofp, view->name));
/* Look for the entry for that zone */
while (fgets(buf, 1024, ifp)) {
- /* A 'zone' line */
- if (strncasecmp(buf, "zone", 4)) {
+ /* Skip initial comment, if any */
+ if (inheader && *buf == '#')
+ continue;
+ if (*buf != '#')
+ inheader = ISC_FALSE;
+
+ /*
+ * Any other lines not starting with zone, copy
+ * them out and continue.
+ */
+ if (strncasecmp(buf, "zone", 4) != 0) {
fputs(buf, ofp);
continue;
}
p = buf+4;
- /* Locate a name */
+ /* This is a zone; find its name. */
while (*p &&
((*p == '"') || isspace((unsigned char)*p)))
p++;
- /* Is that the zone we're looking for */
- if (strncasecmp(p, zonename, znamelen)) {
+ /*
+ * If it's not the zone we're looking for, copy
+ * it out and continue
+ */
+ if (strncasecmp(p, zonename, znamelen) != 0) {
fputs(buf, ofp);
continue;
}
- /* And nothing else? */
+ /*
+ * But if it is the zone we want, skip over it
+ * so it will be omitted from the new file
+ */
p += znamelen;
if (isspace((unsigned char)*p) ||
*p == '"' || *p == '{') {
@@ -8011,7 +8482,7 @@ ns_server_del_zone(ns_server_t *server, char *args) {
break;
}
- /* Spit it out, keep looking */
+ /* Copy the rest of the buffer out and continue */
fputs(buf, ofp);
}
@@ -8146,8 +8617,8 @@ ns_server_signing(ns_server_t *server, char *args, isc_buffer_t *text) {
ptr = next_token(&args, " \t");
if (ptr == NULL)
return (ISC_R_UNEXPECTEDEND);
- memcpy(keystr, ptr, sizeof(keystr));
- } else if(strcasecmp(ptr, "-nsec3param") == 0) {
+ memmove(keystr, ptr, sizeof(keystr));
+ } else if (strcasecmp(ptr, "-nsec3param") == 0) {
const char *hashstr, *flagstr, *iterstr;
char nbuf[512];
@@ -8189,7 +8660,8 @@ ns_server_signing(ns_server_t *server, char *args, isc_buffer_t *text) {
} else
CHECK(DNS_R_SYNTAX);
- CHECK(zone_from_args(server, args, NULL, &zone, NULL, ISC_FALSE));
+ CHECK(zone_from_args(server, args, NULL, &zone, NULL,
+ text, ISC_FALSE));
if (zone == NULL)
CHECK(ISC_R_UNEXPECTEDEND);
@@ -8244,8 +8716,10 @@ ns_server_signing(ns_server_t *server, char *args, isc_buffer_t *text) {
if (n >= isc_buffer_availablelength(text))
CHECK(ISC_R_NOSPACE);
- isc_buffer_add(text, n);
+ isc_buffer_add(text, (unsigned int)n);
}
+ if (!first && isc_buffer_availablelength(text) > 0)
+ isc_buffer_putuint8(text, 0);
if (result == ISC_R_NOMORE)
result = ISC_R_SUCCESS;
@@ -8265,3 +8739,17 @@ ns_server_signing(ns_server_t *server, char *args, isc_buffer_t *text) {
return (result);
}
+
+static isc_result_t
+putstr(isc_buffer_t *b, const char *str) {
+ size_t l = strlen(str);
+
+ /*
+ * Use >= to leave space for NUL termination.
+ */
+ if (l >= isc_buffer_availablelength(b))
+ return (ISC_R_NOSPACE);
+
+ isc_buffer_putmem(b, (const unsigned char *)str, l);
+ return (ISC_R_SUCCESS);
+}
diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c
index bb642cc374bf..8ec08d7b1959 100644
--- a/bin/named/statschannel.c
+++ b/bin/named/statschannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008-2014 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
@@ -27,6 +27,7 @@
#include <isc/print.h>
#include <isc/socket.h>
#include <isc/stats.h>
+#include <isc/string.h>
#include <isc/task.h>
#include <dns/cache.h>
@@ -208,6 +209,12 @@ init_desc(void) {
"UpdateBadPrereq");
SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites",
"RPZRewrites");
+#ifdef USE_RRL
+ SET_NSSTATDESC(ratedropped, "responses dropped for rate limits",
+ "RateDropped");
+ SET_NSSTATDESC(rateslipped, "responses truncated for rate limits",
+ "RateSlipped");
+#endif /* USE_RRL */
INSIST(i == dns_nsstatscounter_max);
/* Initialize resolver statistics */
@@ -972,10 +979,15 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
isc_uint32_t serial;
xmlTextWriterPtr writer = arg;
isc_stats_t *zonestats;
+ dns_zonestat_level_t statlevel;
isc_uint64_t nsstat_values[dns_nsstatscounter_max];
int xmlrc;
isc_result_t result;
+ statlevel = dns_zone_getstatlevel(zone);
+ if (statlevel == dns_zonestat_none)
+ return (ISC_R_SUCCESS);
+
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone"));
dns_zone_name(zone, buf, sizeof(buf));
@@ -1046,7 +1058,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
ISC_XMLCHAR "type=\"text/xsl\" href=\"/bind9.ver3.xsl\""));
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "statistics"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "version",
- ISC_XMLCHAR "3.0"));
+ ISC_XMLCHAR "3.3"));
/* Set common fields for statistics dump */
dumparg.type = statsformat_xml;
@@ -1082,9 +1094,9 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
if (dumparg.result != ISC_R_SUCCESS)
goto error;
}
+else fprintf(stderr, "WTF WHERE'S RESQUERYRSTATS\n");
TRY0(xmlTextWriterEndElement(writer));
- /* <resstats> */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
ISC_XMLCHAR "resstats"));
@@ -1098,7 +1110,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
if (result != ISC_R_SUCCESS)
goto error;
}
- TRY0(xmlTextWriterEndElement(writer)); /* </resstats> */
+ TRY0(xmlTextWriterEndElement(writer));
cacherrstats = dns_db_getrrsetstats(view->cachedb);
if (cacherrstats != NULL) {
@@ -1145,7 +1157,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
ISC_XMLCHAR "opcode"));
dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg,
- 0);
+ ISC_STATSDUMP_VERBOSE);
if (dumparg.result != ISC_R_SUCCESS)
goto error;
@@ -1232,6 +1244,8 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
xmlFreeTextWriter(writer);
xmlDocDumpFormatMemoryEnc(doc, buf, buflen, "UTF-8", 0);
+ if (*buf == NULL)
+ goto error;
xmlFreeDoc(doc);
return (ISC_R_SUCCESS);
@@ -1357,10 +1371,10 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "server"));
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "boot-time"));
TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR boottime));
- TRY0(xmlTextWriterEndElement(writer));
+ TRY0(xmlTextWriterEndElement(writer)); /* boot-time */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "current-time"));
TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR nowstr));
- TRY0(xmlTextWriterEndElement(writer));
+ TRY0(xmlTextWriterEndElement(writer)); /* current-time */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "requests"));
dumparg.result = ISC_R_SUCCESS;
@@ -1426,6 +1440,8 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
xmlFreeTextWriter(writer);
xmlDocDumpFormatMemoryEnc(doc, buf, buflen, "UTF-8", 1);
+ if (*buf == NULL)
+ goto error;
xmlFreeDoc(doc);
return (ISC_R_SUCCESS);
@@ -1446,18 +1462,21 @@ wrap_xmlfree(isc_buffer_t *buffer, void *arg) {
}
static isc_result_t
-render_index(const char *url, const char *querystring, void *arg,
+render_index(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers, void *arg,
unsigned int *retcode, const char **retmsg, const char **mimetype,
isc_buffer_t *b, isc_httpdfree_t **freecb,
void **freecb_args)
{
- unsigned char *msg;
+ unsigned char *msg = NULL;
int msglen;
ns_server_t *server = arg;
isc_result_t result;
UNUSED(url);
+ UNUSED(urlinfo);
UNUSED(querystring);
+ UNUSED(headers);
result = generatexml(server, &msglen, &msg);
@@ -1480,22 +1499,56 @@ render_index(const char *url, const char *querystring, void *arg,
#endif /* HAVE_LIBXML2 */
static isc_result_t
-render_xsl(const char *url, const char *querystring, void *args,
- unsigned int *retcode, const char **retmsg, const char **mimetype,
- isc_buffer_t *b, isc_httpdfree_t **freecb,
- void **freecb_args)
+render_xsl(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers,
+ void *args, unsigned int *retcode, const char **retmsg,
+ const char **mimetype, isc_buffer_t *b,
+ isc_httpdfree_t **freecb, void **freecb_args)
{
+ isc_result_t result;
+
UNUSED(url);
UNUSED(querystring);
UNUSED(args);
+ *freecb = NULL;
+ *freecb_args = NULL;
+ *mimetype = "text/xslt+xml";
+
+ if (urlinfo->isstatic) {
+ isc_time_t when;
+ char *p = strcasestr(headers, "If-Modified-Since: ");
+
+ if (p != NULL) {
+ time_t t1, t2;
+ p += strlen("If-Modified-Since: ");
+ result = isc_time_parsehttptimestamp(p, &when);
+ if (result != ISC_R_SUCCESS)
+ goto send;
+
+ result = isc_time_secondsastimet(&when, &t1);
+ if (result != ISC_R_SUCCESS)
+ goto send;
+
+ result = isc_time_secondsastimet(&urlinfo->loadtime,
+ &t2);
+ if (result != ISC_R_SUCCESS)
+ goto send;
+
+ if (t1 < t2)
+ goto send;
+
+ *retcode = 304;
+ *retmsg = "Not modified";
+ return (ISC_R_SUCCESS);
+ }
+ }
+
+ send:
*retcode = 200;
*retmsg = "OK";
- *mimetype = "text/xslt+xml";
isc_buffer_reinit(b, xslmsg, strlen(xslmsg));
isc_buffer_add(b, strlen(xslmsg));
- *freecb = NULL;
- *freecb_args = NULL;
return (ISC_R_SUCCESS);
}
@@ -1632,11 +1685,11 @@ add_listener(ns_server_t *server, ns_statschannel_t **listenerp,
#endif /* NEWSTATS */
#endif
#ifdef NEWSTATS
- isc_httpdmgr_addurl(listener->httpdmgr, "/bind9.ver3.xsl", render_xsl,
- server);
+ isc_httpdmgr_addurl2(listener->httpdmgr, "/bind9.ver3.xsl", ISC_TRUE,
+ render_xsl, server);
#else /* OLDSTATS */
- isc_httpdmgr_addurl(listener->httpdmgr, "/bind9.xsl", render_xsl,
- server);
+ isc_httpdmgr_addurl2(listener->httpdmgr, "/bind9.xsl", ISC_TRUE,
+ render_xsl, server);
#endif /* NEWSTATS */
*listenerp = listener;
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
diff --git a/bin/named/unix/os.c b/bin/named/unix/os.c
index 4f5f55c3eedb..d6c82a764ad8 100644
--- a/bin/named/unix/os.c
+++ b/bin/named/unix/os.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -120,6 +120,9 @@ static isc_boolean_t non_root_caps = ISC_FALSE;
#ifdef HAVE_SYS_CAPABILITY_H
#include <sys/capability.h>
#else
+#ifdef HAVE_LINUX_TYPES_H
+#include <linux/types.h>
+#endif
/*%
* 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
diff --git a/bin/named/update.c b/bin/named/update.c
index 0df00c083c55..f3ad83878532 100644
--- a/bin/named/update.c
+++ b/bin/named/update.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -404,7 +404,6 @@ do_one_tuple(dns_difftuple_t **tuple, dns_db_t *db, dns_dbversion_t *ver,
* Create a singleton diff.
*/
dns_diff_init(diff->mctx, &temp_diff);
- temp_diff.resign = diff->resign;
ISC_LIST_APPEND(temp_diff.tuples, *tuple, link);
/*
@@ -3342,6 +3341,8 @@ forward_action(isc_task_t *task, isc_event_t *event) {
static isc_result_t
send_forward_event(ns_client_t *client, dns_zone_t *zone) {
+ char namebuf[DNS_NAME_FORMATSIZE];
+ char classbuf[DNS_RDATACLASS_FORMATSIZE];
isc_result_t result = ISC_R_SUCCESS;
update_event_t *event = NULL;
isc_task_t *zonetask = NULL;
@@ -3367,6 +3368,15 @@ send_forward_event(ns_client_t *client, dns_zone_t *zone) {
client->nupdates++;
event->ev_arg = evclient;
+ dns_name_format(dns_zone_getorigin(zone), namebuf,
+ sizeof(namebuf));
+ dns_rdataclass_format(dns_zone_getclass(zone), classbuf,
+ sizeof(classbuf));
+
+ ns_client_log(client, NS_LOGCATEGORY_UPDATE, NS_LOGMODULE_UPDATE,
+ LOGLEVEL_PROTOCOL, "forwarding update for zone '%s/%s'",
+ namebuf, classbuf);
+
dns_zone_gettask(zone, &zonetask);
isc_task_send(zonetask, ISC_EVENT_PTR(&event));
diff --git a/bin/named/zoneconf.c b/bin/named/zoneconf.c
index 7f36b143d4e5..3369c42de1f9 100644
--- a/bin/named/zoneconf.c
+++ b/bin/named/zoneconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -462,7 +462,7 @@ configure_staticstub_serveraddrs(const cfg_obj_t *zconfig, dns_zone_t *zone,
if (rdata == NULL)
return (ISC_R_NOMEMORY);
region.base = (unsigned char *)(rdata + 1);
- memcpy(region.base, &na.type, region.length);
+ memmove(region.base, &na.type, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
rdatalist->type, &region);
@@ -490,7 +490,7 @@ configure_staticstub_serveraddrs(const cfg_obj_t *zconfig, dns_zone_t *zone,
}
region.length = sregion.length;
region.base = (unsigned char *)(rdata + 1);
- memcpy(region.base, sregion.base, region.length);
+ memmove(region.base, sregion.base, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
dns_rdatatype_ns, &region);
@@ -554,7 +554,7 @@ configure_staticstub_servernames(const cfg_obj_t *zconfig, dns_zone_t *zone,
return (ISC_R_NOMEMORY);
region.length = sregion.length;
region.base = (unsigned char *)(rdata + 1);
- memcpy(region.base, sregion.base, region.length);
+ memmove(region.base, sregion.base, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
dns_rdatatype_ns, &region);
diff --git a/bin/nsupdate/Makefile.in b/bin/nsupdate/Makefile.in
index 09e6c14052e8..6546e9c7cc76 100644
--- a/bin/nsupdate/Makefile.in
+++ b/bin/nsupdate/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2006-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2006-2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -25,8 +25,10 @@ top_srcdir = @top_srcdir@
READLINE_LIB = @READLINE_LIB@
+DST_GSSAPI_INC = @DST_GSSAPI_INC@
+
CINCLUDES = ${LWRES_INCLUDES} ${DNS_INCLUDES} ${BIND9_INCLUDES} \
- ${ISC_INCLUDES} ${ISCCFG_INCLUDES} @DST_GSSAPI_INC@
+ ${ISC_INCLUDES} ${ISCCFG_INCLUDES} ${DST_GSSAPI_INC}
CDEFINES = @USE_GSSAPI@
CWARNINGS =
diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c
index e96c075b67c4..9923f89156be 100644
--- a/bin/nsupdate/nsupdate.c
+++ b/bin/nsupdate/nsupdate.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -81,8 +81,12 @@
#ifdef GSSAPI
#include <dst/gssapi.h>
+#ifdef WIN32
+#include <krb5/krb5.h>
+#else
#include ISC_PLATFORM_KRB5HEADER
#endif
+#endif
#include <bind9/getaddresses.h>
#if defined(HAVE_READLINE)
@@ -543,8 +547,8 @@ setup_keystr(void) {
n = s;
}
- isc_buffer_init(&keynamesrc, name, n - name);
- isc_buffer_add(&keynamesrc, n - name);
+ isc_buffer_init(&keynamesrc, name, (unsigned int)(n - name));
+ isc_buffer_add(&keynamesrc, (unsigned int)(n - name));
debug("namefromtext");
result = dns_name_fromtext(keyname, &keynamesrc, dns_rootname, 0, NULL);
@@ -836,13 +840,16 @@ setup_system(void) {
if (servers == NULL)
fatal("out of memory");
for (i = 0; i < ns_total; i++) {
- if (lwconf->nameservers[i].family == LWRES_ADDRTYPE_V4) {
+ if (lwconf->nameservers[i].family == LWRES_ADDRTYPE_V4)
+ {
struct in_addr in4;
- memcpy(&in4, lwconf->nameservers[i].address, 4);
+ memmove(&in4,
+ lwconf->nameservers[i].address, 4);
isc_sockaddr_fromin(&servers[i], &in4, dnsport);
} else {
struct in6_addr in6;
- memcpy(&in6, lwconf->nameservers[i].address, 16);
+ memmove(&in6,
+ lwconf->nameservers[i].address, 16);
isc_sockaddr_fromin6(&servers[i], &in6,
dnsport);
}
@@ -1539,16 +1546,20 @@ evaluate_realm(char *cmdline) {
#ifdef GSSAPI
char *word;
char buf[1024];
+ int n;
- word = nsu_strsep(&cmdline, " \t\r\n");
- if (word == NULL || *word == 0) {
- if (realm != NULL)
- isc_mem_free(mctx, realm);
+ if (realm != NULL) {
+ isc_mem_free(mctx, realm);
realm = NULL;
- return (STATUS_MORE);
}
- snprintf(buf, sizeof(buf), "@%s", word);
+ word = nsu_strsep(&cmdline, " \t\r\n");
+ if (word == NULL || *word == 0)
+ return (STATUS_MORE);
+
+ n = snprintf(buf, sizeof(buf), "@%s", word);
+ if (n < 0 || (size_t)n >= sizeof(buf))
+ fatal("realm is too long");
realm = isc_mem_strdup(mctx, buf);
if (realm == NULL)
fatal("out of memory");
@@ -2008,7 +2019,8 @@ get_next_command(void) {
if (interactive) {
#ifdef HAVE_READLINE
cmdline = readline("> ");
- add_history(cmdline);
+ if (cmdline != NULL)
+ add_history(cmdline);
#else
fprintf(stdout, "> ");
fflush(stdout);
@@ -2571,7 +2583,7 @@ start_gssrequest(dns_name_t *master) {
if (userserver == NULL)
get_address(namestr, dnsport, kserver);
else
- (void)memcpy(kserver, userserver, sizeof(isc_sockaddr_t));
+ (void)memmove(kserver, userserver, sizeof(isc_sockaddr_t));
dns_fixedname_init(&fname);
servname = dns_fixedname_name(&fname);
diff --git a/bin/rndc/rndc.8 b/bin/rndc/rndc.8
index 7197ed0b9288..9c87c68a7578 100644
--- a/bin/rndc/rndc.8
+++ b/bin/rndc/rndc.8
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000, 2001 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -20,11 +20,11 @@
.\" Title: rndc
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
-.\" Date: June 30, 2000
+.\" Date: June 7, 2013
.\" Manual: BIND9
.\" Source: BIND9
.\"
-.TH "RNDC" "8" "June 30, 2000" "BIND9" "BIND9"
+.TH "RNDC" "8" "June 7, 2013" "BIND9" "BIND9"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
@@ -113,17 +113,292 @@ is specified,
\fBrndc\fR
will first look for a key clause in the server statement of the server being used, or if no server statement is present for that host, then the default\-key clause of the options statement. Note that the configuration file contains shared secrets which are used to send authenticated control commands to name servers. It should therefore not have general read or write access.
.RE
+.SH "COMMANDS"
.PP
-For the complete set of commands supported by
-\fBrndc\fR, see the BIND 9 Administrator Reference Manual or run
+A list of commands supported by
\fBrndc\fR
-without arguments to see its help message.
-.SH "LIMITATIONS"
-.PP
+can be seen by running
\fBrndc\fR
-does not yet support all the commands of the BIND 8
-\fBndc\fR
-utility.
+without arguments.
+.PP
+Currently supported commands are:
+.PP
+\fBreload\fR
+.RS 4
+Reload configuration file and zones.
+.RE
+.PP
+\fBreload \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
+.RS 4
+Reload the given zone.
+.RE
+.PP
+\fBrefresh \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
+.RS 4
+Schedule zone maintenance for the given zone.
+.RE
+.PP
+\fBretransfer \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
+.RS 4
+Retransfer the given slave zone from the master server.
+.sp
+If the zone is configured to use
+\fBinline\-signing\fR, the signed version of the zone is discarded; after the retransfer of the unsigned version is complete, the signed version will be regenerated with all new signatures.
+.RE
+.PP
+\fBsign \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
+.RS 4
+Fetch all DNSSEC keys for the given zone from the key directory (see the
+\fBkey\-directory\fR
+option in the BIND 9 Administrator Reference Manual). If they are within their publication period, merge them into the zone's DNSKEY RRset. If the DNSKEY RRset is changed, then the zone is automatically re\-signed with the new key set.
+.sp
+This command requires that the
+\fBauto\-dnssec\fR
+zone option be set to
+allow
+or
+maintain, and also requires the zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in the Administrator Reference Manual for more details.)
+.RE
+.PP
+\fBloadkeys \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
+.RS 4
+Fetch all DNSSEC keys for the given zone from the key directory. If they are within their publication period, merge them into the zone's DNSKEY RRset. Unlike
+\fBrndc sign\fR, however, the zone is not immediately re\-signed by the new keys, but is allowed to incrementally re\-sign over time.
+.sp
+This command requires that the
+\fBauto\-dnssec\fR
+zone option be set to
+maintain, and also requires the zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in the Administrator Reference Manual for more details.)
+.RE
+.PP
+\fBfreeze \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR
+.RS 4
+Suspend updates to a dynamic zone. If no zone is specified, then all zones are suspended. This allows manual edits to be made to a zone normally updated by dynamic update. It also causes changes in the journal file to be synced into the master file. All dynamic update attempts will be refused while the zone is frozen.
+.RE
+.PP
+\fBthaw \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR
+.RS 4
+Enable updates to a frozen dynamic zone. If no zone is specified, then all frozen zones are enabled. This causes the server to reload the zone from disk, and re\-enables dynamic updates after the load has completed. After a zone is thawed, dynamic updates will no longer be refused. If the zone has changed and the
+\fBixfr\-from\-differences\fR
+option is in use, then the journal file will be updated to reflect changes in the zone. Otherwise, if the zone has changed, any existing journal file will be removed.
+.RE
+.PP
+\fBsync \fR\fB[\-clean]\fR\fB \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR
+.RS 4
+Sync changes in the journal file for a dynamic zone to the master file. If the "\-clean" option is specified, the journal file is also removed. If no zone is specified, then all zones are synced.
+.RE
+.PP
+\fBnotify \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR
+.RS 4
+Resend NOTIFY messages for the zone.
+.RE
+.PP
+\fBreconfig\fR
+.RS 4
+Reload the configuration file and load new zones, but do not reload existing zone files even if they have changed. This is faster than a full
+\fBreload\fR
+when there is a large number of zones because it avoids the need to examine the modification times of the zones files.
+.RE
+.PP
+\fBstats\fR
+.RS 4
+Write server statistics to the statistics file.
+.RE
+.PP
+\fBquerylog\fR [on|off]
+.RS 4
+Enable or disable query logging. (For backward compatibility, this command can also be used without an argument to toggle query logging on and off.)
+.sp
+Query logging can also be enabled by explicitly directing the
+\fBqueries\fR
+\fBcategory\fR
+to a
+\fBchannel\fR
+in the
+\fBlogging\fR
+section of
+\fInamed.conf\fR
+or by specifying
+\fBquerylog yes;\fR
+in the
+\fBoptions\fR
+section of
+\fInamed.conf\fR.
+.RE
+.PP
+\fBdumpdb \fR\fB[\-all|\-cache|\-zone]\fR\fB \fR\fB[\fIview ...\fR]\fR
+.RS 4
+Dump the server's caches (default) and/or zones to the dump file for the specified views. If no view is specified, all views are dumped.
+.RE
+.PP
+\fBsecroots \fR\fB[\fIview ...\fR]\fR
+.RS 4
+Dump the server's security roots to the secroots file for the specified views. If no view is specified, security roots for all views are dumped.
+.RE
+.PP
+\fBstop \fR\fB[\-p]\fR
+.RS 4
+Stop the server, making sure any recent changes made through dynamic update or IXFR are first saved to the master files of the updated zones. If
+\fB\-p\fR
+is specified
+\fBnamed\fR's process id is returned. This allows an external process to determine when
+\fBnamed\fR
+had completed stopping.
+.RE
+.PP
+\fBhalt \fR\fB[\-p]\fR
+.RS 4
+Stop the server immediately. Recent changes made through dynamic update or IXFR are not saved to the master files, but will be rolled forward from the journal files when the server is restarted. If
+\fB\-p\fR
+is specified
+\fBnamed\fR's process id is returned. This allows an external process to determine when
+\fBnamed\fR
+had completed halting.
+.RE
+.PP
+\fBtrace\fR
+.RS 4
+Increment the servers debugging level by one.
+.RE
+.PP
+\fBtrace \fR\fB\fIlevel\fR\fR
+.RS 4
+Sets the server's debugging level to an explicit value.
+.RE
+.PP
+\fBnotrace\fR
+.RS 4
+Sets the server's debugging level to 0.
+.RE
+.PP
+\fBflush\fR
+.RS 4
+Flushes the server's cache.
+.RE
+.PP
+\fBflushname\fR \fIname\fR [\fIview\fR]
+.RS 4
+Flushes the given name from the server's DNS cache and, if applicable, from the server's nameserver address database or bad\-server cache.
+.RE
+.PP
+\fBflushtree\fR \fIname\fR [\fIview\fR]
+.RS 4
+Flushes the given name, and all of its subdomains, from the server's DNS cache. Note that this does
+\fInot\fR
+affect he server's address database or bad\-server cache.
+.RE
+.PP
+\fBstatus\fR
+.RS 4
+Display status of the server. Note that the number of zones includes the internal
+\fBbind/CH\fR
+zone and the default
+\fB./IN\fR
+hint zone if there is not an explicit root zone configured.
+.RE
+.PP
+\fBrecursing\fR
+.RS 4
+Dump the list of queries
+\fBnamed\fR
+is currently recursing on.
+.RE
+.PP
+\fBvalidation ( on | off | check ) \fR\fB[\fIview ...\fR]\fR\fB \fR
+.RS 4
+Enable, disable, or check the current status of DNSSEC validation. Note
+\fBdnssec\-enable\fR
+also needs to be set to
+\fByes\fR
+or
+\fBauto\fR
+to be effective. It defaults to enabled.
+.RE
+.PP
+\fBtsig\-list\fR
+.RS 4
+List the names of all TSIG keys currently configured for use by
+\fBnamed\fR
+in each view. The list both statically configured keys and dynamic TKEY\-negotiated keys.
+.RE
+.PP
+\fBtsig\-delete\fR \fIkeyname\fR [\fIview\fR]
+.RS 4
+Delete a given TKEY\-negotiated key from the server. (This does not apply to statically configured TSIG keys.)
+.RE
+.PP
+\fBaddzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR\fB\fIconfiguration\fR\fR\fB \fR
+.RS 4
+Add a zone while the server is running. This command requires the
+\fBallow\-new\-zones\fR
+option to be set to
+\fByes\fR. The
+\fIconfiguration\fR
+string specified on the command line is the zone configuration text that would ordinarily be placed in
+\fInamed.conf\fR.
+.sp
+The configuration is saved in a file called
+\fI\fIhash\fR\fR\fI.nzf\fR, where
+\fIhash\fR
+is a cryptographic hash generated from the name of the view. When
+\fBnamed\fR
+is restarted, the file will be loaded into the view configuration, so that zones that were added can persist after a restart.
+.sp
+This sample
+\fBaddzone\fR
+command would add the zone
+example.com
+to the default view:
+.sp
+$\fBrndc addzone example.com '{ type master; file "example.com.db"; };'\fR
+.sp
+(Note the brackets and semi\-colon around the zone configuration text.)
+.RE
+.PP
+\fBdelzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR
+.RS 4
+Delete a zone while the server is running. Only zones that were originally added via
+\fBrndc addzone\fR
+can be deleted in this manner.
+.RE
+.PP
+\fBsigning \fR\fB[( \-list | \-clear \fIkeyid/algorithm\fR | \-clear all | \-nsec3param ( \fIparameters\fR | none ) ) ]\fR\fB \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR
+.RS 4
+List, edit, or remove the DNSSEC signing state for the specified zone. The status of ongoing DNSSEC operations (such as signing or generating NSEC3 chains) is stored in the zone in the form of DNS resource records of type
+\fBsig\-signing\-type\fR.
+\fBrndc signing \-list\fR
+converts these records into a human\-readable form, indicating which keys are currently signing or have finished signing the zone, and which NSEC3 chains are being created or removed.
+.sp
+\fBrndc signing \-clear\fR
+can remove a single key (specified in the same format that
+\fBrndc signing \-list\fR
+uses to display it), or all keys. In either case, only completed keys are removed; any record indicating that a key has not yet finished signing the zone will be retained.
+.sp
+\fBrndc signing \-nsec3param\fR
+sets the NSEC3 parameters for a zone. This is the only supported mechanism for using NSEC3 with
+\fBinline\-signing\fR
+zones. Parameters are specified in the same format as an NSEC3PARAM resource record: hash algorithm, flags, iterations, and salt, in that order.
+.sp
+Currently, the only defined value for hash algorithm is
+1, representing SHA\-1. The
+\fBflags\fR
+may be set to
+0
+or
+1, depending on whether you wish to set the opt\-out bit in the NSEC3 chain.
+\fBiterations\fR
+defines the number of additional times to apply the algorithm when generating an NSEC3 hash. The
+\fBsalt\fR
+is a string of data expressed in hexadecimal, or a hyphen (`\-') if no salt is to be used.
+.sp
+So, for example, to create an NSEC3 chain using the SHA\-1 hash algorithm, no opt\-out flag, 10 iterations, and a salt value of "FFFF", use:
+\fBrndc signing \-nsec3param 1 0 10 FFFF \fR\fB\fIzone\fR\fR. To set the opt\-out flag, 15 iterations, and no salt, use:
+\fBrndc signing \-nsec3param 1 1 15 \- \fR\fB\fIzone\fR\fR.
+.sp
+\fBrndc signing \-nsec3param none\fR
+removes an existing NSEC3 chain and replaces it with NSEC.
+.RE
+.SH "LIMITATIONS"
.PP
There is currently no way to provide the shared secret for a
\fBkey_id\fR
@@ -142,7 +417,7 @@ BIND 9 Administrator Reference Manual.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
-Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000, 2001 Internet Software Consortium.
.br
diff --git a/bin/rndc/rndc.c b/bin/rndc/rndc.c
index e3e6525f5c34..33802db2aa40 100644
--- a/bin/rndc/rndc.c
+++ b/bin/rndc/rndc.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -265,9 +265,10 @@ rndc_recvdone(isc_task_t *task, isc_event_t *event) {
progname, isc_result_totext(result));
result = isccc_cc_lookupstring(data, "text", &textmsg);
- if (result == ISC_R_SUCCESS)
- printf("%s\n", textmsg);
- else if (result != ISC_R_NOTFOUND)
+ if (result == ISC_R_SUCCESS) {
+ if (strlen(textmsg) != 0U)
+ printf("%s\n", textmsg);
+ } else if (result != ISC_R_NOTFOUND)
fprintf(stderr, "%s: parsing response failed: %s\n",
progname, isc_result_totext(result));
@@ -491,6 +492,9 @@ parse_config(isc_mem_t *mctx, isc_log_t *log, const char *keyname,
conffile = admin_keyfile;
conftype = &cfg_type_rndckey;
+ if (c_flag)
+ fatal("%s does not exist", admin_conffile);
+
if (! isc_file_exists(conffile))
fatal("neither %s nor %s was found",
admin_conffile, admin_keyfile);
@@ -721,7 +725,7 @@ main(int argc, char **argv) {
result = isc_file_progname(*argv, program, sizeof(program));
if (result != ISC_R_SUCCESS)
- memcpy(program, "rndc", 5);
+ memmove(program, "rndc", 5);
progname = program;
admin_conffile = RNDC_CONFFILE;
@@ -853,7 +857,7 @@ main(int argc, char **argv) {
p = args;
for (i = 0; i < argc; i++) {
size_t len = strlen(argv[i]);
- memcpy(p, argv[i], len);
+ memmove(p, argv[i], len);
p += len;
*p++ = ' ';
}
diff --git a/bin/rndc/rndc.docbook b/bin/rndc/rndc.docbook
index d407f2b515cb..2b91d2d57acc 100644
--- a/bin/rndc/rndc.docbook
+++ b/bin/rndc/rndc.docbook
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000, 2001 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -21,7 +21,7 @@
<!-- $Id: rndc.docbook,v 1.21 2007/12/14 20:39:14 marka Exp $ -->
<refentry id="man.rndc">
<refentryinfo>
- <date>June 30, 2000</date>
+ <date>June 7, 2013</date>
</refentryinfo>
<refmeta>
@@ -40,6 +40,7 @@
<year>2004</year>
<year>2005</year>
<year>2007</year>
+ <year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -194,22 +195,507 @@
</varlistentry>
</variablelist>
+ </refsect1>
+ <refsect1>
+ <title>COMMANDS</title>
+ <para>
+ A list of commands supported by <command>rndc</command> can
+ be seen by running <command>rndc</command> without arguments.
+ </para>
<para>
- For the complete set of commands supported by <command>rndc</command>,
- see the BIND 9 Administrator Reference Manual or run
- <command>rndc</command> without arguments to see its help
- message.
+ Currently supported commands are:
</para>
+ <variablelist>
+ <varlistentry>
+ <term><userinput>reload</userinput></term>
+ <listitem>
+ <para>
+ Reload configuration file and zones.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>reload <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Reload the given zone.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>refresh <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Schedule zone maintenance for the given zone.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>retransfer <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Retransfer the given slave zone from the master server.
+ </para>
+ <para>
+ If the zone is configured to use
+ <command>inline-signing</command>, the signed
+ version of the zone is discarded; after the
+ retransfer of the unsigned version is complete, the
+ signed version will be regenerated with all new
+ signatures.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>sign <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Fetch all DNSSEC keys for the given zone
+ from the key directory (see the
+ <command>key-directory</command> option in
+ the BIND 9 Administrator Reference Manual). If they are within
+ their publication period, merge them into the
+ zone's DNSKEY RRset. If the DNSKEY RRset
+ is changed, then the zone is automatically
+ re-signed with the new key set.
+ </para>
+ <para>
+ This command requires that the
+ <command>auto-dnssec</command> zone option be set
+ to <literal>allow</literal> or
+ <literal>maintain</literal>,
+ and also requires the zone to be configured to
+ allow dynamic DNS.
+ (See "Dynamic Update Policies" in the Administrator
+ Reference Manual for more details.)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>loadkeys <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Fetch all DNSSEC keys for the given zone
+ from the key directory. If they are within
+ their publication period, merge them into the
+ zone's DNSKEY RRset. Unlike <command>rndc
+ sign</command>, however, the zone is not
+ immediately re-signed by the new keys, but is
+ allowed to incrementally re-sign over time.
+ </para>
+ <para>
+ This command requires that the
+ <command>auto-dnssec</command> zone option
+ be set to <literal>maintain</literal>,
+ and also requires the zone to be configured to
+ allow dynamic DNS.
+ (See "Dynamic Update Policies" in the Administrator
+ Reference Manual for more details.)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>freeze <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Suspend updates to a dynamic zone. If no zone is
+ specified, then all zones are suspended. This allows
+ manual edits to be made to a zone normally updated by
+ dynamic update. It also causes changes in the
+ journal file to be synced into the master file.
+ All dynamic update attempts will be refused while
+ the zone is frozen.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>thaw <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Enable updates to a frozen dynamic zone. If no
+ zone is specified, then all frozen zones are
+ enabled. This causes the server to reload the zone
+ from disk, and re-enables dynamic updates after the
+ load has completed. After a zone is thawed,
+ dynamic updates will no longer be refused. If
+ the zone has changed and the
+ <command>ixfr-from-differences</command> option is
+ in use, then the journal file will be updated to
+ reflect changes in the zone. Otherwise, if the
+ zone has changed, any existing journal file will be
+ removed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>sync <optional>-clean</optional> <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Sync changes in the journal file for a dynamic zone
+ to the master file. If the "-clean" option is
+ specified, the journal file is also removed. If
+ no zone is specified, then all zones are synced.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>notify <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term>
+ <listitem>
+ <para>
+ Resend NOTIFY messages for the zone.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>reconfig</userinput></term>
+ <listitem>
+ <para>
+ Reload the configuration file and load new zones,
+ but do not reload existing zone files even if they
+ have changed.
+ This is faster than a full <command>reload</command> when there
+ is a large number of zones because it avoids the need
+ to examine the
+ modification times of the zones files.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>stats</userinput></term>
+ <listitem>
+ <para>
+ Write server statistics to the statistics file.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>querylog</userinput> <optional>on|off</optional> </term>
+ <listitem>
+ <para>
+ Enable or disable query logging. (For backward
+ compatibility, this command can also be used without
+ an argument to toggle query logging on and off.)
+ </para>
+ <para>
+ Query logging can also be enabled
+ by explicitly directing the <command>queries</command>
+ <command>category</command> to a
+ <command>channel</command> in the
+ <command>logging</command> section of
+ <filename>named.conf</filename> or by specifying
+ <command>querylog yes;</command> in the
+ <command>options</command> section of
+ <filename>named.conf</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>dumpdb <optional>-all|-cache|-zone</optional> <optional><replaceable>view ...</replaceable></optional></userinput></term>
+ <listitem>
+ <para>
+ Dump the server's caches (default) and/or zones to
+ the
+ dump file for the specified views. If no view is
+ specified, all
+ views are dumped.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>secroots <optional><replaceable>view ...</replaceable></optional></userinput></term>
+ <listitem>
+ <para>
+ Dump the server's security roots to the secroots
+ file for the specified views. If no view is
+ specified, security roots for all
+ views are dumped.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>stop <optional>-p</optional></userinput></term>
+ <listitem>
+ <para>
+ Stop the server, making sure any recent changes
+ made through dynamic update or IXFR are first saved to
+ the master files of the updated zones.
+ If <option>-p</option> is specified <command>named</command>'s process id is returned.
+ This allows an external process to determine when <command>named</command>
+ had completed stopping.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>halt <optional>-p</optional></userinput></term>
+ <listitem>
+ <para>
+ Stop the server immediately. Recent changes
+ made through dynamic update or IXFR are not saved to
+ the master files, but will be rolled forward from the
+ journal files when the server is restarted.
+ If <option>-p</option> is specified <command>named</command>'s process id is returned.
+ This allows an external process to determine when <command>named</command>
+ had completed halting.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>trace</userinput></term>
+ <listitem>
+ <para>
+ Increment the servers debugging level by one.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>trace <replaceable>level</replaceable></userinput></term>
+ <listitem>
+ <para>
+ Sets the server's debugging level to an explicit
+ value.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>notrace</userinput></term>
+ <listitem>
+ <para>
+ Sets the server's debugging level to 0.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>flush</userinput></term>
+ <listitem>
+ <para>
+ Flushes the server's cache.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>flushname</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term>
+ <listitem>
+ <para>
+ Flushes the given name from the server's DNS cache
+ and, if applicable, from the server's nameserver address
+ database or bad-server cache.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>flushtree</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term>
+ <listitem>
+ <para>
+ Flushes the given name, and all of its subdomains,
+ from the server's DNS cache. Note that this does
+ <emphasis>not</emphasis> affect he server's address
+ database or bad-server cache.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>status</userinput></term>
+ <listitem>
+ <para>
+ Display status of the server.
+ Note that the number of zones includes the internal <command>bind/CH</command> zone
+ and the default <command>./IN</command>
+ hint zone if there is not an
+ explicit root zone configured.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>recursing</userinput></term>
+ <listitem>
+ <para>
+ Dump the list of queries <command>named</command> is currently recursing
+ on.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>validation ( on | off | check ) <optional><replaceable>view ...</replaceable></optional> </userinput></term>
+ <listitem>
+ <para>
+ Enable, disable, or check the current status of
+ DNSSEC validation.
+ Note <command>dnssec-enable</command> also needs to be
+ set to <userinput>yes</userinput> or
+ <userinput>auto</userinput> to be effective.
+ It defaults to enabled.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>tsig-list</userinput></term>
+ <listitem>
+ <para>
+ List the names of all TSIG keys currently configured
+ for use by <command>named</command> in each view. The
+ list both statically configured keys and dynamic
+ TKEY-negotiated keys.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>tsig-delete</userinput> <replaceable>keyname</replaceable> <optional><replaceable>view</replaceable></optional></term>
+ <listitem>
+ <para>
+ Delete a given TKEY-negotiated key from the server.
+ (This does not apply to statically configured TSIG
+ keys.)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>addzone <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> <replaceable>configuration</replaceable> </userinput></term>
+ <listitem>
+ <para>
+ Add a zone while the server is running. This
+ command requires the
+ <command>allow-new-zones</command> option to be set
+ to <userinput>yes</userinput>. The
+ <replaceable>configuration</replaceable> string
+ specified on the command line is the zone
+ configuration text that would ordinarily be
+ placed in <filename>named.conf</filename>.
+ </para>
+ <para>
+ The configuration is saved in a file called
+ <filename><replaceable>hash</replaceable>.nzf</filename>,
+ where <replaceable>hash</replaceable> is a
+ cryptographic hash generated from the name of
+ the view. When <command>named</command> is
+ restarted, the file will be loaded into the view
+ configuration, so that zones that were added
+ can persist after a restart.
+ </para>
+ <para>
+ This sample <command>addzone</command> command
+ would add the zone <literal>example.com</literal>
+ to the default view:
+ </para>
+ <para>
+<prompt>$ </prompt><userinput>rndc addzone example.com '{ type master; file "example.com.db"; };'</userinput>
+ </para>
+ <para>
+ (Note the brackets and semi-colon around the zone
+ configuration text.)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>delzone <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> </userinput></term>
+ <listitem>
+ <para>
+ Delete a zone while the server is running.
+ Only zones that were originally added via
+ <command>rndc addzone</command> can be deleted
+ in this manner.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><userinput>signing <optional>( -list | -clear <replaceable>keyid/algorithm</replaceable> | -clear <literal>all</literal> | -nsec3param ( <replaceable>parameters</replaceable> | <literal>none</literal> ) ) </optional> <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> </userinput></term>
+ <listitem>
+ <para>
+ List, edit, or remove the DNSSEC signing state for
+ the specified zone. The status of ongoing DNSSEC
+ operations (such as signing or generating
+ NSEC3 chains) is stored in the zone in the form
+ of DNS resource records of type
+ <command>sig-signing-type</command>.
+ <command>rndc signing -list</command> converts
+ these records into a human-readable form,
+ indicating which keys are currently signing
+ or have finished signing the zone, and which NSEC3
+ chains are being created or removed.
+ </para>
+ <para>
+ <command>rndc signing -clear</command> can remove
+ a single key (specified in the same format that
+ <command>rndc signing -list</command> uses to
+ display it), or all keys. In either case, only
+ completed keys are removed; any record indicating
+ that a key has not yet finished signing the zone
+ will be retained.
+ </para>
+ <para>
+ <command>rndc signing -nsec3param</command> sets
+ the NSEC3 parameters for a zone. This is the
+ only supported mechanism for using NSEC3 with
+ <command>inline-signing</command> zones.
+ Parameters are specified in the same format as
+ an NSEC3PARAM resource record: hash algorithm,
+ flags, iterations, and salt, in that order.
+ </para>
+ <para>
+ Currently, the only defined value for hash algorithm
+ is <literal>1</literal>, representing SHA-1.
+ The <option>flags</option> may be set to
+ <literal>0</literal> or <literal>1</literal>,
+ depending on whether you wish to set the opt-out
+ bit in the NSEC3 chain. <option>iterations</option>
+ defines the number of additional times to apply
+ the algorithm when generating an NSEC3 hash. The
+ <option>salt</option> is a string of data expressed
+ in hexadecimal, or a hyphen (`-') if no salt is
+ to be used.
+ </para>
+ <para>
+ So, for example, to create an NSEC3 chain using
+ the SHA-1 hash algorithm, no opt-out flag,
+ 10 iterations, and a salt value of "FFFF", use:
+ <command>rndc signing -nsec3param 1 0 10 FFFF <replaceable>zone</replaceable></command>.
+ To set the opt-out flag, 15 iterations, and no
+ salt, use:
+ <command>rndc signing -nsec3param 1 1 15 - <replaceable>zone</replaceable></command>.
+ </para>
+ <para>
+ <command>rndc signing -nsec3param none</command>
+ removes an existing NSEC3 chain and replaces it
+ with NSEC.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</refsect1>
<refsect1>
<title>LIMITATIONS</title>
- <para><command>rndc</command>
- does not yet support all the commands of
- the BIND 8 <command>ndc</command> utility.
- </para>
<para>
There is currently no way to provide the shared secret for a
<option>key_id</option> without using the configuration file.
diff --git a/bin/rndc/rndc.html b/bin/rndc/rndc.html
index 4195c4e07e9f..34972772fe5a 100644
--- a/bin/rndc/rndc.html
+++ b/bin/rndc/rndc.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000, 2001 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -32,7 +32,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc</code> [<code class="option">-b <em class="replaceable"><code>source-address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key-file</code></em></code>] [<code class="option">-s <em class="replaceable"><code>server</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y <em class="replaceable"><code>key_id</code></em></code>] {command}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543415"></a><h2>DESCRIPTION</h2>
+<a name="id2543418"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">rndc</strong></span>
controls the operation of a name
server. It supersedes the <span><strong class="command">ndc</strong></span> utility
@@ -61,7 +61,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543450"></a><h2>OPTIONS</h2>
+<a name="id2543453"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-b <em class="replaceable"><code>source-address</code></em></span></dt>
<dd><p>
@@ -125,19 +125,362 @@
or write access.
</p></dd>
</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2543650"></a><h2>COMMANDS</h2>
<p>
- For the complete set of commands supported by <span><strong class="command">rndc</strong></span>,
- see the BIND 9 Administrator Reference Manual or run
- <span><strong class="command">rndc</strong></span> without arguments to see its help
- message.
+ A list of commands supported by <span><strong class="command">rndc</strong></span> can
+ be seen by running <span><strong class="command">rndc</strong></span> without arguments.
</p>
+<p>
+ Currently supported commands are:
+ </p>
+<div class="variablelist"><dl>
+<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt>
+<dd><p>
+ Reload configuration file and zones.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Reload the given zone.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Schedule zone maintenance for the given zone.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd>
+<p>
+ Retransfer the given slave zone from the master server.
+ </p>
+<p>
+ If the zone is configured to use
+ <span><strong class="command">inline-signing</strong></span>, the signed
+ version of the zone is discarded; after the
+ retransfer of the unsigned version is complete, the
+ signed version will be regenerated with all new
+ signatures.
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd>
+<p>
+ Fetch all DNSSEC keys for the given zone
+ from the key directory (see the
+ <span><strong class="command">key-directory</strong></span> option in
+ the BIND 9 Administrator Reference Manual). If they are within
+ their publication period, merge them into the
+ zone's DNSKEY RRset. If the DNSKEY RRset
+ is changed, then the zone is automatically
+ re-signed with the new key set.
+ </p>
+<p>
+ This command requires that the
+ <span><strong class="command">auto-dnssec</strong></span> zone option be set
+ to <code class="literal">allow</code> or
+ <code class="literal">maintain</code>,
+ and also requires the zone to be configured to
+ allow dynamic DNS.
+ (See "Dynamic Update Policies" in the Administrator
+ Reference Manual for more details.)
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>loadkeys <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd>
+<p>
+ Fetch all DNSSEC keys for the given zone
+ from the key directory. If they are within
+ their publication period, merge them into the
+ zone's DNSKEY RRset. Unlike <span><strong class="command">rndc
+ sign</strong></span>, however, the zone is not
+ immediately re-signed by the new keys, but is
+ allowed to incrementally re-sign over time.
+ </p>
+<p>
+ This command requires that the
+ <span><strong class="command">auto-dnssec</strong></span> zone option
+ be set to <code class="literal">maintain</code>,
+ and also requires the zone to be configured to
+ allow dynamic DNS.
+ (See "Dynamic Update Policies" in the Administrator
+ Reference Manual for more details.)
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Suspend updates to a dynamic zone. If no zone is
+ specified, then all zones are suspended. This allows
+ manual edits to be made to a zone normally updated by
+ dynamic update. It also causes changes in the
+ journal file to be synced into the master file.
+ All dynamic update attempts will be refused while
+ the zone is frozen.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Enable updates to a frozen dynamic zone. If no
+ zone is specified, then all frozen zones are
+ enabled. This causes the server to reload the zone
+ from disk, and re-enables dynamic updates after the
+ load has completed. After a zone is thawed,
+ dynamic updates will no longer be refused. If
+ the zone has changed and the
+ <span><strong class="command">ixfr-from-differences</strong></span> option is
+ in use, then the journal file will be updated to
+ reflect changes in the zone. Otherwise, if the
+ zone has changed, any existing journal file will be
+ removed.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>sync [<span class="optional">-clean</span>] [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Sync changes in the journal file for a dynamic zone
+ to the master file. If the "-clean" option is
+ specified, the journal file is also removed. If
+ no zone is specified, then all zones are synced.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>notify <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Resend NOTIFY messages for the zone.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt>
+<dd><p>
+ Reload the configuration file and load new zones,
+ but do not reload existing zone files even if they
+ have changed.
+ This is faster than a full <span><strong class="command">reload</strong></span> when there
+ is a large number of zones because it avoids the need
+ to examine the
+ modification times of the zones files.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt>
+<dd><p>
+ Write server statistics to the statistics file.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>querylog</code></strong> [<span class="optional">on|off</span>] </span></dt>
+<dd>
+<p>
+ Enable or disable query logging. (For backward
+ compatibility, this command can also be used without
+ an argument to toggle query logging on and off.)
+ </p>
+<p>
+ Query logging can also be enabled
+ by explicitly directing the <span><strong class="command">queries</strong></span>
+ <span><strong class="command">category</strong></span> to a
+ <span><strong class="command">channel</strong></span> in the
+ <span><strong class="command">logging</strong></span> section of
+ <code class="filename">named.conf</code> or by specifying
+ <span><strong class="command">querylog yes;</strong></span> in the
+ <span><strong class="command">options</strong></span> section of
+ <code class="filename">named.conf</code>.
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
+<dd><p>
+ Dump the server's caches (default) and/or zones to
+ the
+ dump file for the specified views. If no view is
+ specified, all
+ views are dumped.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>secroots [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
+<dd><p>
+ Dump the server's security roots to the secroots
+ file for the specified views. If no view is
+ specified, security roots for all
+ views are dumped.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt>
+<dd><p>
+ Stop the server, making sure any recent changes
+ made through dynamic update or IXFR are first saved to
+ the master files of the updated zones.
+ If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
+ This allows an external process to determine when <span><strong class="command">named</strong></span>
+ had completed stopping.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt>
+<dd><p>
+ Stop the server immediately. Recent changes
+ made through dynamic update or IXFR are not saved to
+ the master files, but will be rolled forward from the
+ journal files when the server is restarted.
+ If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
+ This allows an external process to determine when <span><strong class="command">named</strong></span>
+ had completed halting.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt>
+<dd><p>
+ Increment the servers debugging level by one.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt>
+<dd><p>
+ Sets the server's debugging level to an explicit
+ value.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt>
+<dd><p>
+ Sets the server's debugging level to 0.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt>
+<dd><p>
+ Flushes the server's cache.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt>
+<dd><p>
+ Flushes the given name from the server's DNS cache
+ and, if applicable, from the server's nameserver address
+ database or bad-server cache.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt>
+<dd><p>
+ Flushes the given name, and all of its subdomains,
+ from the server's DNS cache. Note that this does
+ <span class="emphasis"><em>not</em></span> affect he server's address
+ database or bad-server cache.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>status</code></strong></span></dt>
+<dd><p>
+ Display status of the server.
+ Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone
+ and the default <span><strong class="command">./IN</strong></span>
+ hint zone if there is not an
+ explicit root zone configured.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt>
+<dd><p>
+ Dump the list of queries <span><strong class="command">named</strong></span> is currently recursing
+ on.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt>
+<dd><p>
+ Enable, disable, or check the current status of
+ DNSSEC validation.
+ Note <span><strong class="command">dnssec-enable</strong></span> also needs to be
+ set to <strong class="userinput"><code>yes</code></strong> or
+ <strong class="userinput"><code>auto</code></strong> to be effective.
+ It defaults to enabled.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt>
+<dd><p>
+ List the names of all TSIG keys currently configured
+ for use by <span><strong class="command">named</strong></span> in each view. The
+ list both statically configured keys and dynamic
+ TKEY-negotiated keys.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt>
+<dd><p>
+ Delete a given TKEY-negotiated key from the server.
+ (This does not apply to statically configured TSIG
+ keys.)
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>addzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] <em class="replaceable"><code>configuration</code></em> </code></strong></span></dt>
+<dd>
+<p>
+ Add a zone while the server is running. This
+ command requires the
+ <span><strong class="command">allow-new-zones</strong></span> option to be set
+ to <strong class="userinput"><code>yes</code></strong>. The
+ <em class="replaceable"><code>configuration</code></em> string
+ specified on the command line is the zone
+ configuration text that would ordinarily be
+ placed in <code class="filename">named.conf</code>.
+ </p>
+<p>
+ The configuration is saved in a file called
+ <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>,
+ where <em class="replaceable"><code>hash</code></em> is a
+ cryptographic hash generated from the name of
+ the view. When <span><strong class="command">named</strong></span> is
+ restarted, the file will be loaded into the view
+ configuration, so that zones that were added
+ can persist after a restart.
+ </p>
+<p>
+ This sample <span><strong class="command">addzone</strong></span> command
+ would add the zone <code class="literal">example.com</code>
+ to the default view:
+ </p>
+<p>
+<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong>
+ </p>
+<p>
+ (Note the brackets and semi-colon around the zone
+ configuration text.)
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>delzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt>
+<dd><p>
+ Delete a zone while the server is running.
+ Only zones that were originally added via
+ <span><strong class="command">rndc addzone</strong></span> can be deleted
+ in this manner.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>signing [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>] <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt>
+<dd>
+<p>
+ List, edit, or remove the DNSSEC signing state for
+ the specified zone. The status of ongoing DNSSEC
+ operations (such as signing or generating
+ NSEC3 chains) is stored in the zone in the form
+ of DNS resource records of type
+ <span><strong class="command">sig-signing-type</strong></span>.
+ <span><strong class="command">rndc signing -list</strong></span> converts
+ these records into a human-readable form,
+ indicating which keys are currently signing
+ or have finished signing the zone, and which NSEC3
+ chains are being created or removed.
+ </p>
+<p>
+ <span><strong class="command">rndc signing -clear</strong></span> can remove
+ a single key (specified in the same format that
+ <span><strong class="command">rndc signing -list</strong></span> uses to
+ display it), or all keys. In either case, only
+ completed keys are removed; any record indicating
+ that a key has not yet finished signing the zone
+ will be retained.
+ </p>
+<p>
+ <span><strong class="command">rndc signing -nsec3param</strong></span> sets
+ the NSEC3 parameters for a zone. This is the
+ only supported mechanism for using NSEC3 with
+ <span><strong class="command">inline-signing</strong></span> zones.
+ Parameters are specified in the same format as
+ an NSEC3PARAM resource record: hash algorithm,
+ flags, iterations, and salt, in that order.
+ </p>
+<p>
+ Currently, the only defined value for hash algorithm
+ is <code class="literal">1</code>, representing SHA-1.
+ The <code class="option">flags</code> may be set to
+ <code class="literal">0</code> or <code class="literal">1</code>,
+ depending on whether you wish to set the opt-out
+ bit in the NSEC3 chain. <code class="option">iterations</code>
+ defines the number of additional times to apply
+ the algorithm when generating an NSEC3 hash. The
+ <code class="option">salt</code> is a string of data expressed
+ in hexadecimal, or a hyphen (`-') if no salt is
+ to be used.
+ </p>
+<p>
+ So, for example, to create an NSEC3 chain using
+ the SHA-1 hash algorithm, no opt-out flag,
+ 10 iterations, and a salt value of "FFFF", use:
+ <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF <em class="replaceable"><code>zone</code></em></strong></span>.
+ To set the opt-out flag, 15 iterations, and no
+ salt, use:
+ <span><strong class="command">rndc signing -nsec3param 1 1 15 - <em class="replaceable"><code>zone</code></em></strong></span>.
+ </p>
+<p>
+ <span><strong class="command">rndc signing -nsec3param none</strong></span>
+ removes an existing NSEC3 chain and replaces it
+ with NSEC.
+ </p>
+</dd>
+</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543658"></a><h2>LIMITATIONS</h2>
-<p><span><strong class="command">rndc</strong></span>
- does not yet support all the commands of
- the BIND 8 <span><strong class="command">ndc</strong></span> utility.
- </p>
+<a name="id2544843"></a><h2>LIMITATIONS</h2>
<p>
There is currently no way to provide the shared secret for a
<code class="option">key_id</code> without using the configuration file.
@@ -147,7 +490,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543685"></a><h2>SEE ALSO</h2>
+<a name="id2542131"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -157,7 +500,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543740"></a><h2>AUTHOR</h2>
+<a name="id2545190"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/config.guess b/config.guess
index f8d6eac4e842..9afd67620648 100644
--- a/config.guess
+++ b/config.guess
@@ -1,13 +1,12 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2009-01-17'
+timestamp='2013-11-29'
# This file 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
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -16,24 +15,22 @@ timestamp='2009-01-17'
# 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.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# 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.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner.
#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -53,8 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -66,11 +62,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -104,7 +100,7 @@ set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -123,7 +119,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ ;;
+esac
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -158,6 +175,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
@@ -166,7 +184,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -176,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
@@ -196,62 +214,34 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
- exit 0 ;;
- amd64:OpenBSD:*:*)
- echo x86_64-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- cats:OpenBSD:*:*)
- echo arm-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- luna88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mips64-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
macppc:MirBSD:*:*)
- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
- exit 0 ;;
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -297,37 +287,46 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit 0 ;;
+ exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
- exit 0 ;;
+ exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
- exit 0;;
+ exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
+ exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
+ exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
- exit 0 ;;
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit 0 ;;
+ echo powerpc-ibm-os400
+ exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
+ exit ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
+ exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -335,32 +334,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
else
echo pyramid-pyramid-bsd
fi
- exit 0 ;;
+ exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
- exit 0 ;;
+ exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
- exit 0 ;;
- DRS?6000:UNIX_SV:4.2*:7*)
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7 && exit 0 ;;
+ sparc) echo sparc-icl-nx7; exit ;;
esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
@@ -369,10 +387,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
+ exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -384,10 +402,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
- exit 0 ;;
+ exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -397,41 +415,41 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
- exit 0 ;;
+ exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -455,35 +473,36 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c \
- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
- exit 0 ;;
+ exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
- exit 0 ;;
+ exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
- exit 0 ;;
+ exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
- exit 0 ;;
+ exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -496,29 +515,29 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
- exit 0 ;;
+ exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
- exit 0 ;;
+ exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
- exit 0 ;;
+ exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
+ exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
- exit 0 ;;
+ exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
@@ -526,7 +545,7 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
@@ -541,15 +560,19 @@ EOF
exit(0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
- echo rs6000-ibm-aix3.2.5
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
- exit 0 ;;
- *:AIX:*:[45])
+ exit ;;
+ *:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
@@ -562,28 +585,28 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
- exit 0 ;;
+ exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
- exit 0 ;;
+ exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
+ exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
- exit 0 ;;
+ exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
- exit 0 ;;
+ exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
- exit 0 ;;
+ exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
- exit 0 ;;
+ exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
@@ -592,52 +615,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
+ esac ;;
+ esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -645,9 +668,19 @@ EOF
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
- # avoid double evaluation of $set_cc_for_build
- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -655,11 +688,11 @@ EOF
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -687,332 +720,345 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
- exit 0 ;;
+ exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
- exit 0 ;;
+ exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
- exit 0 ;;
+ exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
- exit 0 ;;
+ exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
- exit 0 ;;
+ exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
- exit 0 ;;
+ exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
- exit 0 ;;
+ exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
- exit 0 ;;
+ exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
+ exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
+ *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
+ exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
- x86:Interix*:[34]*)
- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit 0 ;;
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
- exit 0 ;;
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
- exit 0 ;;
+ exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
- exit 0 ;;
+ exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
+ exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
- ;;
- mips64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips64
- #undef mips64el
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit 0 ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit 0 ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit 0 ;;
+ or1k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ or32:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-${LIBC}
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
- exit 0 ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit 0 ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0 ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit 0 ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #ifdef __INTEL_COMPILER
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
- ;;
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
- exit 0 ;;
+ exit ;;
i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
+ exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
+ exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
- i*86:syllable:*:*)
+ exit ;;
+ i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
- exit 0 ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -1020,15 +1066,16 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
- exit 0 ;;
- i*86:*:5:[78]*)
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1046,73 +1093,86 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
- exit 0 ;;
+ exit ;;
pc:*:*:*)
# Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
- exit 0 ;;
+ exit ;;
paragon:*:*:*)
echo i860-intel-osf1
- exit 0 ;;
+ exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
- exit 0 ;;
+ exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
- exit 0 ;;
+ exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
- exit 0 ;;
+ exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
- exit 0 ;;
+ exit ;;
M68*:*:R3V[5678]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
- exit 0 ;;
+ exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1120,69 +1180,109 @@ EOF
else
echo ns32k-sni-sysv
fi
- exit 0 ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit 0 ;;
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
- exit 0 ;;
+ exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
- exit 0 ;;
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
- exit 0 ;;
+ exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
- exit 0 ;;
+ exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
- exit 0 ;;
+ exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
- exit 0 ;;
+ exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
- exit 0 ;;
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- *86) UNAME_PROCESSOR=i686 ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
+ fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1190,22 +1290,28 @@ EOF
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
- exit 0 ;;
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
- exit 0 ;;
+ exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
- exit 0 ;;
+ exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
@@ -1216,43 +1322,55 @@ EOF
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
+ exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
- exit 0 ;;
+ exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
- exit 0 ;;
+ exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
- exit 0 ;;
+ exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
- exit 0 ;;
+ exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
- exit 0 ;;
+ exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
- exit 0 ;;
+ exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit 0 ;;
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
+ exit ;;
*:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms && exit 0 ;;
- I*) echo ia64-dec-vms && exit 0 ;;
- V*) echo vax-dec-vms && exit 0 ;;
- esac
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
@@ -1270,16 +1388,16 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
+ printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
@@ -1368,11 +1486,12 @@ main ()
}
EOF
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
@@ -1381,22 +1500,22 @@ then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
c34*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
c38*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
c4*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
esac
fi
@@ -1407,7 +1526,9 @@ This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- ftp://ftp.gnu.org/pub/gnu/config/
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff --git a/config.h.in b/config.h.in
index a6ddcb1ed55d..d0fc095f69e6 100644
--- a/config.h.in
+++ b/config.h.in
@@ -256,6 +256,9 @@ int sigwait(const unsigned int *set, int *sig);
/* Define to 1 if you have the `pthread' library (-lpthread). */
#undef HAVE_LIBPTHREAD
+/* Define to 1 if you have the `rt' library (-lrt). */
+#undef HAVE_LIBRT
+
/* Define to 1 if you have the `scf' library (-lscf). */
#undef HAVE_LIBSCF
@@ -271,6 +274,9 @@ int sigwait(const unsigned int *set, int *sig);
/* Define to 1 if you have the <linux/capability.h> header file. */
#undef HAVE_LINUX_CAPABILITY_H
+/* Define to 1 if you have the <linux/types.h> header file. */
+#undef HAVE_LINUX_TYPES_H
+
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
@@ -289,12 +295,24 @@ int sigwait(const unsigned int *set, int *sig);
/* Define if your OpenSSL version supports GOST. */
#undef HAVE_OPENSSL_GOST
+/* Define to 1 if you have the `pthread_yield' function. */
+#undef HAVE_PTHREAD_YIELD
+
+/* Define to 1 if you have the `pthread_yield_np' function. */
+#undef HAVE_PTHREAD_YIELD_NP
+
/* Define to 1 if you have the `readline' function. */
#undef HAVE_READLINE
/* Define to 1 if you have the <regex.h> header file. */
#undef HAVE_REGEX_H
+/* Define to 1 if you have the <sched.h> header file. */
+#undef HAVE_SCHED_H
+
+/* Define to 1 if you have the `sched_yield' function. */
+#undef HAVE_SCHED_YIELD
+
/* Define to 1 if you have the `setegid' function. */
#undef HAVE_SETEGID
@@ -428,6 +446,9 @@ int sigwait(const unsigned int *set, int *sig);
non-blocking. */
#undef USE_FIONBIO_IOCTL
+/* Enable DNS Response Rate Limiting */
+#undef USE_RRL
+
/* define if idnkit support is to be included. */
#undef WITH_IDN
diff --git a/config.sub b/config.sub
index edb6b663ca2b..61cb4bc22db8 100644
--- a/config.sub
+++ b/config.sub
@@ -1,42 +1,40 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2004-08-29'
+timestamp='2013-10-01'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file 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
+# This file 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 3 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.
+# 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.
-
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
# 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.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
@@ -70,8 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -83,11 +80,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -99,7 +96,7 @@ while test $# -gt 0 ; do
*local*)
# First pass through any local machine types.
echo $1
- exit 0;;
+ exit ;;
* )
break ;;
@@ -118,11 +115,18 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
@@ -145,10 +149,13 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -163,13 +170,17 @@ case $os in
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -186,6 +197,10 @@ case $os in
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -203,6 +218,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -227,57 +248,107 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
+ | aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | c4x | clipper \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
- | fr30 | frv \
+ | epiphany \
+ | fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
- | m32r | m32rle | m68000 | m68k | m88k | mcore \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
- | mips64vr | mips64vrel \
+ | mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | moxie \
+ | mt \
| msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | openrisc | or32 \
+ | open8 \
+ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | rl78 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
- | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
- | x86 | xscale | xstormy16 | xtensa \
- | z8k)
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
basic_machine=$basic_machine-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
@@ -293,60 +364,83 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
+ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* \
- | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
- | m32r-* | m32rle-* \
+ | k1om-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
+ | mips64octeon-* | mips64octeonel-* \
| mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
+ | mt-* \
| msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
| tron-* \
- | v850-* | v850e-* | vax-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
- | xtensa-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
| ymp-* \
- | z8k-*)
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@@ -364,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@@ -410,6 +504,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-bsd
;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -418,10 +516,35 @@ case $basic_machine in
basic_machine=ns32k-sequent
os=-dynix
;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@@ -450,8 +573,8 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16c)
- basic_machine=cr16c-unknown
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
@@ -489,6 +612,14 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
@@ -600,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
@@ -639,6 +769,14 @@ case $basic_machine in
basic_machine=m68k-isi
os=-sysv
;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
m88k-omron*)
basic_machine=m88k-omron
;;
@@ -650,10 +788,21 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
+ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
miniframe)
basic_machine=m68000-convergent
;;
@@ -679,10 +828,21 @@ case $basic_machine in
basic_machine=i386-pc
os=-msdos
;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -747,6 +907,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -754,9 +920,8 @@ case $basic_machine in
basic_machine=hppa1.1-oki
os=-proelf
;;
- or32 | or32-*)
+ openrisc | openrisc-*)
basic_machine=or32-unknown
- os=-coff
;;
os400)
basic_machine=powerpc-ibm
@@ -778,6 +943,14 @@ case $basic_machine in
basic_machine=i860-intel
os=-osf
;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
pbd)
basic_machine=sparc-tti
;;
@@ -787,6 +960,12 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
@@ -816,9 +995,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
- ppc) basic_machine=powerpc-unknown
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@@ -843,6 +1023,14 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
@@ -869,6 +1057,10 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
sei)
basic_machine=mips-sei
os=-seiux
@@ -880,6 +1072,9 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
sh64)
basic_machine=sh64-unknown
;;
@@ -901,6 +1096,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -957,17 +1155,9 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tic55x | c55x*)
- basic_machine=tic55x-unknown
- os=-coff
- ;;
- tic6x | c6x*)
- basic_machine=tic6x-unknown
- os=-coff
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
;;
tx39)
basic_machine=mipstx39-unknown
@@ -1029,9 +1219,16 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
xps | xps100)
basic_machine=xps100-honeywell
;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
ymp)
basic_machine=ymp-cray
os=-unicos
@@ -1040,6 +1237,10 @@ case $basic_machine in
basic_machine=z8k-unknown
os=-sim
;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
none)
basic_machine=none-none
os=-none
@@ -1078,13 +1279,10 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
cydra)
@@ -1128,9 +1326,12 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
@@ -1151,26 +1352,31 @@ case $os in
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
+ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1188,7 +1394,7 @@ case $os in
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
@@ -1209,7 +1415,7 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
@@ -1258,7 +1464,7 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
@@ -1294,8 +1500,13 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
;;
-none)
;;
@@ -1319,6 +1530,12 @@ else
# system, and we'll never get to this point.
case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
*-acorn)
os=-riscix1.2
;;
@@ -1328,9 +1545,24 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ c8051-*)
+ os=-elf
+ ;;
+ hexagon-*)
+ os=-elf
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
+ ;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
@@ -1349,19 +1581,22 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
;;
m68*-cisco)
os=-aout
;;
+ mep-*)
+ os=-elf
+ ;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
@@ -1374,10 +1609,13 @@ case $basic_machine in
*-be)
os=-beos
;;
+ *-haiku)
+ os=-haiku
+ ;;
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
@@ -1482,7 +1720,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
@@ -1545,7 +1783,7 @@ case $basic_machine in
esac
echo $basic_machine$os
-exit 0
+exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/configure.in b/configure.in
index 8e543d85fdda..3d04f4c8552c 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2014 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 @@
dnl
AC_DIVERT_PUSH(1)dnl
-esyscmd([sed "s/^/# /" COPYRIGHT])dnl
+esyscmd([sed -e 's/^/# /' -e '/Portions of this code/,$d' COPYRIGHT])dnl
AC_DIVERT_POP()dnl
AC_REVISION($Revision: 1.533 $)
@@ -50,6 +50,7 @@ AC_SUBST(STD_CINCLUDES)
AC_SUBST(STD_CDEFINES)
AC_SUBST(STD_CWARNINGS)
AC_SUBST(CCOPT)
+AC_SUBST(CCNOOPT)
# Warn if the user specified libbind, which is now deprecated
AC_ARG_ENABLE(libbind, [ --enable-libbind deprecated])
@@ -70,6 +71,7 @@ yes)
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${with_atf+set}" = set || with_atf=yes
test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
+ test "${enable_rrl+set}" = set || enable_rrl=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
case "$host" in
*-darwin*)
@@ -79,6 +81,7 @@ yes)
test "${enable_exportlib+set}" = set || enable_exportlib=yes
;;
esac
+ test "${enable_symtable+set}" = set || enable_symtable=all
;;
esac
#
@@ -363,6 +366,13 @@ case "$host" in
;;
esac
+#
+# CCNOOPT defaults to -O0 on gcc and disables optimization when is last
+#
+if test "X$CCNOOPT" = "X" -a "X$GCC" = "Xyes"; then
+ CCNOOPT="-O0"
+fi
+
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h regex.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/param.h sys/sysctl.h net/if6.h,,,
@@ -469,7 +479,7 @@ AC_SUBST(ISC_PLATFORM_HAVELIFCONF)
# check if we want the new statistics
#
AC_ARG_ENABLE(newstats,
- [ --enable-newstats use the new statistics])
+ [ --enable-newstats use the new statistics])
case "$enable_newstats" in
yes)
AC_DEFINE(NEWSTATS, 1, [Use the new XML schema for statistics])
@@ -479,6 +489,25 @@ yes)
esac
#
+# check if we want DNS RRL
+#
+AC_ARG_ENABLE(rrl,
+ [ --enable-rrl use DNS Response Rate Limiting])
+case "$enable_rrl" in
+yes)
+ AC_DEFINE(USE_RRL, 1, [Enable DNS Response Rate Limiting])
+ RRLLINKOBJS='${RRLOBJS}'
+ RRLLINKSRCS='${RRLSRCS}'
+ ;;
+*)
+ RRLLINKOBJS=""
+ RRLLINKSRCS=""
+ ;;
+esac
+AC_SUBST(RRLLINKOBJS)
+AC_SUBST(RRLLINKSRCS)
+
+#
# check if we have kqueue
#
AC_ARG_ENABLE(kqueue,
@@ -1084,6 +1113,7 @@ case "$use_gssapi" in
"-lgssapi" \
"-lgssapi -lkrb5 -ldes -lcrypt -lasn1 -lroken -lcom_err" \
"-lgssapi -lkrb5 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
+ "-lgssapi -lkrb5 -lhx509 -lcrypto -lcrypt -lasn1 -lroken -lcom_err" \
"-lgss -lkrb5"
do
# Note that this does not include $saved_libs, because
@@ -1229,11 +1259,13 @@ then
*-freebsd*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
+ CCNOOPT="$CCNOOPT -pthread"
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
;;
*-openbsd*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
+ CCNOOPT="$CCNOOPT -pthread"
;;
*-solaris*)
LIBS="$LIBS -lthread"
@@ -1247,10 +1279,12 @@ then
*-dec-osf*)
CC="$CC -pthread"
CCOPT="$CCOPT -pthread"
+ CCNOOPT="$CCNOOPT -pthread"
;;
*-solaris*)
CC="$CC -mt"
CCOPT="$CCOPT -mt"
+ CCNOOPT="$CCNOOPT -mt"
;;
*-ibm-aix*)
STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
@@ -1258,10 +1292,12 @@ then
*-sco-sysv*uw*|*-*-sysv*UnixWare*)
CC="$CC -Kthread"
CCOPT="$CCOPT -Kthread"
+ CCNOOPT="$CCNOOPT -Kthread"
;;
*-*-sysv*OpenUNIX*)
CC="$CC -Kpthread"
CCOPT="$CCOPT -Kpthread"
+ CCNOOPT="$CCNOOPT -Kpthread"
;;
esac
fi
@@ -1288,6 +1324,16 @@ then
AC_CHECK_FUNC(pthread_attr_setstacksize,
AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),)
+ AC_CHECK_HEADERS(sched.h)
+
+ case "$host" in
+ *solaris-*)
+ AC_CHECK_LIB(rt, sched_yield)
+ ;;
+ esac
+
+ AC_CHECK_FUNCS(sched_yield pthread_yield pthread_yield_np)
+
#
# Additional OS-specific issues related to pthreads and sigwait.
#
@@ -1471,6 +1517,7 @@ else
*-dec-osf*)
CC="$CC -std"
CCOPT="$CCOPT -std"
+ CCNOOPT="$CCNOOPT -std"
MKDEPCC="$CC"
;;
*-hp-hpux*)
@@ -1489,6 +1536,7 @@ else
;;
esac
CCOPT="$CCOPT -Ae -z"
+ CCNOOPT="$CCNOOPT -Ae -z"
LDFLAGS="-Wl,+vnocompatwarnings $LDFLAGS"
MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
;;
@@ -2371,6 +2419,10 @@ AC_CHECK_FUNC(strlcat,
[ISC_PLATFORM_NEEDSTRLCAT="#define ISC_PLATFORM_NEEDSTRLCAT 1"])
AC_SUBST(ISC_PLATFORM_NEEDSTRLCAT)
+AC_CHECK_FUNC(strcasestr,
+ [ISC_PLATFORM_NEEDSTRCASESTR="#undef ISC_PLATFORM_NEEDSTRCASESTR"],
+ [ISC_PLATFORM_NEEDSTRCASESTR="#define ISC_PLATFORM_NEEDSTRCASESTR 1"])
+AC_SUBST(ISC_PLATFORM_NEEDSTRCASESTR)
AC_SUBST(READLINE_LIB)
AC_ARG_WITH(readline,
@@ -2511,7 +2563,13 @@ AC_ARG_ENABLE(linux-caps,
[ --disable-linux-caps disable linux capabilities])
case "$enable_linux_caps" in
yes|'')
- AC_CHECK_HEADERS(linux/capability.h sys/capability.h)
+ AC_CHECK_HEADERS(linux/types.h)
+ AC_CHECK_HEADERS([sys/capability.h])
+ AC_CHECK_HEADERS([linux/capability.h], [], [],
+ [#ifdef HAVE_LINUX_TYPES_H
+ #include <linux/types.h>
+ #endif
+ ])
AC_CHECK_LIB(cap, cap_set_proc)
;;
no)
@@ -3283,7 +3341,7 @@ if test "$atf" = yes; then
/*) ;;
*) srcdir="../../$srcdir";;
esac
- ${SHELL} ${srcdir}${srcdir:+/unit/atf-src/}./configure MISSING=: --prefix $atfdir;
+ ${SHELL} "${srcdir}${srcdir:+/unit/atf-src/}./configure" --enable-tools --disable-shared MISSING=: --prefix $atfdir;
) ],
[atfdir=`pwd`/unit/atf])
AC_MSG_RESULT(building ATF from bind9/unit/atf-src)
@@ -3341,19 +3399,22 @@ BIND9_MAKE_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
AC_SUBST_FILE(BIND9_MAKE_RULES)
BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
-. $srcdir/version
+. "$srcdir/version"
BIND9_PRODUCT="PRODUCT=\"${PRODUCT}\""
AC_SUBST(BIND9_PRODUCT)
BIND9_DESCRIPTION="DESCRIPTION=\"${DESCRIPTION}\""
AC_SUBST(BIND9_DESCRIPTION)
-BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}"
+BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}${EXTENSIONS}"
AC_SUBST(BIND9_VERSION)
BIND9_SRCID="SRCID=unset"
-if test -f $srcdir/srcid; then
- . $srcdir/srcid
+if test -f "${srcdir}/srcid"; then
+ . "${srcdir}/srcid"
BIND9_SRCID="SRCID=$SRCID"
+elif test -d "${srcdir}/.git"; then
+ BIND9_SRCID="SRCID="`(cd "${srcdir}";git log -n 1 --format=%h)`
fi
+
AC_SUBST(BIND9_SRCID)
if test -z "$ac_configure_args"; then
@@ -3369,25 +3430,25 @@ BIND9_CONFIGARGS="CONFIGARGS=${BIND9_CONFIGARGS}"
AC_SUBST(BIND9_CONFIGARGS)
AC_SUBST_FILE(LIBISC_API)
-LIBISC_API=$srcdir/lib/isc/api
+LIBISC_API="$srcdir/lib/isc/api"
AC_SUBST_FILE(LIBISCCC_API)
-LIBISCCC_API=$srcdir/lib/isccc/api
+LIBISCCC_API="$srcdir/lib/isccc/api"
AC_SUBST_FILE(LIBISCCFG_API)
-LIBISCCFG_API=$srcdir/lib/isccfg/api
+LIBISCCFG_API="$srcdir/lib/isccfg/api"
AC_SUBST_FILE(LIBDNS_API)
-LIBDNS_API=$srcdir/lib/dns/api
+LIBDNS_API="$srcdir/lib/dns/api"
AC_SUBST_FILE(LIBBIND9_API)
-LIBBIND9_API=$srcdir/lib/bind9/api
+LIBBIND9_API="$srcdir/lib/bind9/api"
AC_SUBST_FILE(LIBLWRES_API)
-LIBLWRES_API=$srcdir/lib/lwres/api
+LIBLWRES_API="$srcdir/lib/lwres/api"
AC_SUBST_FILE(LIBIRS_API)
-LIBIRS_API=$srcdir/lib/irs/api
+LIBIRS_API="$srcdir/lib/irs/api"
#
# Configure any DLZ drivers.
@@ -3688,8 +3749,10 @@ AC_CONFIG_FILES([
bin/tests/system/ecdsa/prereq.sh
bin/tests/system/filter-aaaa/Makefile
bin/tests/system/gost/prereq.sh
+ bin/tests/system/inline/checkdsa.sh
bin/tests/system/lwresd/Makefile
bin/tests/system/rpz/Makefile
+ bin/tests/system/rrl/Makefile
bin/tests/system/rsabigexponent/Makefile
bin/tests/system/tkey/Makefile
bin/tests/system/tsiggss/Makefile
@@ -3804,6 +3867,90 @@ yes)
;;
esac
+AC_ARG_ENABLE(full-report,
+ [ --enable-full-report report values of all configure options])
+
+echo "========================================================================"
+echo "Configuration summary:"
+echo "------------------------------------------------------------------------"
+echo "Optional features enabled:"
+$use_threads && echo " Multiprocessing support (--enable-threads)"
+
+test "$enable_rrl" = "yes" && \
+ echo " Response Rate Limiting (--enable-rrl)"
+test "$use_gssapi" = "no" || echo " GSS-API (--with-gssapi)"
+test "$use_pkcs11" = "no" || echo " PKCS#11/Cryptoki support (--with-pkcs11)"
+test "$enable_newstats" = "yes" && \
+ echo " New statistics (--enable-newstats)"
+test "$enable_fixed" = "yes" && \
+ echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
+test "$enable_filter" = "yes" && \
+ echo " AAAA filtering (--enable-filter-aaaa)"
+test "$want_backtrace" = "yes" && \
+ echo " Print backtrace on crash (--enable-backtrace)"
+test "$want_symtable" = "minimal" && \
+ echo " Use symbol table for backtrace, named only (--enable-symtable)"
+test "$want_symtable" = "yes" -o "$want_symtable" = "all" && \
+ echo " Use symbol table for backtrace, all binaries (--enable-symtable=all)"
+test "$atf" = "no" || echo " Automated Testing Framework (--with-atf)"
+
+# these lines are only printed if run with --enable-full-report
+if test "$enable_full_report" = "yes"; then
+ test "$enable_ipv6" = "no" -o "$found_ipv6" = "no" || \
+ echo " IPv6 support (--enable-ipv6)"
+ test "X$USE_OPENSSL" = "X" || \
+ echo " OpenSSL cryptography/DNSSEC (--with-openssl)"
+ test "$OPENSSL_GOST" != "yes" || \
+ echo " GOST algorithm support (--with-gost)"
+ test "$OPENSSL_ECDSA" != "yes" || \
+ echo " ECDSA algorithm support (--with-ecdsa)"
+ test "X$PYTHON" = "X" || echo " Python tools (--with-python)"
+ test "X$libxml2_libs" = "X" || echo " XML statistics (--with-libxml2)"
+fi
+
+echo " Dynamically loadable zone (DLZ) drivers:"
+test "$use_dlz_bdb" = "no" || \
+ echo " Berkeley DB (--with-dlz-bdb)"
+test "$use_dlz_ldap" = "no" || \
+ echo " LDAP (--with-dlz-ldap)"
+test "$use_dlz_mysql" = "no" || \
+ echo " MySQL (--with-dlz-mysql)"
+test "$use_dlz_odbc" = "no" || \
+ echo " ODBC (--with-dlz-bdb)"
+test "$use_dlz_postgres" = "no" || \
+ echo " Postgres (--with-dlz-postgres)"
+test "$use_dlz_filesystem" = "no" || \
+ echo " Filesystem (--with-dlz-filesystem)"
+test "$use_dlz_stub" = "no" || \
+ echo " Stub (--with-dlz-stub)"
+test "$use_dlz_bdb $use_dlz_ldap $use_dlz_mysql $use_dlz_odbc $use_dlz_postgres $use_dlz_filesystem $use_dlz_stub" = "no no no no no no no" && echo " None"
+echo
+
+echo "Features disabled or unavailable on this platform:"
+$use_threads || echo " Multiprocessing support (--enable-threads)"
+test "$enable_ipv6" = "no" -o "$found_ipv6" = "no" && \
+ echo " IPv6 support (--enable-ipv6)"
+test "$enable_rrl" = "yes" || \
+ echo " Response Rate Limiting (--enable-rrl)"
+test "$use_gssapi" = "no" && echo " GSS-API (--with-gssapi)"
+test "$use_pkcs11" = "no" && echo " PKCS#11/Cryptoki support (--with-pkcs11)"
+test "X$enable_newstats" = "X" && echo " New statistics (--enable-newstats)"
+test "$enable_fixed" = "yes" || \
+ echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)"
+test "$want_backtrace" = "yes" || \
+ echo " Print backtrace on crash (--enable-backtrace)"
+test "$atf" = "no" && echo " Automated Testing Framework (--with-atf)"
+test "X$USE_OPENSSL" = "X" && \
+ echo " OpenSSL cryptography/DNSSEC (--with-openssl)"
+test "X$USE_OPENSSL" != "X" -a "$OPENSSL_GOST" != "yes" && \
+ echo " GOST algorithm support (--with-gost)"
+test "X$USE_OPENSSL" != "X" -a "$OPENSSL_ECDSA" != "yes" && \
+ echo " ECDSA algorithm support (--with-ecdsa)"
+test "X$PYTHON" = "X" && echo " Python tools (--with-python)"
+test "X$libxml2_libs" = "X" && echo " XML statistics (--with-libxml2)"
+
+echo "========================================================================"
+
if test "X$USE_OPENSSL" = "X"; then
cat << \EOF
BIND is being built without OpenSSL. This means it will not have DNSSEC support.
diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml
index 862555461524..0238065523d3 100644
--- a/doc/arm/Bv9ARM-book.xml
+++ b/doc/arm/Bv9ARM-book.xml
@@ -1124,544 +1124,14 @@ zone "eng.example.com" {
<arg choice="plain"><replaceable>command</replaceable></arg>
<arg rep="repeat"><replaceable>command</replaceable></arg>
</cmdsynopsis>
- <para>The <command>command</command>
- is one of the following:
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term><userinput>reload</userinput></term>
- <listitem>
- <para>
- Reload configuration file and zones.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>reload <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></userinput></term>
- <listitem>
- <para>
- Reload the given zone.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>refresh <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></userinput></term>
- <listitem>
- <para>
- Schedule zone maintenance for the given zone.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>retransfer <replaceable>zone</replaceable>
-
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></userinput></term>
- <listitem>
- <para>
- Retransfer the given zone from the master.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>sign <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></userinput></term>
- <listitem>
- <para>
- Fetch all DNSSEC keys for the given zone
- from the key directory (see
- <command>key-directory</command> in
- <xref linkend="options"/>). If they are within
- their publication period, merge them into the
- zone's DNSKEY RRset. If the DNSKEY RRset
- is changed, then the zone is automatically
- re-signed with the new key set.
- </para>
- <para>
- This command requires that the
- <command>auto-dnssec</command> zone option be set
- to <literal>allow</literal> or
- <literal>maintain</literal>,
- and also requires the zone to be configured to
- allow dynamic DNS.
- See <xref linkend="dynamic_update_policies"/> for
- more details.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>loadkeys <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></userinput></term>
- <listitem>
- <para>
- Fetch all DNSSEC keys for the given zone
- from the key directory (see
- <command>key-directory</command> in
- <xref linkend="options"/>). If they are within
- their publication period, merge them into the
- zone's DNSKEY RRset. Unlike <command>rndc
- sign</command>, however, the zone is not
- immediately re-signed by the new keys, but is
- allowed to incrementally re-sign over time.
- </para>
- <para>
- This command requires that the
- <command>auto-dnssec</command> zone option
- be set to <literal>maintain</literal>,
- and also requires the zone to be configured to
- allow dynamic DNS.
- See <xref linkend="dynamic_update_policies"/> for
- more details.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>freeze
- <optional><replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
- <listitem>
- <para>
- Suspend updates to a dynamic zone. If no zone is
- specified, then all zones are suspended. This allows
- manual edits to be made to a zone normally updated by
- dynamic update. It also causes changes in the
- journal file to be synced into the master file.
- All dynamic update attempts will be refused while
- the zone is frozen.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>thaw
- <optional><replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
- <listitem>
- <para>
- Enable updates to a frozen dynamic zone. If no
- zone is specified, then all frozen zones are
- enabled. This causes the server to reload the zone
- from disk, and re-enables dynamic updates after the
- load has completed. After a zone is thawed,
- dynamic updates will no longer be refused. If
- the zone has changed and the
- <command>ixfr-from-differences</command> option is
- in use, then the journal file will be updated to
- reflect changes in the zone. Otherwise, if the
- zone has changed, any existing journal file will be
- removed.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>sync
- <optional>-clean</optional>
- <optional><replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term>
- <listitem>
- <para>
- Sync changes in the journal file for a dynamic zone
- to the master file. If the "-clean" option is
- specified, the journal file is also removed. If
- no zone is specified, then all zones are synced.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>notify <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional></userinput></term>
- <listitem>
- <para>
- Resend NOTIFY messages for the zone.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>reconfig</userinput></term>
- <listitem>
- <para>
- Reload the configuration file and load new zones,
- but do not reload existing zone files even if they
- have changed.
- This is faster than a full <command>reload</command> when there
- is a large number of zones because it avoids the need
- to examine the
- modification times of the zones files.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>stats</userinput></term>
- <listitem>
- <para>
- Write server statistics to the statistics file.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>querylog</userinput>
- <optional>on|off</optional>
- </term>
- <listitem>
- <para>
- Enable or disable query logging. (For backward
- compatibility, this command can also be used without
- an argument to toggle query logging on and off.)
- </para>
- <para>
- Query logging can also be enabled
- by explicitly directing the <command>queries</command>
- <command>category</command> to a
- <command>channel</command> in the
- <command>logging</command> section of
- <filename>named.conf</filename> or by specifying
- <command>querylog yes;</command> in the
- <command>options</command> section of
- <filename>named.conf</filename>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>dumpdb
- <optional>-all|-cache|-zone</optional>
- <optional><replaceable>view ...</replaceable></optional></userinput></term>
- <listitem>
- <para>
- Dump the server's caches (default) and/or zones to
- the
- dump file for the specified views. If no view is
- specified, all
- views are dumped.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>secroots
- <optional><replaceable>view ...</replaceable></optional></userinput></term>
- <listitem>
- <para>
- Dump the server's security roots to the secroots
- file for the specified views. If no view is
- specified, security roots for all
- views are dumped.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>stop <optional>-p</optional></userinput></term>
- <listitem>
- <para>
- Stop the server, making sure any recent changes
- made through dynamic update or IXFR are first saved to
- the master files of the updated zones.
- If <option>-p</option> is specified <command>named</command>'s process id is returned.
- This allows an external process to determine when <command>named</command>
- had completed stopping.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><userinput>halt <optional>-p</optional></userinput></term>
- <listitem>
- <para>
- Stop the server immediately. Recent changes
- made through dynamic update or IXFR are not saved to
- the master files, but will be rolled forward from the
- journal files when the server is restarted.
- If <option>-p</option> is specified <command>named</command>'s process id is returned.
- This allows an external process to determine when <command>named</command>
- had completed halting.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>trace</userinput></term>
- <listitem>
- <para>
- Increment the servers debugging level by one.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>trace <replaceable>level</replaceable></userinput></term>
- <listitem>
- <para>
- Sets the server's debugging level to an explicit
- value.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>notrace</userinput></term>
- <listitem>
- <para>
- Sets the server's debugging level to 0.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>flush</userinput></term>
- <listitem>
- <para>
- Flushes the server's cache.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>flushname</userinput>
- <replaceable>name</replaceable>
- <optional><replaceable>view</replaceable></optional>
- </term>
- <listitem>
- <para>
- Flushes the given name from the server's DNS cache,
- and from the server's nameserver address database
- if applicable.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>flushtree</userinput>
- <replaceable>name</replaceable>
- <optional><replaceable>view</replaceable></optional>
- </term>
- <listitem>
- <para>
- Flushes the given name, and all of its subdomains,
- from the server's DNS cache. (The server's
- nameserver address database is not affected.)
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>status</userinput></term>
- <listitem>
- <para>
- Display status of the server.
- Note that the number of zones includes the internal <command>bind/CH</command> zone
- and the default <command>./IN</command>
- hint zone if there is not an
- explicit root zone configured.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>recursing</userinput></term>
- <listitem>
- <para>
- Dump the list of queries <command>named</command> is currently recursing
- on.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>validation
- <optional>on|off</optional>
- <optional><replaceable>view ...</replaceable></optional>
- </userinput></term>
- <listitem>
- <para>
- Enable or disable DNSSEC validation.
- Note <command>dnssec-enable</command> also needs to be
- set to <userinput>yes</userinput> to be effective.
- It defaults to enabled.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>tsig-list</userinput></term>
- <listitem>
- <para>
- List the names of all TSIG keys currently configured
- for use by <command>named</command> in each view. The
- list both statically configured keys and dynamic
- TKEY-negotiated keys.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>tsig-delete</userinput>
- <replaceable>keyname</replaceable>
- <optional><replaceable>view</replaceable></optional></term>
- <listitem>
- <para>
- Delete a given TKEY-negotiated key from the server.
- (This does not apply to statically configured TSIG
- keys.)
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>addzone
- <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional>
- <replaceable>configuration</replaceable>
- </userinput></term>
- <listitem>
- <para>
- Add a zone while the server is running. This
- command requires the
- <command>allow-new-zones</command> option to be set
- to <userinput>yes</userinput>. The
- <replaceable>configuration</replaceable> string
- specified on the command line is the zone
- configuration text that would ordinarily be
- placed in <filename>named.conf</filename>.
- </para>
- <para>
- The configuration is saved in a file called
- <filename><replaceable>hash</replaceable>.nzf</filename>,
- where <replaceable>hash</replaceable> is a
- cryptographic hash generated from the name of
- the view. When <command>named</command> is
- restarted, the file will be loaded into the view
- configuration, so that zones that were added
- can persist after a restart.
- </para>
- <para>
- This sample <command>addzone</command> command
- would add the zone <literal>example.com</literal>
- to the default view:
- </para>
- <para>
-<prompt>$ </prompt><userinput>rndc addzone example.com '{ type master; file "example.com.db"; };'</userinput>
- </para>
- <para>
- (Note the brackets and semi-colon around the zone
- configuration text.)
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>delzone
- <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional>
- </userinput></term>
- <listitem>
- <para>
- Delete a zone while the server is running.
- Only zones that were originally added via
- <command>rndc addzone</command> can be deleted
- in this matter.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><userinput>signing
- <optional>( -list | -clear <replaceable>keyid/algorithm</replaceable> | -clear <literal>all</literal> | -nsec3param ( <replaceable>parameters</replaceable> | <literal>none</literal> ) ) </optional>
- <replaceable>zone</replaceable>
- <optional><replaceable>class</replaceable>
- <optional><replaceable>view</replaceable></optional></optional>
- </userinput></term>
- <listitem>
- <para>
- List, edit, or remove the DNSSEC signing state for
- the specified zone. The status of ongoing DNSSEC
- operations (such as signing or generating
- NSEC3 chains) is stored in the zone in the form
- of DNS resource records of type
- <command>sig-signing-type</command>.
- <command>rndc signing -list</command> converts
- these records into a human-readable form,
- indicating which keys are currently signing
- or have finished signing the zone, and which NSEC3
- NSEC3 chains are being created or removed.
- </para>
- <para>
- <command>rndc signing -clear</command> can remove
- a single key (specified in the same format that
- <command>rndc signing -list</command> uses to
- display it), or all keys. In either case, only
- completed keys are removed; any record indicating
- that a key has not yet finished signing the zone
- will be retained.
- </para>
- <para>
- <command>rndc signing -nsec3param</command> sets
- the NSEC3 parameters for a zone. This is the
- only supported mechanism for using NSEC3 with
- <command>inline-signing</command> zones.
- Parameters are specified in the same format as
- an NSEC3PARAM resource record: hash algorithm,
- flags, iterations, and salt, in that order.
- </para>
- <para>
- Currently, the only defined value for hash algorithm
- is <literal>1</literal>, representing SHA-1.
- The <option>flags</option> may be set to
- <literal>0</literal> or <literal>1</literal>,
- depending on whether you wish to set the opt-out
- bit in the NSEC3 chain. <option>iterations</option>
- defines the number of additional times to apply
- the algorithm when generating an NSEC3 hash. The
- <option>salt</option> is a string of data expressed
- in hexidecimal, or a hyphen (`-') if no salt is
- to be used.
- </para>
- <para>
- So, for example, to create an NSEC3 chain using
- the SHA-1 hash algorithm, no opt-out flag,
- 10 iterations, and a salt value of "FFFF", use:
- <command>rndc signing -nsec3param 1 0 10 FFFF &lt;zone&gt;</command>.
- To set the opt-out flag, 15 iterations, and no
- salt, use:
- <command>rndc signing -nsec3param 1 1 15 - &lt;zone&gt;</command>.
- </para>
- <para>
- <command>rndc signing -nsec3param none</command>
- removes an existing NSEC3 chain and replaces it
- with NSEC.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
+ <para>See <xref linkend="man.rndc"/> for details of
+ the available <command>rndc</command> commands.
+ </para>
<para>
- A configuration file is required, since all
+ <command>rndc</command> requires a configuration file,
+ since all
communication with the server is authenticated with
digital signatures that rely on a shared secret, and
there is no way to provide that secret other than with a
@@ -4324,6 +3794,9 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
then this clause is silently ignored.
</para>
<para>
+ On Windows machines syslog messages are directed to the EventViewer.
+ </para>
+ <para>
The <command>severity</command> clause works like <command>syslog</command>'s
"priorities", except that they can also be used if you are writing
straight to a file rather than using <command>syslog</command>.
@@ -4818,6 +4291,37 @@ category notify { null; };
</para>
</entry>
</row>
+ <row rowsep="0">
+ <entry colname="1">
+ <para><command>rate-limit</command></para>
+ </entry>
+ <entry colname="2">
+ <para>
+ (Only available when <acronym>BIND</acronym> 9 is
+ configured with the <userinput>--enable-rrl</userinput>
+ option at compile time.)
+ </para>
+ <para>
+ The start, periodic, and final notices of the
+ rate limiting of a stream of responses are logged at
+ <command>info</command> severity in this category.
+ These messages include a hash value of the domain name
+ of the response and the name itself,
+ except when there is insufficient memory to record
+ the name for the final notice
+ The final notice is normally delayed until about one
+ minute after rate limit stops.
+ A lack of memory can hurry the final notice,
+ in which case it starts with an asterisk (*).
+ Various internal events are logged at debug 1 level
+ and higher.
+ </para>
+ <para>
+ Rate limiting of individual requests
+ is logged in the <command>query-errors</command> category.
+ </para>
+ </entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
@@ -5318,7 +4822,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
<optional> match-mapped-addresses <replaceable>yes_or_no</replaceable>; </optional>
<optional> filter-aaaa-on-v4 ( <replaceable>yes_or_no</replaceable> | <replaceable>break-dnssec</replaceable> ); </optional>
<optional> filter-aaaa { <replaceable>address_match_list</replaceable> }; </optional>
- <optional> dns64 <replaceable>IPv6-prefix</replaceable> {
+ <optional> dns64 <replaceable>ipv6-prefix</replaceable> {
<optional> clients { <replaceable>address_match_list</replaceable> }; </optional>
<optional> mapped { <replaceable>address_match_list</replaceable> }; </optional>
<optional> exclude { <replaceable>address_match_list</replaceable> }; </optional>
@@ -5351,6 +4855,23 @@ badresp:1,adberr:0,findfail:0,valfail:0]
<optional> resolver-query-timeout <replaceable>number</replaceable> ; </optional>
<optional> deny-answer-addresses { <replaceable>address_match_list</replaceable> } <optional> except-from { <replaceable>namelist</replaceable> } </optional>;</optional>
<optional> deny-answer-aliases { <replaceable>namelist</replaceable> } <optional> except-from { <replaceable>namelist</replaceable> } </optional>;</optional>
+ <optional> rate-limit {
+ <optional> responses-per-second <replaceable>number</replaceable> ; </optional>
+ <optional> referrals-per-second <replaceable>number</replaceable> ; </optional>
+ <optional> nodata-per-second <replaceable>number</replaceable> ; </optional>
+ <optional> nxdomains-per-second <replaceable>number</replaceable> ; </optional>
+ <optional> errors-per-second <replaceable>number</replaceable> ; </optional>
+ <optional> all-per-second <replaceable>number</replaceable> ; </optional>
+ <optional> window <replaceable>number</replaceable> ; </optional>
+ <optional> log-only <replaceable>yes_or_no</replaceable> ; </optional>
+ <optional> qps-scale <replaceable>number</replaceable> ; </optional>
+ <optional> ipv4-prefix-length <replaceable>number</replaceable> ; </optional>
+ <optional> ipv6-prefix-length <replaceable>number</replaceable> ; </optional>
+ <optional> slip <replaceable>number</replaceable> ; </optional>
+ <optional> exempt-clients { <replaceable>address_match_list</replaceable> } ; </optional>
+ <optional> max-table-size <replaceable>number</replaceable> ; </optional>
+ <optional> min-table-size <replaceable>number</replaceable> ; </optional>
+ } ; </optional>
<optional> response-policy { <replaceable>zone_name</replaceable>
<optional> policy given | disabled | passthru | nxdomain | nodata | cname <replaceable>domain</replaceable> </optional>
<optional> recursive-only <replaceable>yes_or_no</replaceable> </optional> <optional> max-policy-ttl <replaceable>number</replaceable> </optional> ;
@@ -6056,7 +5577,7 @@ options {
<command>named</command>. (A planned third option,
<literal>external</literal>, will disable all automatic
signing and allow DNSSEC data to be submitted into a zone
- via dyanmic update; this is not yet implemented.)
+ via dynamic update; this is not yet implemented.)
</para>
</listitem>
</varlistentry>
@@ -7160,7 +6681,7 @@ options {
(see <xref linkend="man.dnssec-keygen"/> and
<xref linkend="man.dnssec-settime"/>). The
<command>dnssec-loadkeys-interval</command> option
- sets the frequency of autoatic repository checks, in
+ sets the frequency of automatic repository checks, in
minutes. The default is <literal>60</literal> (1 hour),
the minimum is <literal>1</literal> (1 minute), and the
maximum is <literal>1440</literal> (24 hours); any higher
@@ -8396,14 +7917,15 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
<term><command>tcp-listen-queue</command></term>
<listitem>
<para>
- The listen queue depth. The default and minimum is 3.
+ The listen queue depth. The default and minimum is 10.
If the kernel supports the accept filter "dataready" this
also controls how
many TCP connections that will be queued in kernel space
waiting for
- some data before being passed to accept. Values less than 3
- will be
- silently raised.
+ some data before being passed to accept. Nonzero values
+ less than 10 will be silently raised. A value of 0 may also
+ be used; on most platforms this sets the listen queue
+ length to a system-defined default value.
</para>
</listitem>
</varlistentry>
@@ -9897,6 +9419,246 @@ ns.domain.com.rpz-nsdname CNAME .
<command>RPZRewrites</command> statistics.
</para>
</sect3>
+
+ <sect3>
+ <title>Response Rate Limiting</title>
+ <para>
+ This feature is only available when <acronym>BIND</acronym> 9
+ is compiled with the <userinput>--enable-rrl</userinput>
+ option on the "configure" command line.
+ </para>
+ <para>
+ Excessive almost identical UDP <emphasis>responses</emphasis>
+ can be controlled by configuring a
+ <command>rate-limit</command> clause in an
+ <command>options</command> or <command>view</command> statement.
+ This mechanism keeps authoritative BIND 9 from being used
+ in amplifying reflection denial of service (DoS) attacks.
+ Short truncated (TC=1) responses can be sent to provide
+ rate-limited responses to legitimate clients within
+ a range of forged, attacked IP addresses.
+ Legitimate clients react to dropped or truncated response
+ by retrying with UDP or with TCP respectively.
+ </para>
+
+ <para>
+ This mechanism is intended for authoritative DNS servers.
+ It can be used on recursive servers but can slow
+ applications such as SMTP servers (mail receivers) and
+ HTTP clients (web browsers) that repeatedly request the
+ same domains.
+ When possible, closing "open" recursive servers is better.
+ </para>
+
+ <para>
+ Response rate limiting uses a "credit" or "token bucket" scheme.
+ Each combination of identical response and client
+ has a conceptual account that earns a specified number
+ of credits every second.
+ A prospective response debits its account by one.
+ Responses are dropped or truncated
+ while the account is negative.
+ Responses are tracked within a rolling window of time
+ which defaults to 15 seconds, but can be configured with
+ the <command>window</command> option to any value from
+ 1 to 3600 seconds (1 hour).
+ The account cannot become more positive than
+ the per-second limit
+ or more negative than <command>window</command>
+ times the per-second limit.
+ When the specified number of credits for a class of
+ responses is set to 0, those responses are not rate limited.
+ </para>
+
+ <para>
+ The notions of "identical response" and "DNS client"
+ for rate limiting are not simplistic.
+ All responses to an address block are counted as if to a
+ single client.
+ The prefix lengths of addresses blocks are
+ specified with <command>ipv4-prefix-length</command> (default 24)
+ and <command>ipv6-prefix-length</command> (default 56).
+ </para>
+
+ <para>
+ All non-empty responses for a valid domain name (qname)
+ and record type (qtype) are identical and have a limit specified
+ with <command>responses-per-second</command>
+ (default 0 or no limit).
+ All empty (NODATA) responses for a valid domain,
+ regardless of query type, are identical.
+ Responses in the NODATA class are limited by
+ <command>nodata-per-second</command>
+ (default <command>responses-per-second</command>).
+ Requests for any and all undefined subdomains of a given
+ valid domain result in NXDOMAIN errors, and are identical
+ regardless of query type.
+ They are limited by <command>nxdomain-per-second</command>
+ (default <command>responses-per-second</command>).
+ This controls some attacks using random names, but
+ can be relaxed or turned off (set to 0)
+ on servers that expect many legitimate
+ NXDOMAIN responses, such as from anti-spam blacklists.
+ Referrals or delegations to the server of a given
+ domain are identical and are limited by
+ <command>referrals-per-second</command>
+ (default <command>responses-per-second</command>).
+ </para>
+
+ <para>
+ Responses generated from local wildcards are counted and limited
+ as if they were for the parent domain name.
+ This controls flooding using random.wild.example.com.
+ </para>
+
+ <para>
+ All requests that result in DNS errors other
+ than NXDOMAIN, such as SERVFAIL and FORMERR, are identical
+ regardless of requested name (qname) or record type (qtype).
+ This controls attacks using invalid requests or distant,
+ broken authoritative servers.
+ By default the limit on errors is the same as the
+ <command>responses-per-second</command> value,
+ but it can be set separately with
+ <command>errors-per-second</command>.
+ </para>
+
+ <para>
+ Many attacks using DNS involve UDP requests with forged source
+ addresses.
+ Rate limiting prevents the use of BIND 9 to flood a network
+ with responses to requests with forged source addresses,
+ but could let a third party block responses to legitimate requests.
+ There is a mechanism that can answer some legitimate
+ requests from a client whose address is being forged in a flood.
+ Setting <command>slip</command> to 2 (its default) causes every
+ other UDP request to be answered with a small truncated (TC=1)
+ response.
+ The small size and reduced frequency, and so lack of
+ amplification, of "slipped" responses make them unattractive
+ for reflection DoS attacks.
+ <command>slip</command> must be between 0 and 10.
+ A value of 0 does not "slip":
+ no truncated responses are sent due to rate limiting,
+ all responses are dropped.
+ A value of 1 causes every response to slip;
+ values between 2 and 10 cause every n'th response to slip.
+ Some error responses including REFUSED and SERVFAIL
+ cannot be replaced with truncated responses and are instead
+ leaked at the <command>slip</command> rate.
+ </para>
+
+ <para>
+ (NOTE: Dropped responses from an authoritative server may
+ reduce the difficulty of a third party successfully forging
+ a response to a recursive resolver. The best security
+ against forged responses is for authoritative operators
+ to sign their zones using DNSSEC and for resolver operators
+ to validate the responses. When this is not an option,
+ operators who are more concerned with response integrity
+ than with flood mitigation may consider setting
+ <command>slip</command> to 1, causing all rate-limited
+ responses to be truncated rather than dropped. This reduces
+ the effectiveness of rate-limiting against reflection attacks.)
+ </para>
+
+ <para>
+ When the approximate query per second rate exceeds
+ the <command>qps-scale</command> value,
+ then the <command>responses-per-second</command>,
+ <command>errors-per-second</command>,
+ <command>nxdomains-per-second</command> and
+ <command>all-per-second</command> values are reduced by the
+ ratio of the current rate to the <command>qps-scale</command> value.
+ This feature can tighten defenses during attacks.
+ For example, with
+ <command>qps-scale 250; responses-per-second 20;</command> and
+ a total query rate of 1000 queries/second for all queries from
+ all DNS clients including via TCP,
+ then the effective responses/second limit changes to
+ (250/1000)*20 or 5.
+ Responses sent via TCP are not limited
+ but are counted to compute the query per second rate.
+ </para>
+
+ <para>
+ Communities of DNS clients can be given their own parameters or no
+ rate limiting by putting
+ <command>rate-limit</command> statements in <command>view</command>
+ statements instead of the global <command>option</command>
+ statement.
+ A <command>rate-limit</command> statement in a view replaces,
+ rather than supplementing, a <command>rate-limit</command>
+ statement among the main options.
+ DNS clients within a view can be exempted from rate limits
+ with the <command>exempt-clients</command> clause.
+ </para>
+
+ <para>
+ UDP responses of all kinds can be limited with the
+ <command>all-per-second</command> phrase.
+ This rate limiting is unlike the rate limiting provided by
+ <command>responses-per-second</command>,
+ <command>errors-per-second</command>, and
+ <command>nxdomains-per-second</command> on a DNS server
+ which are often invisible to the victim of a DNS reflection attack.
+ Unless the forged requests of the attack are the same as the
+ legitimate requests of the victim, the victim's requests are
+ not affected.
+ Responses affected by an <command>all-per-second</command> limit
+ are always dropped; the <command>slip</command> value has no
+ effect.
+ An <command>all-per-second</command> limit should be
+ at least 4 times as large as the other limits,
+ because single DNS clients often send bursts of legitimate
+ requests.
+ For example, the receipt of a single mail message can prompt
+ requests from an SMTP server for NS, PTR, A, and AAAA records
+ as the incoming SMTP/TCP/IP connection is considered.
+ The SMTP server can need additional NS, A, AAAA, MX, TXT, and SPF
+ records as it considers the STMP <command>Mail From</command>
+ command.
+ Web browsers often repeatedly resolve the same names that
+ are repeated in HTML &lt;IMG&gt; tags in a page.
+ <command>All-per-second</command> is similar to the
+ rate limiting offered by firewalls but often inferior.
+ Attacks that justify ignoring the
+ contents of DNS responses are likely to be attacks on the
+ DNS server itself.
+ They usually should be discarded before the DNS server
+ spends resources making TCP connections or parsing DNS requests,
+ but that rate limiting must be done before the
+ DNS server sees the requests.
+ </para>
+
+ <para>
+ The maximum size of the table used to track requests and
+ rate limit responses is set with <command>max-table-size</command>.
+ Each entry in the table is between 40 and 80 bytes.
+ The table needs approximately as many entries as the number
+ of requests received per second.
+ The default is 20,000.
+ To reduce the cold start of growing the table,
+ <command>min-table-size</command> (default 500)
+ can set the minimum table size.
+ Enable <command>rate-limit</command> category logging to monitor
+ expansions of the table and inform
+ choices for the initial and maximum table size.
+ </para>
+
+ <para>
+ Use <command>log-only yes</command> to test rate limiting parameters
+ without actually dropping any requests.
+ </para>
+
+ <para>
+ Responses dropped by rate limits are included in the
+ <command>RateDropped</command> and <command>QryDropped</command>
+ statistics.
+ Responses that truncated by rate limits are included in
+ <command>RateSlipped</command> and <command>RespTruncated</command>.
+ </para>
+ </sect3>
</sect2>
<sect2 id="server_statement_grammar">
@@ -14649,6 +14411,32 @@ HOST-127.EXAMPLE. MX 0 .
</para>
</entry>
</row>
+ <row rowsep="0">
+ <entry colname="1">
+ <para><command>RateDropped</command></para>
+ </entry>
+ <entry colname="2">
+ <para><command></command></para>
+ </entry>
+ <entry colname="3">
+ <para>
+ Responses dropped by rate limits.
+ </para>
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry colname="1">
+ <para><command>RateSlipped</command></para>
+ </entry>
+ <entry colname="2">
+ <para><command></command></para>
+ </entry>
+ <entry colname="3">
+ <para>
+ Responses truncated by rate limits.
+ </para>
+ </entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
diff --git a/doc/arm/Bv9ARM.ch03.html b/doc/arm/Bv9ARM.ch03.html
index 0b8819ec832b..91a4a3fe7d0c 100644
--- a/doc/arm/Bv9ARM.ch03.html
+++ b/doc/arm/Bv9ARM.ch03.html
@@ -54,7 +54,7 @@
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568372">Name Server Operations</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568377">Tools for Use With the Name Server Daemon</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2570600">Signals</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2569430">Signals</a></span></dt>
</dl></dd>
</dl>
</div>
@@ -445,400 +445,12 @@ zone "eng.example.com" {
it will display a usage message as follows:
</p>
<div class="cmdsynopsis"><p><code class="command">rndc</code> [-c <em class="replaceable"><code>config</code></em>] [-s <em class="replaceable"><code>server</code></em>] [-p <em class="replaceable"><code>port</code></em>] [-y <em class="replaceable"><code>key</code></em>] <em class="replaceable"><code>command</code></em> [<em class="replaceable"><code>command</code></em>...]</p></div>
-<p>The <span><strong class="command">command</strong></span>
- is one of the following:
+<p>See <a href="man.rndc.html" title="rndc"><span class="refentrytitle"><span class="application">rndc</span></span>(8)</a> for details of
+ the available <span><strong class="command">rndc</strong></span> commands.
</p>
-<div class="variablelist"><dl>
-<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt>
-<dd><p>
- Reload configuration file and zones.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
-<dd><p>
- Reload the given zone.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
-<dd><p>
- Schedule zone maintenance for the given zone.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em>
-
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
-<dd><p>
- Retransfer the given zone from the master.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
-<dd>
-<p>
- Fetch all DNSSEC keys for the given zone
- from the key directory (see
- <span><strong class="command">key-directory</strong></span> in
- <a href="Bv9ARM.ch06.html#options" title="options Statement Definition and
- Usage">the section called &#8220;<span><strong class="command">options</strong></span> Statement Definition and
- Usage&#8221;</a>). If they are within
- their publication period, merge them into the
- zone's DNSKEY RRset. If the DNSKEY RRset
- is changed, then the zone is automatically
- re-signed with the new key set.
- </p>
-<p>
- This command requires that the
- <span><strong class="command">auto-dnssec</strong></span> zone option be set
- to <code class="literal">allow</code> or
- <code class="literal">maintain</code>,
- and also requires the zone to be configured to
- allow dynamic DNS.
- See <a href="Bv9ARM.ch06.html#dynamic_update_policies" title="Dynamic Update Policies">the section called &#8220;Dynamic Update Policies&#8221;</a> for
- more details.
- </p>
-</dd>
-<dt><span class="term"><strong class="userinput"><code>loadkeys <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
-<dd>
-<p>
- Fetch all DNSSEC keys for the given zone
- from the key directory (see
- <span><strong class="command">key-directory</strong></span> in
- <a href="Bv9ARM.ch06.html#options" title="options Statement Definition and
- Usage">the section called &#8220;<span><strong class="command">options</strong></span> Statement Definition and
- Usage&#8221;</a>). If they are within
- their publication period, merge them into the
- zone's DNSKEY RRset. Unlike <span><strong class="command">rndc
- sign</strong></span>, however, the zone is not
- immediately re-signed by the new keys, but is
- allowed to incrementally re-sign over time.
- </p>
-<p>
- This command requires that the
- <span><strong class="command">auto-dnssec</strong></span> zone option
- be set to <code class="literal">maintain</code>,
- and also requires the zone to be configured to
- allow dynamic DNS.
- See <a href="Bv9ARM.ch06.html#dynamic_update_policies" title="Dynamic Update Policies">the section called &#8220;Dynamic Update Policies&#8221;</a> for
- more details.
- </p>
-</dd>
-<dt><span class="term"><strong class="userinput"><code>freeze
- [<span class="optional"><em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
-<dd><p>
- Suspend updates to a dynamic zone. If no zone is
- specified, then all zones are suspended. This allows
- manual edits to be made to a zone normally updated by
- dynamic update. It also causes changes in the
- journal file to be synced into the master file.
- All dynamic update attempts will be refused while
- the zone is frozen.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>thaw
- [<span class="optional"><em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
-<dd><p>
- Enable updates to a frozen dynamic zone. If no
- zone is specified, then all frozen zones are
- enabled. This causes the server to reload the zone
- from disk, and re-enables dynamic updates after the
- load has completed. After a zone is thawed,
- dynamic updates will no longer be refused. If
- the zone has changed and the
- <span><strong class="command">ixfr-from-differences</strong></span> option is
- in use, then the journal file will be updated to
- reflect changes in the zone. Otherwise, if the
- zone has changed, any existing journal file will be
- removed.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>sync
- [<span class="optional">-clean</span>]
- [<span class="optional"><em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
-<dd><p>
- Sync changes in the journal file for a dynamic zone
- to the master file. If the "-clean" option is
- specified, the journal file is also removed. If
- no zone is specified, then all zones are synced.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>notify <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
-<dd><p>
- Resend NOTIFY messages for the zone.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt>
-<dd><p>
- Reload the configuration file and load new zones,
- but do not reload existing zone files even if they
- have changed.
- This is faster than a full <span><strong class="command">reload</strong></span> when there
- is a large number of zones because it avoids the need
- to examine the
- modification times of the zones files.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt>
-<dd><p>
- Write server statistics to the statistics file.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>querylog</code></strong>
- [<span class="optional">on|off</span>]
- </span></dt>
-<dd>
-<p>
- Enable or disable query logging. (For backward
- compatibility, this command can also be used without
- an argument to toggle query logging on and off.)
- </p>
-<p>
- Query logging can also be enabled
- by explicitly directing the <span><strong class="command">queries</strong></span>
- <span><strong class="command">category</strong></span> to a
- <span><strong class="command">channel</strong></span> in the
- <span><strong class="command">logging</strong></span> section of
- <code class="filename">named.conf</code> or by specifying
- <span><strong class="command">querylog yes;</strong></span> in the
- <span><strong class="command">options</strong></span> section of
- <code class="filename">named.conf</code>.
- </p>
-</dd>
-<dt><span class="term"><strong class="userinput"><code>dumpdb
- [<span class="optional">-all|-cache|-zone</span>]
- [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
-<dd><p>
- Dump the server's caches (default) and/or zones to
- the
- dump file for the specified views. If no view is
- specified, all
- views are dumped.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>secroots
- [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
-<dd><p>
- Dump the server's security roots to the secroots
- file for the specified views. If no view is
- specified, security roots for all
- views are dumped.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt>
-<dd><p>
- Stop the server, making sure any recent changes
- made through dynamic update or IXFR are first saved to
- the master files of the updated zones.
- If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
- This allows an external process to determine when <span><strong class="command">named</strong></span>
- had completed stopping.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt>
-<dd><p>
- Stop the server immediately. Recent changes
- made through dynamic update or IXFR are not saved to
- the master files, but will be rolled forward from the
- journal files when the server is restarted.
- If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
- This allows an external process to determine when <span><strong class="command">named</strong></span>
- had completed halting.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt>
-<dd><p>
- Increment the servers debugging level by one.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt>
-<dd><p>
- Sets the server's debugging level to an explicit
- value.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt>
-<dd><p>
- Sets the server's debugging level to 0.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt>
-<dd><p>
- Flushes the server's cache.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>flushname</code></strong>
- <em class="replaceable"><code>name</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]
- </span></dt>
-<dd><p>
- Flushes the given name from the server's DNS cache,
- and from the server's nameserver address database
- if applicable.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong>
- <em class="replaceable"><code>name</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]
- </span></dt>
-<dd><p>
- Flushes the given name, and all of its subdomains,
- from the server's DNS cache. (The server's
- nameserver address database is not affected.)
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>status</code></strong></span></dt>
-<dd><p>
- Display status of the server.
- Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone
- and the default <span><strong class="command">./IN</strong></span>
- hint zone if there is not an
- explicit root zone configured.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt>
-<dd><p>
- Dump the list of queries <span><strong class="command">named</strong></span> is currently recursing
- on.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>validation
- [<span class="optional">on|off</span>]
- [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]
- </code></strong></span></dt>
-<dd><p>
- Enable or disable DNSSEC validation.
- Note <span><strong class="command">dnssec-enable</strong></span> also needs to be
- set to <strong class="userinput"><code>yes</code></strong> to be effective.
- It defaults to enabled.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt>
-<dd><p>
- List the names of all TSIG keys currently configured
- for use by <span><strong class="command">named</strong></span> in each view. The
- list both statically configured keys and dynamic
- TKEY-negotiated keys.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong>
- <em class="replaceable"><code>keyname</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt>
-<dd><p>
- Delete a given TKEY-negotiated key from the server.
- (This does not apply to statically configured TSIG
- keys.)
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>addzone
- <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]
- <em class="replaceable"><code>configuration</code></em>
- </code></strong></span></dt>
-<dd>
-<p>
- Add a zone while the server is running. This
- command requires the
- <span><strong class="command">allow-new-zones</strong></span> option to be set
- to <strong class="userinput"><code>yes</code></strong>. The
- <em class="replaceable"><code>configuration</code></em> string
- specified on the command line is the zone
- configuration text that would ordinarily be
- placed in <code class="filename">named.conf</code>.
- </p>
-<p>
- The configuration is saved in a file called
- <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>,
- where <em class="replaceable"><code>hash</code></em> is a
- cryptographic hash generated from the name of
- the view. When <span><strong class="command">named</strong></span> is
- restarted, the file will be loaded into the view
- configuration, so that zones that were added
- can persist after a restart.
- </p>
-<p>
- This sample <span><strong class="command">addzone</strong></span> command
- would add the zone <code class="literal">example.com</code>
- to the default view:
- </p>
-<p>
-<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong>
- </p>
-<p>
- (Note the brackets and semi-colon around the zone
- configuration text.)
- </p>
-</dd>
-<dt><span class="term"><strong class="userinput"><code>delzone
- <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]
- </code></strong></span></dt>
-<dd><p>
- Delete a zone while the server is running.
- Only zones that were originally added via
- <span><strong class="command">rndc addzone</strong></span> can be deleted
- in this matter.
- </p></dd>
-<dt><span class="term"><strong class="userinput"><code>signing
- [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>]
- <em class="replaceable"><code>zone</code></em>
- [<span class="optional"><em class="replaceable"><code>class</code></em>
- [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]
- </code></strong></span></dt>
-<dd>
-<p>
- List, edit, or remove the DNSSEC signing state for
- the specified zone. The status of ongoing DNSSEC
- operations (such as signing or generating
- NSEC3 chains) is stored in the zone in the form
- of DNS resource records of type
- <span><strong class="command">sig-signing-type</strong></span>.
- <span><strong class="command">rndc signing -list</strong></span> converts
- these records into a human-readable form,
- indicating which keys are currently signing
- or have finished signing the zone, and which NSEC3
- NSEC3 chains are being created or removed.
- </p>
-<p>
- <span><strong class="command">rndc signing -clear</strong></span> can remove
- a single key (specified in the same format that
- <span><strong class="command">rndc signing -list</strong></span> uses to
- display it), or all keys. In either case, only
- completed keys are removed; any record indicating
- that a key has not yet finished signing the zone
- will be retained.
- </p>
-<p>
- <span><strong class="command">rndc signing -nsec3param</strong></span> sets
- the NSEC3 parameters for a zone. This is the
- only supported mechanism for using NSEC3 with
- <span><strong class="command">inline-signing</strong></span> zones.
- Parameters are specified in the same format as
- an NSEC3PARAM resource record: hash algorithm,
- flags, iterations, and salt, in that order.
- </p>
-<p>
- Currently, the only defined value for hash algorithm
- is <code class="literal">1</code>, representing SHA-1.
- The <code class="option">flags</code> may be set to
- <code class="literal">0</code> or <code class="literal">1</code>,
- depending on whether you wish to set the opt-out
- bit in the NSEC3 chain. <code class="option">iterations</code>
- defines the number of additional times to apply
- the algorithm when generating an NSEC3 hash. The
- <code class="option">salt</code> is a string of data expressed
- in hexidecimal, or a hyphen (`-') if no salt is
- to be used.
- </p>
-<p>
- So, for example, to create an NSEC3 chain using
- the SHA-1 hash algorithm, no opt-out flag,
- 10 iterations, and a salt value of "FFFF", use:
- <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF &lt;zone&gt;</strong></span>.
- To set the opt-out flag, 15 iterations, and no
- salt, use:
- <span><strong class="command">rndc signing -nsec3param 1 1 15 - &lt;zone&gt;</strong></span>.
- </p>
-<p>
- <span><strong class="command">rndc signing -nsec3param none</strong></span>
- removes an existing NSEC3 chain and replaces it
- with NSEC.
- </p>
-</dd>
-</dl></div>
<p>
- A configuration file is required, since all
+ <span><strong class="command">rndc</strong></span> requires a configuration file,
+ since all
communication with the server is authenticated with
digital signatures that rely on a shared secret, and
there is no way to provide that secret other than with a
@@ -988,7 +600,7 @@ controls {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2570600"></a>Signals</h3></div></div></div>
+<a name="id2569430"></a>Signals</h3></div></div></div>
<p>
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 e22a0cb7e40e..7b9ef3124ce5 100644
--- a/doc/arm/Bv9ARM.ch04.html
+++ b/doc/arm/Bv9ARM.ch04.html
@@ -49,59 +49,59 @@
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dynamic_update">Dynamic Update</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#journal">The journal file</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#incremental_zone_transfers">Incremental Zone Transfers (IXFR)</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571175">Split DNS</a></span></dt>
-<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571193">Example split DNS setup</a></span></dt></dl></dd>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2563997">Split DNS</a></span></dt>
+<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564016">Example split DNS setup</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#tsig">TSIG</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571763">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571836">Copying the Shared Secret to Both Machines</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571847">Informing the Servers of the Key's Existence</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571883">Instructing the Server to Use the Key</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571941">TSIG Key Based Access Control</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564003">Errors</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570661">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570734">Copying the Shared Secret to Both Machines</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570745">Informing the Servers of the Key's Existence</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570781">Instructing the Server to Use the Key</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570839">TSIG Key Based Access Control</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570888">Errors</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2564017">TKEY</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572326">SIG(0)</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570902">TKEY</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570951">SIG(0)</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572394">Generating Keys</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572541">Signing the Zone</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572622">Configuring Servers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571156">Generating Keys</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571235">Signing the Zone</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571384">Configuring Servers</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563413">Converting from insecure to secure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563450">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563555">Fully automatic zone signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563726">Private-type records</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563832">DNSKEY rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563845">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563878">Automatic key rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563905">NSEC3PARAM rollovers via UPDATE</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563914">Converting from NSEC to NSEC3</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563924">Converting from NSEC3 to NSEC</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563937">Converting from secure to insecure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572029">Periodic re-signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572039">NSEC3 and OPTOUT</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609113">Converting from insecure to secure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609150">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563516">Fully automatic zone signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563756">Private-type records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563794">DNSKEY rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563806">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569779">Automatic key rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569805">NSEC3PARAM rollovers via UPDATE</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569815">Converting from NSEC to NSEC3</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569825">Converting from NSEC3 to NSEC</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569837">Converting from secure to insecure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569875">Periodic re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569884">NSEC3 and OPTOUT</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572072">Validating Resolver</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609027">Authoritative Server</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608556">Validating Resolver</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608579">Authoritative Server</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2611929">Prerequisites</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610179">Building BIND 9 with PKCS#11</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612283">PKCS #11 Tools</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612382">Using the HSM</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636884">Specifying the engine on the command line</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636930">Running named with automatic zone re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609024">Prerequisites</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636218">Building BIND 9 with PKCS#11</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636343">PKCS #11 Tools</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636374">Using the HSM</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636572">Specifying the engine on the command line</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636686">Running named with automatic zone re-signing</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572842">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571672">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2573109">Address Lookups Using AAAA Records</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2573130">Address to Name Lookups Using Nibble Format</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571802">Address Lookups Using AAAA Records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571892">Address to Name Lookups Using Nibble Format</a></span></dt>
</dl></dd>
</dl>
</div>
@@ -256,7 +256,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2571175"></a>Split DNS</h2></div></div></div>
+<a name="id2563997"></a>Split DNS</h2></div></div></div>
<p>
Setting up different views, or visibility, of the DNS space to
internal and external resolvers is usually referred to as a
@@ -286,7 +286,7 @@
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2571193"></a>Example split DNS setup</h3></div></div></div>
+<a name="id2564016"></a>Example split DNS setup</h3></div></div></div>
<p>
Let's say a company named <span class="emphasis"><em>Example, Inc.</em></span>
(<code class="literal">example.com</code>)
@@ -543,7 +543,7 @@ nameserver 172.16.72.4
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2571763"></a>Generate Shared Keys for Each Pair of Hosts</h3></div></div></div>
+<a name="id2570661"></a>Generate Shared Keys for Each Pair of Hosts</h3></div></div></div>
<p>
A shared secret is generated to be shared between <span class="emphasis"><em>host1</em></span> and <span class="emphasis"><em>host2</em></span>.
An arbitrary key name is chosen: "host1-host2.". The key name must
@@ -551,7 +551,7 @@ nameserver 172.16.72.4
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2571780"></a>Automatic Generation</h4></div></div></div>
+<a name="id2570678"></a>Automatic Generation</h4></div></div></div>
<p>
The following command will generate a 128-bit (16 byte) HMAC-SHA256
key as described above. Longer keys are better, but shorter keys
@@ -575,7 +575,7 @@ nameserver 172.16.72.4
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2571818"></a>Manual Generation</h4></div></div></div>
+<a name="id2570716"></a>Manual Generation</h4></div></div></div>
<p>
The shared secret is simply a random sequence of bits, encoded
in base-64. Most ASCII strings are valid base-64 strings (assuming
@@ -590,7 +590,7 @@ nameserver 172.16.72.4
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2571836"></a>Copying the Shared Secret to Both Machines</h3></div></div></div>
+<a name="id2570734"></a>Copying the Shared Secret to Both Machines</h3></div></div></div>
<p>
This is beyond the scope of DNS. A secure transport mechanism
should be used. This could be secure FTP, ssh, telephone, etc.
@@ -598,7 +598,7 @@ nameserver 172.16.72.4
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2571847"></a>Informing the Servers of the Key's Existence</h3></div></div></div>
+<a name="id2570745"></a>Informing the Servers of the Key's Existence</h3></div></div></div>
<p>
Imagine <span class="emphasis"><em>host1</em></span> and <span class="emphasis"><em>host 2</em></span>
are
@@ -625,7 +625,7 @@ key host1-host2. {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2571883"></a>Instructing the Server to Use the Key</h3></div></div></div>
+<a name="id2570781"></a>Instructing the Server to Use the Key</h3></div></div></div>
<p>
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 <code class="filename">named.conf</code> file
@@ -657,7 +657,7 @@ server 10.1.2.3 {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2571941"></a>TSIG Key Based Access Control</h3></div></div></div>
+<a name="id2570839"></a>TSIG Key Based Access Control</h3></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> allows IP addresses and ranges
to be specified in ACL
@@ -684,7 +684,7 @@ allow-update { key host1-host2. ;};
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2564003"></a>Errors</h3></div></div></div>
+<a name="id2570888"></a>Errors</h3></div></div></div>
<p>
The processing of TSIG signed messages can result in
several errors. If a signed message is sent to a non-TSIG aware
@@ -710,7 +710,7 @@ allow-update { key host1-host2. ;};
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2564017"></a>TKEY</h2></div></div></div>
+<a name="id2570902"></a>TKEY</h2></div></div></div>
<p><span><strong class="command">TKEY</strong></span>
is a mechanism for automatically generating a shared secret
between two hosts. There are several "modes" of
@@ -746,7 +746,7 @@ allow-update { key host1-host2. ;};
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2572326"></a>SIG(0)</h2></div></div></div>
+<a name="id2570951"></a>SIG(0)</h2></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> 9 partially supports DNSSEC SIG(0)
transaction signatures as specified in RFC 2535 and RFC 2931.
@@ -807,7 +807,7 @@ allow-update { key host1-host2. ;};
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2572394"></a>Generating Keys</h3></div></div></div>
+<a name="id2571156"></a>Generating Keys</h3></div></div></div>
<p>
The <span><strong class="command">dnssec-keygen</strong></span> program is used to
generate keys.
@@ -863,7 +863,7 @@ allow-update { key host1-host2. ;};
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2572541"></a>Signing the Zone</h3></div></div></div>
+<a name="id2571235"></a>Signing the Zone</h3></div></div></div>
<p>
The <span><strong class="command">dnssec-signzone</strong></span> program is used
to sign a zone.
@@ -905,7 +905,7 @@ allow-update { key host1-host2. ;};
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2572622"></a>Configuring Servers</h3></div></div></div>
+<a name="id2571384"></a>Configuring Servers</h3></div></div></div>
<p>
To enable <span><strong class="command">named</strong></span> to respond appropriately
to DNS requests from DNSSEC aware clients,
@@ -1065,7 +1065,7 @@ options {
from insecure to signed and back again. A secure zone can use
either NSEC or NSEC3 chains.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563413"></a>Converting from insecure to secure</h3></div></div></div></div>
+<a name="id2609113"></a>Converting from insecure to secure</h3></div></div></div></div>
<p>Changing a zone from insecure to secure can be done in two
ways: using a dynamic DNS update, or the
<span><strong class="command">auto-dnssec</strong></span> zone option.</p>
@@ -1091,7 +1091,7 @@ options {
well. An NSEC chain will be generated as part of the initial
signing process.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563450"></a>Dynamic DNS update method</h3></div></div></div></div>
+<a name="id2609150"></a>Dynamic DNS update method</h3></div></div></div></div>
<p>To insert the keys via dynamic update:</p>
<pre class="screen">
% nsupdate
@@ -1127,7 +1127,7 @@ options {
<p>While the initial signing and NSEC/NSEC3 chain generation
is happening, other updates are possible as well.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563555"></a>Fully automatic zone signing</h3></div></div></div></div>
+<a name="id2563516"></a>Fully automatic zone signing</h3></div></div></div></div>
<p>To enable automatic signing, add the
<span><strong class="command">auto-dnssec</strong></span> option to the zone statement in
<code class="filename">named.conf</code>.
@@ -1183,7 +1183,7 @@ options {
configuration. If this has not been done, the configuration will
fail.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563726"></a>Private-type records</h3></div></div></div></div>
+<a name="id2563756"></a>Private-type records</h3></div></div></div></div>
<p>The state of the signing process is signaled by
private-type records (with a default type value of 65534). When
signing is complete, these records will have a nonzero value for
@@ -1224,12 +1224,12 @@ options {
<p>
</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563832"></a>DNSKEY rollovers</h3></div></div></div></div>
+<a name="id2563794"></a>DNSKEY rollovers</h3></div></div></div></div>
<p>As with insecure-to-secure conversions, rolling DNSSEC
keys can be done in two ways: using a dynamic DNS update, or the
<span><strong class="command">auto-dnssec</strong></span> zone option.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563845"></a>Dynamic DNS update method</h3></div></div></div></div>
+<a name="id2563806"></a>Dynamic DNS update method</h3></div></div></div></div>
<p> To perform key rollovers via dynamic update, you need to add
the <code class="filename">K*</code> files for the new keys so that
<span><strong class="command">named</strong></span> can find them. You can then add the new
@@ -1251,7 +1251,7 @@ options {
<span><strong class="command">named</strong></span> will clean out any signatures generated
by the old key after the update completes.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563878"></a>Automatic key rollovers</h3></div></div></div></div>
+<a name="id2569779"></a>Automatic key rollovers</h3></div></div></div></div>
<p>When a new key reaches its activation date (as set by
<span><strong class="command">dnssec-keygen</strong></span> or <span><strong class="command">dnssec-settime</strong></span>),
if the <span><strong class="command">auto-dnssec</strong></span> zone option is set to
@@ -1266,27 +1266,27 @@ options {
completes in 30 days, after which it will be safe to remove the
old key from the DNSKEY RRset.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563905"></a>NSEC3PARAM rollovers via UPDATE</h3></div></div></div></div>
+<a name="id2569805"></a>NSEC3PARAM rollovers via UPDATE</h3></div></div></div></div>
<p>Add the new NSEC3PARAM record via dynamic update. When the
new NSEC3 chain has been generated, the NSEC3PARAM flag field
will be zero. At this point you can remove the old NSEC3PARAM
record. The old chain will be removed after the update request
completes.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563914"></a>Converting from NSEC to NSEC3</h3></div></div></div></div>
+<a name="id2569815"></a>Converting from NSEC to NSEC3</h3></div></div></div></div>
<p>To do this, you just need to add an NSEC3PARAM record. When
the conversion is complete, the NSEC chain will have been removed
and the NSEC3PARAM record will have a zero flag field. The NSEC3
chain will be generated before the NSEC chain is
destroyed.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563924"></a>Converting from NSEC3 to NSEC</h3></div></div></div></div>
+<a name="id2569825"></a>Converting from NSEC3 to NSEC</h3></div></div></div></div>
<p>To do this, use <span><strong class="command">nsupdate</strong></span> to
remove all NSEC3PARAM records with a zero flag
field. The NSEC chain will be generated before the NSEC3 chain is
removed.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563937"></a>Converting from secure to insecure</h3></div></div></div></div>
+<a name="id2569837"></a>Converting from secure to insecure</h3></div></div></div></div>
<p>To convert a signed zone to unsigned using dynamic DNS,
delete all the DNSKEY records from the zone apex using
<span><strong class="command">nsupdate</strong></span>. All signatures, NSEC or NSEC3 chains,
@@ -1301,14 +1301,14 @@ options {
<span><strong class="command">allow</strong></span> instead (or it will re-sign).
</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2572029"></a>Periodic re-signing</h3></div></div></div></div>
+<a name="id2569875"></a>Periodic re-signing</h3></div></div></div></div>
<p>In any secure zone which supports dynamic updates, named
will periodically re-sign RRsets which have not been re-signed as
a result of some update action. The signature lifetimes will be
adjusted so as to spread the re-sign load over time rather than
all at once.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2572039"></a>NSEC3 and OPTOUT</h3></div></div></div></div>
+<a name="id2569884"></a>NSEC3 and OPTOUT</h3></div></div></div></div>
<p>
<span><strong class="command">named</strong></span> only supports creating new NSEC3 chains
where all the NSEC3 records in the zone have the same OPTOUT
@@ -1330,7 +1330,7 @@ options {
configuration files.</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2572072"></a>Validating Resolver</h3></div></div></div>
+<a name="id2608556"></a>Validating Resolver</h3></div></div></div>
<p>To configure a validating resolver to use RFC 5011 to
maintain a trust anchor, configure the trust anchor using a
<span><strong class="command">managed-keys</strong></span> statement. Information about
@@ -1341,7 +1341,7 @@ options {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609027"></a>Authoritative Server</h3></div></div></div>
+<a name="id2608579"></a>Authoritative Server</h3></div></div></div>
<p>To set up an authoritative zone for RFC 5011 trust anchor
maintenance, generate two (or more) key signing keys (KSKs) for
the zone. Sign the zone with one of them; this is the "active"
@@ -1415,7 +1415,7 @@ $ <strong class="userinput"><code>dnssec-signzone -S -K keys example.net</code><
Debian Linux, Solaris x86 and Windows Server 2003.</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2611929"></a>Prerequisites</h3></div></div></div>
+<a name="id2609024"></a>Prerequisites</h3></div></div></div>
<p>See the HSM vendor documentation for information about
installing, initializing, testing and troubleshooting the
HSM.</p>
@@ -1452,14 +1452,15 @@ $ <strong class="userinput"><code>dnssec-signzone -S -K keys example.net</code><
</ul></div>
<p>The modified OpenSSL code is included in the BIND 9 release,
in the form of a context diff against the latest verions of
- OpenSSL. OpenSSL 0.9.8 and 1.0.0 are both supported; there are
+ OpenSSL. OpenSSL 0.9.8, 1.0.0 and 1.0.1 are supported; there are
separate diffs for each version. In the examples to follow,
- we use OpenSSL 0.9.8, but the same methods work with OpenSSL 1.0.0.
+ we use OpenSSL 0.9.8, but the same methods work with OpenSSL 1.0.0
+ and 1.0.1.
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
The latest OpenSSL versions at the time of the BIND release
- are 0.9.8s and 1.0.0f.
+ are 0.9.8y, 1.0.0k and 1.0.1e.
ISC will provide an updated patch as new versions of OpenSSL
are released. The version number in the following examples
is expected to change.</div>
@@ -1492,7 +1493,7 @@ $ <strong class="userinput"><code>patch -p1 -d openssl-0.9.8s \
when we configure BIND 9.</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609772"></a>Building OpenSSL for the AEP Keyper on Linux</h4></div></div></div>
+<a name="id2609324"></a>Building OpenSSL for the AEP Keyper on Linux</h4></div></div></div>
<p>The AEP Keyper is a highly secure key storage device,
but does not provide hardware cryptographic acceleration. It
can carry out cryptographic operations, but it is probably
@@ -1524,7 +1525,7 @@ $ <strong class="userinput"><code>./Configure linux-generic32 -m32 -pthread \
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609910"></a>Building OpenSSL for the SCA 6000 on Solaris</h4></div></div></div>
+<a name="id2609394"></a>Building OpenSSL for the SCA 6000 on Solaris</h4></div></div></div>
<p>The SCA-6000 PKCS #11 provider is installed as a system
library, libpkcs11. It is a true crypto accelerator, up to 4
times faster than any CPU, so the flavor shall be
@@ -1546,7 +1547,7 @@ $ <strong class="userinput"><code>./Configure solaris64-x86_64-cc \
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609959"></a>Building OpenSSL for SoftHSM</h4></div></div></div>
+<a name="id2609443"></a>Building OpenSSL for SoftHSM</h4></div></div></div>
<p>SoftHSM is a software library provided by the OpenDNSSEC
project (http://www.opendnssec.org) which provides a PKCS#11
interface to a virtual HSM, implemented in the form of encrypted
@@ -1606,12 +1607,12 @@ $ <strong class="userinput"><code>./Configure linux-x86_64 -pthread \
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2610179"></a>Building BIND 9 with PKCS#11</h3></div></div></div>
+<a name="id2636218"></a>Building BIND 9 with PKCS#11</h3></div></div></div>
<p>When building BIND 9, the location of the custom-built
OpenSSL library must be specified via configure.</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610187"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div>
+<a name="id2636227"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div>
<p>To link with the PKCS #11 provider, threads must be
enabled in the BIND 9 build.</p>
<p>The PKCS #11 library for the AEP Keyper is currently
@@ -1627,7 +1628,7 @@ $ <strong class="userinput"><code>./configure CC="gcc -m32" --enable-threads \
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610219"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div>
+<a name="id2636259"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div>
<p>To link with the PKCS #11 provider, threads must be
enabled in the BIND 9 build.</p>
<pre class="screen">
@@ -1645,7 +1646,7 @@ $ <strong class="userinput"><code>./configure CC="cc -xarch=amd64" --enable-thre
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2612235"></a>Configuring BIND 9 for SoftHSM</h4></div></div></div>
+<a name="id2636295"></a>Configuring BIND 9 for SoftHSM</h4></div></div></div>
<pre class="screen">
$ <strong class="userinput"><code>cd ../bind9</code></strong>
$ <strong class="userinput"><code>./configure --enable-threads \
@@ -1662,7 +1663,7 @@ $ <strong class="userinput"><code>./configure --enable-threads \
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2612283"></a>PKCS #11 Tools</h3></div></div></div>
+<a name="id2636343"></a>PKCS #11 Tools</h3></div></div></div>
<p>BIND 9 includes a minimal set of tools to operate the
HSM, including
<span><strong class="command">pkcs11-keygen</strong></span> to generate a new key pair
@@ -1680,7 +1681,7 @@ $ <strong class="userinput"><code>./configure --enable-threads \
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2612382"></a>Using the HSM</h3></div></div></div>
+<a name="id2636374"></a>Using the HSM</h3></div></div></div>
<p>First, we must set up the runtime environment so the
OpenSSL and PKCS #11 libraries can be loaded:</p>
<pre class="screen">
@@ -1768,7 +1769,7 @@ example.net.signed
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2636884"></a>Specifying the engine on the command line</h3></div></div></div>
+<a name="id2636572"></a>Specifying the engine on the command line</h3></div></div></div>
<p>The OpenSSL engine can be specified in
<span><strong class="command">named</strong></span> and all of the BIND
<span><strong class="command">dnssec-*</strong></span> tools by using the "-E
@@ -1789,7 +1790,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2636930"></a>Running named with automatic zone re-signing</h3></div></div></div>
+<a name="id2636686"></a>Running named with automatic zone re-signing</h3></div></div></div>
<p>If you want
<span><strong class="command">named</strong></span> to dynamically re-sign zones using HSM
keys, and/or to to sign new records inserted via nsupdate, then
@@ -1825,7 +1826,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2572842"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div>
+<a name="id2571672"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> 9 fully supports all currently
defined forms of IPv6 name to address and address to name
@@ -1863,7 +1864,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2573109"></a>Address Lookups Using AAAA Records</h3></div></div></div>
+<a name="id2571802"></a>Address Lookups Using AAAA Records</h3></div></div></div>
<p>
The IPv6 AAAA record is a parallel to the IPv4 A record,
and, unlike the deprecated A6 record, specifies the entire
@@ -1882,7 +1883,7 @@ host 3600 IN AAAA 2001:db8::1
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2573130"></a>Address to Name Lookups Using Nibble Format</h3></div></div></div>
+<a name="id2571892"></a>Address to Name Lookups Using Nibble Format</h3></div></div></div>
<p>
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 4457cbd99e2e..eb4803ad4301 100644
--- a/doc/arm/Bv9ARM.ch05.html
+++ b/doc/arm/Bv9ARM.ch05.html
@@ -45,13 +45,13 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2573163">The Lightweight Resolver Library</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2571925">The Lightweight Resolver Library</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#lwresd">Running a Resolver Daemon</a></span></dt>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2573163"></a>The Lightweight Resolver Library</h2></div></div></div>
+<a name="id2571925"></a>The Lightweight Resolver Library</h2></div></div></div>
<p>
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 bd260dc47fd3..470349609e6e 100644
--- a/doc/arm/Bv9ARM.ch06.html
+++ b/doc/arm/Bv9ARM.ch06.html
@@ -48,58 +48,58 @@
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#configuration_file_elements">Configuration File Elements</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#address_match_lists">Address Match Lists</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574711">Comment Syntax</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2573336">Comment Syntax</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#Configuration_File_Grammar">Configuration File Grammar</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575371"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2573996"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#acl"><span><strong class="command">acl</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575561"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574186"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#controls_statement_definition_and_usage"><span><strong class="command">controls</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575921"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575938"><span><strong class="command">include</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574614"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574631"><span><strong class="command">include</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575961"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575985"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576075"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576269"><span><strong class="command">logging</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574654"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574678"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574769"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574963"><span><strong class="command">logging</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578364"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578438"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578502"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578546"><span><strong class="command">masters</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577174"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577248"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577312"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577355"><span><strong class="command">masters</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578567"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577377"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#options"><span><strong class="command">options</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_grammar"><span><strong class="command">server</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590613"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590101"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#trusted-keys"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590920"><span><strong class="command">trusted-keys</strong></span> Statement Definition
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590408"><span><strong class="command">trusted-keys</strong></span> Statement Definition
and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590967"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590523"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#managed-keys"><span><strong class="command">managed-keys</strong></span> Statement Definition
and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591409"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590965"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span>
Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593189"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592813"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596875">Zone File</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596432">Zone File</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599037">Discussion of MX Records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598594">Discussion of MX Records</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599585">Inverse Mapping in IPv4</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599848">Other Zone File Directives</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600189"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599209">Inverse Mapping in IPv4</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599336">Other Zone File Directives</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599541"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#statistics">BIND9 Statistics</a></span></dt>
@@ -491,7 +491,7 @@
<a name="address_match_lists"></a>Address Match Lists</h3></div></div></div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574546"></a>Syntax</h4></div></div></div>
+<a name="id2573034"></a>Syntax</h4></div></div></div>
<pre class="programlisting"><code class="varname">address_match_list</code> = address_match_list_element ;
[<span class="optional"> address_match_list_element; ... </span>]
<code class="varname">address_match_list_element</code> = [<span class="optional"> ! </span>] (ip_address [<span class="optional">/length</span>] |
@@ -500,7 +500,7 @@
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574573"></a>Definition and Usage</h4></div></div></div>
+<a name="id2573130"></a>Definition and Usage</h4></div></div></div>
<p>
Address match lists are primarily used to determine access
control for various server operations. They are also used in
@@ -584,7 +584,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2574711"></a>Comment Syntax</h3></div></div></div>
+<a name="id2573336"></a>Comment Syntax</h3></div></div></div>
<p>
The <acronym class="acronym">BIND</acronym> 9 comment syntax allows for
comments to appear
@@ -594,7 +594,7 @@
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574726"></a>Syntax</h4></div></div></div>
+<a name="id2573351"></a>Syntax</h4></div></div></div>
<p>
</p>
<pre class="programlisting">/* This is a <acronym class="acronym">BIND</acronym> comment as in C */</pre>
@@ -610,7 +610,7 @@
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574756"></a>Definition and Usage</h4></div></div></div>
+<a name="id2573381"></a>Definition and Usage</h4></div></div></div>
<p>
Comments may appear anywhere that whitespace may appear in
a <acronym class="acronym">BIND</acronym> configuration file.
@@ -864,7 +864,7 @@
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575371"></a><span><strong class="command">acl</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2573996"></a><span><strong class="command">acl</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">acl</strong></span> acl-name {
address_match_list
};
@@ -946,7 +946,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575561"></a><span><strong class="command">controls</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2574186"></a><span><strong class="command">controls</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">controls</strong></span> {
[ inet ( ip_addr | * ) [ port ip_port ]
allow { <em class="replaceable"><code> address_match_list </code></em> }
@@ -1070,12 +1070,12 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575921"></a><span><strong class="command">include</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2574614"></a><span><strong class="command">include</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">include</strong></span> <em class="replaceable"><code>filename</code></em>;</pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575938"></a><span><strong class="command">include</strong></span> Statement Definition and
+<a name="id2574631"></a><span><strong class="command">include</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p>
The <span><strong class="command">include</strong></span> statement inserts the
@@ -1090,7 +1090,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575961"></a><span><strong class="command">key</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2574654"></a><span><strong class="command">key</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">key</strong></span> <em class="replaceable"><code>key_id</code></em> {
algorithm <em class="replaceable"><code>string</code></em>;
secret <em class="replaceable"><code>string</code></em>;
@@ -1099,7 +1099,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575985"></a><span><strong class="command">key</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2574678"></a><span><strong class="command">key</strong></span> Statement Definition and Usage</h3></div></div></div>
<p>
The <span><strong class="command">key</strong></span> statement defines a shared
secret key for use with TSIG (see <a href="Bv9ARM.ch04.html#tsig" title="TSIG">the section called &#8220;TSIG&#8221;</a>)
@@ -1146,7 +1146,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2576075"></a><span><strong class="command">logging</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2574769"></a><span><strong class="command">logging</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">logging</strong></span> {
[ <span><strong class="command">channel</strong></span> <em class="replaceable"><code>channel_name</code></em> {
( <span><strong class="command">file</strong></span> <em class="replaceable"><code>path_name</code></em>
@@ -1170,7 +1170,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2576269"></a><span><strong class="command">logging</strong></span> Statement Definition and
+<a name="id2574963"></a><span><strong class="command">logging</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p>
The <span><strong class="command">logging</strong></span> statement configures a
@@ -1204,7 +1204,7 @@
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2576322"></a>The <span><strong class="command">channel</strong></span> Phrase</h4></div></div></div>
+<a name="id2575015"></a>The <span><strong class="command">channel</strong></span> Phrase</h4></div></div></div>
<p>
All log output goes to one or more <span class="emphasis"><em>channels</em></span>;
you can make as many of them as you want.
@@ -1305,6 +1305,9 @@
then this clause is silently ignored.
</p>
<p>
+ On Windows machines syslog messages are directed to the EventViewer.
+ </p>
+<p>
The <span><strong class="command">severity</strong></span> clause works like <span><strong class="command">syslog</strong></span>'s
"priorities", except that they can also be used if you are writing
straight to a file rather than using <span><strong class="command">syslog</strong></span>.
@@ -1783,12 +1786,43 @@ category notify { null; };
</p>
</td>
</tr>
+<tr>
+<td>
+ <p><span><strong class="command">rate-limit</strong></span></p>
+ </td>
+<td>
+ <p>
+ (Only available when <acronym class="acronym">BIND</acronym> 9 is
+ configured with the <strong class="userinput"><code>--enable-rrl</code></strong>
+ option at compile time.)
+ </p>
+ <p>
+ The start, periodic, and final notices of the
+ rate limiting of a stream of responses are logged at
+ <span><strong class="command">info</strong></span> severity in this category.
+ These messages include a hash value of the domain name
+ of the response and the name itself,
+ except when there is insufficient memory to record
+ the name for the final notice
+ The final notice is normally delayed until about one
+ minute after rate limit stops.
+ A lack of memory can hurry the final notice,
+ in which case it starts with an asterisk (*).
+ Various internal events are logged at debug 1 level
+ and higher.
+ </p>
+ <p>
+ Rate limiting of individual requests
+ is logged in the <span><strong class="command">query-errors</strong></span> category.
+ </p>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2577777"></a>The <span><strong class="command">query-errors</strong></span> Category</h4></div></div></div>
+<a name="id2576518"></a>The <span><strong class="command">query-errors</strong></span> Category</h4></div></div></div>
<p>
The <span><strong class="command">query-errors</strong></span> category is
specifically intended for debugging purposes: To identify
@@ -2016,7 +2050,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578364"></a><span><strong class="command">lwres</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2577174"></a><span><strong class="command">lwres</strong></span> Statement Grammar</h3></div></div></div>
<p>
This is the grammar of the <span><strong class="command">lwres</strong></span>
statement in the <code class="filename">named.conf</code> file:
@@ -2032,7 +2066,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578438"></a><span><strong class="command">lwres</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2577248"></a><span><strong class="command">lwres</strong></span> Statement Definition and Usage</h3></div></div></div>
<p>
The <span><strong class="command">lwres</strong></span> statement configures the
name
@@ -2083,7 +2117,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578502"></a><span><strong class="command">masters</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2577312"></a><span><strong class="command">masters</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting">
<span><strong class="command">masters</strong></span> <em class="replaceable"><code>name</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] { ( <em class="replaceable"><code>masters_list</code></em> |
<em class="replaceable"><code>ip_addr</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] [<span class="optional">key <em class="replaceable"><code>key</code></em></span>] ) ; [<span class="optional">...</span>] };
@@ -2091,7 +2125,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578546"></a><span><strong class="command">masters</strong></span> Statement Definition and
+<a name="id2577355"></a><span><strong class="command">masters</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p><span><strong class="command">masters</strong></span>
lists allow for a common set of masters to be easily used by
@@ -2101,7 +2135,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578567"></a><span><strong class="command">options</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2577377"></a><span><strong class="command">options</strong></span> Statement Grammar</h3></div></div></div>
<p>
This is the grammar of the <span><strong class="command">options</strong></span>
statement in the <code class="filename">named.conf</code> file:
@@ -2273,7 +2307,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
[<span class="optional"> match-mapped-addresses <em class="replaceable"><code>yes_or_no</code></em>; </span>]
[<span class="optional"> filter-aaaa-on-v4 ( <em class="replaceable"><code>yes_or_no</code></em> | <em class="replaceable"><code>break-dnssec</code></em> ); </span>]
[<span class="optional"> filter-aaaa { <em class="replaceable"><code>address_match_list</code></em> }; </span>]
- [<span class="optional"> dns64 <em class="replaceable"><code>IPv6-prefix</code></em> {
+ [<span class="optional"> dns64 <em class="replaceable"><code>ipv6-prefix</code></em> {
[<span class="optional"> clients { <em class="replaceable"><code>address_match_list</code></em> }; </span>]
[<span class="optional"> mapped { <em class="replaceable"><code>address_match_list</code></em> }; </span>]
[<span class="optional"> exclude { <em class="replaceable"><code>address_match_list</code></em> }; </span>]
@@ -2306,6 +2340,23 @@ badresp:1,adberr:0,findfail:0,valfail:0]
[<span class="optional"> resolver-query-timeout <em class="replaceable"><code>number</code></em> ; </span>]
[<span class="optional"> deny-answer-addresses { <em class="replaceable"><code>address_match_list</code></em> } [<span class="optional"> except-from { <em class="replaceable"><code>namelist</code></em> } </span>];</span>]
[<span class="optional"> deny-answer-aliases { <em class="replaceable"><code>namelist</code></em> } [<span class="optional"> except-from { <em class="replaceable"><code>namelist</code></em> } </span>];</span>]
+ [<span class="optional"> rate-limit {
+ [<span class="optional"> responses-per-second <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> referrals-per-second <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> nodata-per-second <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> nxdomains-per-second <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> errors-per-second <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> all-per-second <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> window <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> log-only <em class="replaceable"><code>yes_or_no</code></em> ; </span>]
+ [<span class="optional"> qps-scale <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> ipv4-prefix-length <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> ipv6-prefix-length <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> slip <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> exempt-clients { <em class="replaceable"><code>address_match_list</code></em> } ; </span>]
+ [<span class="optional"> max-table-size <em class="replaceable"><code>number</code></em> ; </span>]
+ [<span class="optional"> min-table-size <em class="replaceable"><code>number</code></em> ; </span>]
+ } ; </span>]
[<span class="optional"> response-policy { <em class="replaceable"><code>zone_name</code></em>
[<span class="optional"> policy given | disabled | passthru | nxdomain | nodata | cname <em class="replaceable"><code>domain</code></em> </span>]
[<span class="optional"> recursive-only <em class="replaceable"><code>yes_or_no</code></em> </span>] [<span class="optional"> max-policy-ttl <em class="replaceable"><code>number</code></em> </span>] ;
@@ -2867,7 +2918,7 @@ options {
<span><strong class="command">named</strong></span>. (A planned third option,
<code class="literal">external</code>, will disable all automatic
signing and allow DNSSEC data to be submitted into a zone
- via dyanmic update; this is not yet implemented.)
+ via dynamic update; this is not yet implemented.)
</p>
</dd>
<dt><span class="term"><span><strong class="command">zone-statistics</strong></span></span></dt>
@@ -3758,7 +3809,7 @@ options {
(see <a href="man.dnssec-keygen.html" title="dnssec-keygen"><span class="refentrytitle"><span class="application">dnssec-keygen</span></span>(8)</a> and
<a href="man.dnssec-settime.html" title="dnssec-settime"><span class="refentrytitle"><span class="application">dnssec-settime</span></span>(8)</a>). The
<span><strong class="command">dnssec-loadkeys-interval</strong></span> option
- sets the frequency of autoatic repository checks, in
+ sets the frequency of automatic repository checks, in
minutes. The default is <code class="literal">60</code> (1 hour),
the minimum is <code class="literal">1</code> (1 minute), and the
maximum is <code class="literal">1440</code> (24 hours); any higher
@@ -3799,7 +3850,7 @@ options {
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2584393"></a>Forwarding</h4></div></div></div>
+<a name="id2583370"></a>Forwarding</h4></div></div></div>
<p>
The forwarding facility can be used to create a large site-wide
cache on a few servers, reducing traffic over links to external
@@ -3843,7 +3894,7 @@ options {
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2584588"></a>Dual-stack Servers</h4></div></div></div>
+<a name="id2583565"></a>Dual-stack Servers</h4></div></div></div>
<p>
Dual-stack servers are used as servers of last resort to work
around
@@ -4060,7 +4111,7 @@ options {
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2585149"></a>Interfaces</h4></div></div></div>
+<a name="id2584126"></a>Interfaces</h4></div></div></div>
<p>
The interfaces and ports that the server will answer queries
from may be specified using the <span><strong class="command">listen-on</strong></span> option. <span><strong class="command">listen-on</strong></span> takes
@@ -4528,7 +4579,7 @@ avoid-v6-udp-ports {};
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2586366"></a>UDP Port Lists</h4></div></div></div>
+<a name="id2585207"></a>UDP Port Lists</h4></div></div></div>
<p>
<span><strong class="command">use-v4-udp-ports</strong></span>,
<span><strong class="command">avoid-v4-udp-ports</strong></span>,
@@ -4570,7 +4621,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2586426"></a>Operating System Resource Limits</h4></div></div></div>
+<a name="id2585403"></a>Operating System Resource Limits</h4></div></div></div>
<p>
The server's usage of many system resources can be limited.
Scaled values are allowed when specifying resource limits. For
@@ -4721,20 +4772,21 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
</p></dd>
<dt><span class="term"><span><strong class="command">tcp-listen-queue</strong></span></span></dt>
<dd><p>
- The listen queue depth. The default and minimum is 3.
+ The listen queue depth. The default and minimum is 10.
If the kernel supports the accept filter "dataready" this
also controls how
many TCP connections that will be queued in kernel space
waiting for
- some data before being passed to accept. Values less than 3
- will be
- silently raised.
+ some data before being passed to accept. Nonzero values
+ less than 10 will be silently raised. A value of 0 may also
+ be used; on most platforms this sets the listen queue
+ length to a system-defined default value.
</p></dd>
</dl></div>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2586917"></a>Periodic Task Intervals</h4></div></div></div>
+<a name="id2585826"></a>Periodic Task Intervals</h4></div></div></div>
<div class="variablelist"><dl>
<dt><span class="term"><span><strong class="command">cleaning-interval</strong></span></span></dt>
<dd><p>
@@ -5667,7 +5719,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2589223"></a>Content Filtering</h4></div></div></div>
+<a name="id2588200"></a>Content Filtering</h4></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> 9 provides the ability to filter
out DNS responses from external DNS servers containing
@@ -5790,7 +5842,7 @@ deny-answer-aliases { "example.net"; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2589417"></a>Response Policy Zone (RPZ) Rewriting</h4></div></div></div>
+<a name="id2588394"></a>Response Policy Zone (RPZ) Rewriting</h4></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> 9 includes a limited
mechanism to modify DNS responses for requests
@@ -6055,6 +6107,232 @@ ns.domain.com.rpz-nsdname CNAME .
<span><strong class="command">RPZRewrites</strong></span> statistics.
</p>
</div>
+<div class="sect3" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id2588961"></a>Response Rate Limiting</h4></div></div></div>
+<p>
+ This feature is only available when <acronym class="acronym">BIND</acronym> 9
+ is compiled with the <strong class="userinput"><code>--enable-rrl</code></strong>
+ option on the "configure" command line.
+ </p>
+<p>
+ Excessive almost identical UDP <span class="emphasis"><em>responses</em></span>
+ can be controlled by configuring a
+ <span><strong class="command">rate-limit</strong></span> clause in an
+ <span><strong class="command">options</strong></span> or <span><strong class="command">view</strong></span> statement.
+ This mechanism keeps authoritative BIND 9 from being used
+ in amplifying reflection denial of service (DoS) attacks.
+ Short truncated (TC=1) responses can be sent to provide
+ rate-limited responses to legitimate clients within
+ a range of forged, attacked IP addresses.
+ Legitimate clients react to dropped or truncated response
+ by retrying with UDP or with TCP respectively.
+ </p>
+<p>
+ This mechanism is intended for authoritative DNS servers.
+ It can be used on recursive servers but can slow
+ applications such as SMTP servers (mail receivers) and
+ HTTP clients (web browsers) that repeatedly request the
+ same domains.
+ When possible, closing "open" recursive servers is better.
+ </p>
+<p>
+ Response rate limiting uses a "credit" or "token bucket" scheme.
+ Each combination of identical response and client
+ has a conceptual account that earns a specified number
+ of credits every second.
+ A prospective response debits its account by one.
+ Responses are dropped or truncated
+ while the account is negative.
+ Responses are tracked within a rolling window of time
+ which defaults to 15 seconds, but can be configured with
+ the <span><strong class="command">window</strong></span> option to any value from
+ 1 to 3600 seconds (1 hour).
+ The account cannot become more positive than
+ the per-second limit
+ or more negative than <span><strong class="command">window</strong></span>
+ times the per-second limit.
+ When the specified number of credits for a class of
+ responses is set to 0, those responses are not rate limited.
+ </p>
+<p>
+ The notions of "identical response" and "DNS client"
+ for rate limiting are not simplistic.
+ All responses to an address block are counted as if to a
+ single client.
+ The prefix lengths of addresses blocks are
+ specified with <span><strong class="command">ipv4-prefix-length</strong></span> (default 24)
+ and <span><strong class="command">ipv6-prefix-length</strong></span> (default 56).
+ </p>
+<p>
+ All non-empty responses for a valid domain name (qname)
+ and record type (qtype) are identical and have a limit specified
+ with <span><strong class="command">responses-per-second</strong></span>
+ (default 0 or no limit).
+ All empty (NODATA) responses for a valid domain,
+ regardless of query type, are identical.
+ Responses in the NODATA class are limited by
+ <span><strong class="command">nodata-per-second</strong></span>
+ (default <span><strong class="command">responses-per-second</strong></span>).
+ Requests for any and all undefined subdomains of a given
+ valid domain result in NXDOMAIN errors, and are identical
+ regardless of query type.
+ They are limited by <span><strong class="command">nxdomain-per-second</strong></span>
+ (default <span><strong class="command">responses-per-second</strong></span>).
+ This controls some attacks using random names, but
+ can be relaxed or turned off (set to 0)
+ on servers that expect many legitimate
+ NXDOMAIN responses, such as from anti-spam blacklists.
+ Referrals or delegations to the server of a given
+ domain are identical and are limited by
+ <span><strong class="command">referrals-per-second</strong></span>
+ (default <span><strong class="command">responses-per-second</strong></span>).
+ </p>
+<p>
+ Responses generated from local wildcards are counted and limited
+ as if they were for the parent domain name.
+ This controls flooding using random.wild.example.com.
+ </p>
+<p>
+ All requests that result in DNS errors other
+ than NXDOMAIN, such as SERVFAIL and FORMERR, are identical
+ regardless of requested name (qname) or record type (qtype).
+ This controls attacks using invalid requests or distant,
+ broken authoritative servers.
+ By default the limit on errors is the same as the
+ <span><strong class="command">responses-per-second</strong></span> value,
+ but it can be set separately with
+ <span><strong class="command">errors-per-second</strong></span>.
+ </p>
+<p>
+ Many attacks using DNS involve UDP requests with forged source
+ addresses.
+ Rate limiting prevents the use of BIND 9 to flood a network
+ with responses to requests with forged source addresses,
+ but could let a third party block responses to legitimate requests.
+ There is a mechanism that can answer some legitimate
+ requests from a client whose address is being forged in a flood.
+ Setting <span><strong class="command">slip</strong></span> to 2 (its default) causes every
+ other UDP request to be answered with a small truncated (TC=1)
+ response.
+ The small size and reduced frequency, and so lack of
+ amplification, of "slipped" responses make them unattractive
+ for reflection DoS attacks.
+ <span><strong class="command">slip</strong></span> must be between 0 and 10.
+ A value of 0 does not "slip":
+ no truncated responses are sent due to rate limiting,
+ all responses are dropped.
+ A value of 1 causes every response to slip;
+ values between 2 and 10 cause every n'th response to slip.
+ Some error responses including REFUSED and SERVFAIL
+ cannot be replaced with truncated responses and are instead
+ leaked at the <span><strong class="command">slip</strong></span> rate.
+ </p>
+<p>
+ (NOTE: Dropped responses from an authoritative server may
+ reduce the difficulty of a third party successfully forging
+ a response to a recursive resolver. The best security
+ against forged responses is for authoritative operators
+ to sign their zones using DNSSEC and for resolver operators
+ to validate the responses. When this is not an option,
+ operators who are more concerned with response integrity
+ than with flood mitigation may consider setting
+ <span><strong class="command">slip</strong></span> to 1, causing all rate-limited
+ responses to be truncated rather than dropped. This reduces
+ the effectiveness of rate-limiting against reflection attacks.)
+ </p>
+<p>
+ When the approximate query per second rate exceeds
+ the <span><strong class="command">qps-scale</strong></span> value,
+ then the <span><strong class="command">responses-per-second</strong></span>,
+ <span><strong class="command">errors-per-second</strong></span>,
+ <span><strong class="command">nxdomains-per-second</strong></span> and
+ <span><strong class="command">all-per-second</strong></span> values are reduced by the
+ ratio of the current rate to the <span><strong class="command">qps-scale</strong></span> value.
+ This feature can tighten defenses during attacks.
+ For example, with
+ <span><strong class="command">qps-scale 250; responses-per-second 20;</strong></span> and
+ a total query rate of 1000 queries/second for all queries from
+ all DNS clients including via TCP,
+ then the effective responses/second limit changes to
+ (250/1000)*20 or 5.
+ Responses sent via TCP are not limited
+ but are counted to compute the query per second rate.
+ </p>
+<p>
+ Communities of DNS clients can be given their own parameters or no
+ rate limiting by putting
+ <span><strong class="command">rate-limit</strong></span> statements in <span><strong class="command">view</strong></span>
+ statements instead of the global <span><strong class="command">option</strong></span>
+ statement.
+ A <span><strong class="command">rate-limit</strong></span> statement in a view replaces,
+ rather than supplementing, a <span><strong class="command">rate-limit</strong></span>
+ statement among the main options.
+ DNS clients within a view can be exempted from rate limits
+ with the <span><strong class="command">exempt-clients</strong></span> clause.
+ </p>
+<p>
+ UDP responses of all kinds can be limited with the
+ <span><strong class="command">all-per-second</strong></span> phrase.
+ This rate limiting is unlike the rate limiting provided by
+ <span><strong class="command">responses-per-second</strong></span>,
+ <span><strong class="command">errors-per-second</strong></span>, and
+ <span><strong class="command">nxdomains-per-second</strong></span> on a DNS server
+ which are often invisible to the victim of a DNS reflection attack.
+ Unless the forged requests of the attack are the same as the
+ legitimate requests of the victim, the victim's requests are
+ not affected.
+ Responses affected by an <span><strong class="command">all-per-second</strong></span> limit
+ are always dropped; the <span><strong class="command">slip</strong></span> value has no
+ effect.
+ An <span><strong class="command">all-per-second</strong></span> limit should be
+ at least 4 times as large as the other limits,
+ because single DNS clients often send bursts of legitimate
+ requests.
+ For example, the receipt of a single mail message can prompt
+ requests from an SMTP server for NS, PTR, A, and AAAA records
+ as the incoming SMTP/TCP/IP connection is considered.
+ The SMTP server can need additional NS, A, AAAA, MX, TXT, and SPF
+ records as it considers the STMP <span><strong class="command">Mail From</strong></span>
+ command.
+ Web browsers often repeatedly resolve the same names that
+ are repeated in HTML &lt;IMG&gt; tags in a page.
+ <span><strong class="command">All-per-second</strong></span> is similar to the
+ rate limiting offered by firewalls but often inferior.
+ Attacks that justify ignoring the
+ contents of DNS responses are likely to be attacks on the
+ DNS server itself.
+ They usually should be discarded before the DNS server
+ spends resources making TCP connections or parsing DNS requests,
+ but that rate limiting must be done before the
+ DNS server sees the requests.
+ </p>
+<p>
+ The maximum size of the table used to track requests and
+ rate limit responses is set with <span><strong class="command">max-table-size</strong></span>.
+ Each entry in the table is between 40 and 80 bytes.
+ The table needs approximately as many entries as the number
+ of requests received per second.
+ The default is 20,000.
+ To reduce the cold start of growing the table,
+ <span><strong class="command">min-table-size</strong></span> (default 500)
+ can set the minimum table size.
+ Enable <span><strong class="command">rate-limit</strong></span> category logging to monitor
+ expansions of the table and inform
+ choices for the initial and maximum table size.
+ </p>
+<p>
+ Use <span><strong class="command">log-only yes</strong></span> to test rate limiting parameters
+ without actually dropping any requests.
+ </p>
+<p>
+ Responses dropped by rate limits are included in the
+ <span><strong class="command">RateDropped</strong></span> and <span><strong class="command">QryDropped</strong></span>
+ statistics.
+ Responses that truncated by rate limits are included in
+ <span><strong class="command">RateSlipped</strong></span> and <span><strong class="command">RespTruncated</strong></span>.
+ </p>
+</div>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
@@ -6265,7 +6543,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2590613"></a><span><strong class="command">statistics-channels</strong></span> Statement Definition and
+<a name="id2590101"></a><span><strong class="command">statistics-channels</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p>
The <span><strong class="command">statistics-channels</strong></span> statement
@@ -6349,7 +6627,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2590920"></a><span><strong class="command">trusted-keys</strong></span> Statement Definition
+<a name="id2590408"></a><span><strong class="command">trusted-keys</strong></span> Statement Definition
and Usage</h3></div></div></div>
<p>
The <span><strong class="command">trusted-keys</strong></span> statement defines
@@ -6389,7 +6667,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2590967"></a><span><strong class="command">managed-keys</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2590523"></a><span><strong class="command">managed-keys</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">managed-keys</strong></span> {
<em class="replaceable"><code>name</code></em> <code class="literal">initial-key</code> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key-data</code></em> ;
[<span class="optional"> <em class="replaceable"><code>name</code></em> <code class="literal">initial-key</code> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key-data</code></em> ; [<span class="optional">...</span>]</span>]
@@ -6527,7 +6805,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2591409"></a><span><strong class="command">view</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2590965"></a><span><strong class="command">view</strong></span> Statement Definition and Usage</h3></div></div></div>
<p>
The <span><strong class="command">view</strong></span> statement is a powerful
feature
@@ -6839,10 +7117,10 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2593189"></a><span><strong class="command">zone</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2592813"></a><span><strong class="command">zone</strong></span> Statement Definition and Usage</h3></div></div></div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2593196"></a>Zone Types</h4></div></div></div>
+<a name="id2592821"></a>Zone Types</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -7160,7 +7438,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2594009"></a>Class</h4></div></div></div>
+<a name="id2593429"></a>Class</h4></div></div></div>
<p>
The zone's name may optionally be followed by a class. If
a class is not specified, class <code class="literal">IN</code> (for <code class="varname">Internet</code>),
@@ -7182,7 +7460,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2594042"></a>Zone Options</h4></div></div></div>
+<a name="id2593462"></a>Zone Options</h4></div></div></div>
<div class="variablelist"><dl>
<dt><span class="term"><span><strong class="command">allow-notify</strong></span></span></dt>
<dd><p>
@@ -8098,7 +8376,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2596875"></a>Zone File</h2></div></div></div>
+<a name="id2596432"></a>Zone File</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="types_of_resource_records_and_when_to_use_them"></a>Types of Resource Records and When to Use Them</h3></div></div></div>
@@ -8111,7 +8389,7 @@ example.com. NS ns2.example.net.
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2596893"></a>Resource Records</h4></div></div></div>
+<a name="id2596450"></a>Resource Records</h4></div></div></div>
<p>
A domain name identifies a node. Each node has a set of
resource information, which may be empty. The set of resource
@@ -8848,7 +9126,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2598517"></a>Textual expression of RRs</h4></div></div></div>
+<a name="id2598005"></a>Textual expression of RRs</h4></div></div></div>
<p>
RRs are represented in binary form in the packets of the DNS
protocol, and are usually represented in highly encoded form
@@ -9051,7 +9329,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2599037"></a>Discussion of MX Records</h3></div></div></div>
+<a name="id2598594"></a>Discussion of MX Records</h3></div></div></div>
<p>
As described above, domain servers store information as a
series of resource records, each of which contains a particular
@@ -9307,7 +9585,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2599585"></a>Inverse Mapping in IPv4</h3></div></div></div>
+<a name="id2599209"></a>Inverse Mapping in IPv4</h3></div></div></div>
<p>
Reverse name resolution (that is, translation from IP address
to name) is achieved by means of the <span class="emphasis"><em>in-addr.arpa</em></span> domain
@@ -9368,7 +9646,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2599848"></a>Other Zone File Directives</h3></div></div></div>
+<a name="id2599336"></a>Other Zone File Directives</h3></div></div></div>
<p>
The Master File Format was initially defined in RFC 1035 and
has subsequently been extended. While the Master File Format
@@ -9383,7 +9661,7 @@ example.com. NS ns2.example.net.
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2599939"></a>The <span><strong class="command">@</strong></span> (at-sign)</h4></div></div></div>
+<a name="id2599358"></a>The <span><strong class="command">@</strong></span> (at-sign)</h4></div></div></div>
<p>
When used in the label (or name) field, the asperand or
at-sign (@) symbol represents the current origin.
@@ -9394,7 +9672,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2599955"></a>The <span><strong class="command">$ORIGIN</strong></span> Directive</h4></div></div></div>
+<a name="id2599374"></a>The <span><strong class="command">$ORIGIN</strong></span> Directive</h4></div></div></div>
<p>
Syntax: <span><strong class="command">$ORIGIN</strong></span>
<em class="replaceable"><code>domain-name</code></em>
@@ -9423,7 +9701,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2600016"></a>The <span><strong class="command">$INCLUDE</strong></span> Directive</h4></div></div></div>
+<a name="id2599435"></a>The <span><strong class="command">$INCLUDE</strong></span> Directive</h4></div></div></div>
<p>
Syntax: <span><strong class="command">$INCLUDE</strong></span>
<em class="replaceable"><code>filename</code></em>
@@ -9459,7 +9737,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2600153"></a>The <span><strong class="command">$TTL</strong></span> Directive</h4></div></div></div>
+<a name="id2599505"></a>The <span><strong class="command">$TTL</strong></span> Directive</h4></div></div></div>
<p>
Syntax: <span><strong class="command">$TTL</strong></span>
<em class="replaceable"><code>default-ttl</code></em>
@@ -9478,7 +9756,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2600189"></a><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</h3></div></div></div>
+<a name="id2599541"></a><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</h3></div></div></div>
<p>
Syntax: <span><strong class="command">$GENERATE</strong></span>
<em class="replaceable"><code>range</code></em>
@@ -9902,7 +10180,7 @@ HOST-127.EXAMPLE. MX 0 .
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2601075"></a>Name Server Statistics Counters</h4></div></div></div>
+<a name="id2600631"></a>Name Server Statistics Counters</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -10467,12 +10745,38 @@ HOST-127.EXAMPLE. MX 0 .
</p>
</td>
</tr>
+<tr>
+<td>
+ <p><span><strong class="command">RateDropped</strong></span></p>
+ </td>
+<td>
+ <p><span><strong class="command"></strong></span></p>
+ </td>
+<td>
+ <p>
+ Responses dropped by rate limits.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p><span><strong class="command">RateSlipped</strong></span></p>
+ </td>
+<td>
+ <p><span><strong class="command"></strong></span></p>
+ </td>
+<td>
+ <p>
+ Responses truncated by rate limits.
+ </p>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2602716"></a>Zone Maintenance Statistics Counters</h4></div></div></div>
+<a name="id2602268"></a>Zone Maintenance Statistics Counters</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -10626,7 +10930,7 @@ HOST-127.EXAMPLE. MX 0 .
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2603099"></a>Resolver Statistics Counters</h4></div></div></div>
+<a name="id2602720"></a>Resolver Statistics Counters</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -11009,7 +11313,7 @@ HOST-127.EXAMPLE. MX 0 .
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2604121"></a>Socket I/O Statistics Counters</h4></div></div></div>
+<a name="id2603673"></a>Socket I/O Statistics Counters</h4></div></div></div>
<p>
Socket I/O statistics counters are defined per socket
types, which are
@@ -11164,7 +11468,7 @@ HOST-127.EXAMPLE. MX 0 .
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2604494"></a>Compatibility with <span class="emphasis"><em>BIND</em></span> 8 Counters</h4></div></div></div>
+<a name="id2604115"></a>Compatibility with <span class="emphasis"><em>BIND</em></span> 8 Counters</h4></div></div></div>
<p>
Most statistics counters that were available
in <span><strong class="command">BIND</strong></span> 8 are also supported in
diff --git a/doc/arm/Bv9ARM.ch07.html b/doc/arm/Bv9ARM.ch07.html
index fd1747ec2cda..bba5e3498be9 100644
--- a/doc/arm/Bv9ARM.ch07.html
+++ b/doc/arm/Bv9ARM.ch07.html
@@ -46,10 +46,10 @@
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604722"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604342"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604871">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604999">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604491">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604551">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt>
</dl>
@@ -114,7 +114,7 @@ zone "example.com" {
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2604722"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span>
+<a name="id2604342"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span>
</h2></div></div></div>
<p>
On UNIX servers, it is possible to run <acronym class="acronym">BIND</acronym>
@@ -140,7 +140,7 @@ zone "example.com" {
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2604871"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div>
+<a name="id2604491"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div>
<p>
In order for a <span><strong class="command">chroot</strong></span> environment
to
@@ -168,7 +168,7 @@ zone "example.com" {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2604999"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div>
+<a name="id2604551"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div>
<p>
Prior to running the <span><strong class="command">named</strong></span> daemon,
use
diff --git a/doc/arm/Bv9ARM.ch08.html b/doc/arm/Bv9ARM.ch08.html
index 35d6bbdf0925..bfa7458ba819 100644
--- a/doc/arm/Bv9ARM.ch08.html
+++ b/doc/arm/Bv9ARM.ch08.html
@@ -45,18 +45,18 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605147">Common Problems</a></span></dt>
-<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2605153">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605164">Incrementing and Changing the Serial Number</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605181">Where Can I Get Help?</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604631">Common Problems</a></span></dt>
+<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2604636">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604648">Incrementing and Changing the Serial Number</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604665">Where Can I Get Help?</a></span></dt>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2605147"></a>Common Problems</h2></div></div></div>
+<a name="id2604631"></a>Common Problems</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2605153"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div>
+<a name="id2604636"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div>
<p>
The best solution to solving installation and
configuration issues is to take preventative measures by setting
@@ -68,7 +68,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2605164"></a>Incrementing and Changing the Serial Number</h2></div></div></div>
+<a name="id2604648"></a>Incrementing and Changing the Serial Number</h2></div></div></div>
<p>
Zone serial numbers are just numbers &#8212; they aren't
date related. A lot of people set them to a number that
@@ -95,7 +95,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2605181"></a>Where Can I Get Help?</h2></div></div></div>
+<a name="id2604665"></a>Where Can I Get Help?</h2></div></div></div>
<p>
The Internet Systems Consortium
(<acronym class="acronym">ISC</acronym>) offers a wide range
diff --git a/doc/arm/Bv9ARM.ch09.html b/doc/arm/Bv9ARM.ch09.html
index 83578ad70327..0fe9283ab575 100644
--- a/doc/arm/Bv9ARM.ch09.html
+++ b/doc/arm/Bv9ARM.ch09.html
@@ -45,31 +45,31 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605243">Acknowledgments</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2604932">Acknowledgments</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#historical_dns_information">A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605483">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605104">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#ipv6addresses">IPv6 addresses (AAAA)</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bibliography">Bibliography (and Suggested Reading)</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#rfcs">Request for Comments (RFCs)</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#internet_drafts">Internet Drafts</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608695">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608315">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bind9.library">BIND 9 DNS Library Support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610921">Prerequisite</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609361">Compilation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609385">Installation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609416">Known Defects/Restrictions</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610380">The dns.conf File</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610407">Sample Applications</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611312">Library References</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609722">Prerequisite</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609732">Compilation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609756">Installation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609787">Known Defects/Restrictions</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609864">The dns.conf File</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609891">Sample Applications</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611000">Library References</a></span></dt>
</dl></dd>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2605243"></a>Acknowledgments</h2></div></div></div>
+<a name="id2604932"></a>Acknowledgments</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="historical_dns_information"></a>A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym>
@@ -172,7 +172,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2605483"></a>General <acronym class="acronym">DNS</acronym> Reference Information</h2></div></div></div>
+<a name="id2605104"></a>General <acronym class="acronym">DNS</acronym> Reference Information</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="ipv6addresses"></a>IPv6 addresses (AAAA)</h3></div></div></div>
@@ -260,17 +260,17 @@
</p>
<div class="bibliography">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2605739"></a>Bibliography</h4></div></div></div>
+<a name="id2605291"></a>Bibliography</h4></div></div></div>
<div class="bibliodiv">
<h3 class="title">Standards</h3>
<div class="biblioentry">
-<a name="id2605750"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p>
+<a name="id2605302"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605773"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p>
+<a name="id2605325"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605797"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Implementation and
+<a name="id2605349"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Implementation and
Specification</i>. </span><span class="pubdate">November 1987. </span></p>
</div>
</div>
@@ -278,42 +278,42 @@
<h3 class="title">
<a name="proposed_standards"></a>Proposed Standards</h3>
<div class="biblioentry">
-<a name="id2605833"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym>
+<a name="id2605385"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym>
Specification</i>. </span><span class="pubdate">July 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605860"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym>
+<a name="id2605412"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym>
Queries</i>. </span><span class="pubdate">March 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605885"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p>
+<a name="id2605437"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605910"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p>
+<a name="id2605462"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605933"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p>
+<a name="id2605485"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605989"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p>
+<a name="id2605541"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606016"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p>
+<a name="id2605568"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606042"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p>
+<a name="id2605594"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606104"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2605656"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606134"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2605686"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606164"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p>
+<a name="id2605716"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606190"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret
+<a name="id2605742"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret
Key Transaction Authentication for DNS
(GSS-TSIG)</i>. </span><span class="pubdate">October 2003. </span></p>
</div>
@@ -322,19 +322,19 @@
<h3 class="title">
<acronym class="acronym">DNS</acronym> Security Proposed Standards</h3>
<div class="biblioentry">
-<a name="id2606273"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p>
+<a name="id2605825"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606299"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p>
+<a name="id2605851"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606336"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p>
+<a name="id2605888"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606401"></a><p>[<abbr class="abbrev">RFC4034</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
+<a name="id2605953"></a><p>[<abbr class="abbrev">RFC4034</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606466"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS
+<a name="id2606018"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS
Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
</div>
</div>
@@ -342,146 +342,146 @@
<h3 class="title">Other Important RFCs About <acronym class="acronym">DNS</acronym>
Implementation</h3>
<div class="biblioentry">
-<a name="id2606539"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely
+<a name="id2606091"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely
Deployed <acronym class="acronym">DNS</acronym> Software.</i>. </span><span class="pubdate">October 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606565"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation
+<a name="id2606117"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation
Errors and Suggested Fixes</i>. </span><span class="pubdate">October 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606633"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p>
+<a name="id2606253"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606668"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym>
+<a name="id2606289"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym>
Queries for IPv6 Addresses</i>. </span><span class="pubdate">May 2005. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">Resource Record Types</h3>
<div class="biblioentry">
-<a name="id2606714"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p>
+<a name="id2606334"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606772"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p>
+<a name="id2606392"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606809"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using
+<a name="id2606429"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using
the Domain Name System</i>. </span><span class="pubdate">June 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606844"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the
+<a name="id2606465"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the
Domain
Name System</i>. </span><span class="pubdate">January 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606899"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the
+<a name="id2606519"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the
Location of
Services.</i>. </span><span class="pubdate">October 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606937"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to
+<a name="id2606557"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to
Distribute MIXER
Conformant Global Address Mapping</i>. </span><span class="pubdate">January 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606963"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p>
+<a name="id2606583"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606988"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606609"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607015"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606635"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607042"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606662"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607081"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606701"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607111"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606731"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607141"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p>
+<a name="id2606761"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607184"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2606804"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607217"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p>
+<a name="id2606837"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607312"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p>
+<a name="id2606864"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607335"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP
+<a name="id2606887"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP
version 6</i>. </span><span class="pubdate">October 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607393"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p>
+<a name="id2606945"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">
<acronym class="acronym">DNS</acronym> and the Internet</h3>
<div class="biblioentry">
-<a name="id2607425"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names
+<a name="id2606977"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names
and Other Types</i>. </span><span class="pubdate">April 1989. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607450"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and
+<a name="id2607002"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and
Support</i>. </span><span class="pubdate">October 1989. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607473"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p>
+<a name="id2607025"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607496"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p>
+<a name="id2607048"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607542"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p>
+<a name="id2607094"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607565"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2607117"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">
<acronym class="acronym">DNS</acronym> Operations</h3>
<div class="biblioentry">
-<a name="id2607623"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p>
+<a name="id2607175"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607646"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File
+<a name="id2607198"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File
Configuration Errors</i>. </span><span class="pubdate">October 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607673"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and
+<a name="id2607225"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and
Configuration Errors</i>. </span><span class="pubdate">February 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607700"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p>
+<a name="id2607252"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607736"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for
+<a name="id2607288"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for
Network Services.</i>. </span><span class="pubdate">October 1997. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">Internationalized Domain Names</h3>
<div class="biblioentry">
-<a name="id2607782"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names,
+<a name="id2607402"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names,
and the Other Internet protocols</i>. </span><span class="pubdate">May 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607814"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
+<a name="id2607434"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607860"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p>
+<a name="id2607480"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607895"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode
+<a name="id2607515"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode
for Internationalized Domain Names in
Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
</div>
@@ -497,47 +497,47 @@
</p>
</div>
<div class="biblioentry">
-<a name="id2607940"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String
+<a name="id2607560"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String
Attributes</i>. </span><span class="pubdate">May 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607962"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p>
+<a name="id2607582"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607988"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load
+<a name="id2607608"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load
Balancing</i>. </span><span class="pubdate">April 1995. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608013"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p>
+<a name="id2607634"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608037"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p>
+<a name="id2607657"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608083"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p>
+<a name="id2607703"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608106"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p>
+<a name="id2607726"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608133"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via
+<a name="id2607753"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via
Shared Unicast Addresses</i>. </span><span class="pubdate">April 2002. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608158"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p>
+<a name="id2607779"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">Obsolete and Unimplemented Experimental RFC</h3>
<div class="biblioentry">
-<a name="id2608202"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical
+<a name="id2607822"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical
Location</i>. </span><span class="pubdate">November 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608260"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p>
+<a name="id2607880"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608286"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation
+<a name="id2607907"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation
and Renumbering</i>. </span><span class="pubdate">July 2000. </span></p>
</div>
</div>
@@ -551,39 +551,39 @@
</p>
</div>
<div class="biblioentry">
-<a name="id2608334"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p>
+<a name="id2607955"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608374"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p>
+<a name="id2607994"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608401"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2608021"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608430"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC)
+<a name="id2608051"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC)
Signing Authority</i>. </span><span class="pubdate">November 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608456"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p>
+<a name="id2608076"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608483"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p>
+<a name="id2608103"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608519"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p>
+<a name="id2608139"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608555"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p>
+<a name="id2608176"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608582"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p>
+<a name="id2608202"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608609"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record
+<a name="id2608229"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record
(RR) Secure Entry Point (SEP) Flag</i>. </span><span class="pubdate">April 2004. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608653"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p>
+<a name="id2608274"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p>
</div>
</div>
</div>
@@ -604,14 +604,14 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2608695"></a>Other Documents About <acronym class="acronym">BIND</acronym>
+<a name="id2608315"></a>Other Documents About <acronym class="acronym">BIND</acronym>
</h3></div></div></div>
<p></p>
<div class="bibliography">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2608705"></a>Bibliography</h4></div></div></div>
+<a name="id2608325"></a>Bibliography</h4></div></div></div>
<div class="biblioentry">
-<a name="id2608707"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p>
+<a name="id2608327"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p>
</div>
</div>
</div>
@@ -648,7 +648,7 @@
</ul></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2610921"></a>Prerequisite</h3></div></div></div>
+<a name="id2609722"></a>Prerequisite</h3></div></div></div>
<p>GNU make is required to build the export libraries (other
part of BIND 9 can still be built with other types of make). In
the reminder of this document, "make" means GNU make. Note that
@@ -657,7 +657,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609361"></a>Compilation</h3></div></div></div>
+<a name="id2609732"></a>Compilation</h3></div></div></div>
<pre class="screen">
$ <strong class="userinput"><code>./configure --enable-exportlib <em class="replaceable"><code>[other flags]</code></em></code></strong>
$ <strong class="userinput"><code>make</code></strong>
@@ -672,7 +672,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609385"></a>Installation</h3></div></div></div>
+<a name="id2609756"></a>Installation</h3></div></div></div>
<pre class="screen">
$ <strong class="userinput"><code>cd lib/export</code></strong>
$ <strong class="userinput"><code>make install</code></strong>
@@ -694,7 +694,7 @@ $ <strong class="userinput"><code>make install</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609416"></a>Known Defects/Restrictions</h3></div></div></div>
+<a name="id2609787"></a>Known Defects/Restrictions</h3></div></div></div>
<div class="itemizedlist"><ul type="disc">
<li><p>Currently, win32 is not supported for the export
library. (Normal BIND 9 application can be built as
@@ -734,7 +734,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2610380"></a>The dns.conf File</h3></div></div></div>
+<a name="id2609864"></a>The dns.conf File</h3></div></div></div>
<p>The IRS library supports an "advanced" configuration file
related to the DNS library for configuration parameters that
would be beyond the capability of the
@@ -752,14 +752,14 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2610407"></a>Sample Applications</h3></div></div></div>
+<a name="id2609891"></a>Sample Applications</h3></div></div></div>
<p>Some sample application programs using this API are
provided for reference. The following is a brief description of
these applications.
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610416"></a>sample: a simple stub resolver utility</h4></div></div></div>
+<a name="id2609899"></a>sample: a simple stub resolver utility</h4></div></div></div>
<p>
It sends a query of a given name (of a given optional RR type) to a
specified recursive server, and prints the result as a list of
@@ -823,7 +823,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610506"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div>
+<a name="id2609990"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div>
<p>
Similar to "sample", but accepts a list
of (query) domain names as a separate file and resolves the names
@@ -864,7 +864,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610560"></a>sample-request: a simple DNS transaction client</h4></div></div></div>
+<a name="id2610316"></a>sample-request: a simple DNS transaction client</h4></div></div></div>
<p>
It sends a query to a specified server, and
prints the response with minimal processing. It doesn't act as a
@@ -905,7 +905,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610624"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div>
+<a name="id2610380"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div>
<p>
This is a test program
to check getaddrinfo() and getnameinfo() behavior. It takes a
@@ -922,7 +922,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610638"></a>sample-update: a simple dynamic update client program</h4></div></div></div>
+<a name="id2610395"></a>sample-update: a simple dynamic update client program</h4></div></div></div>
<p>
It accepts a single update command as a
command-line argument, sends an update request message to the
@@ -1017,7 +1017,7 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2611248"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div>
+<a name="id2610936"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div>
<p>
It checks a set
of domains to see the name servers of the domains behave
@@ -1074,7 +1074,7 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2611312"></a>Library References</h3></div></div></div>
+<a name="id2611000"></a>Library References</h3></div></div></div>
<p>As of this writing, there is no formal "manual" of the
libraries, except this document, header files (some of them
provide pretty detailed explanations), and sample application
diff --git a/doc/arm/Bv9ARM.html b/doc/arm/Bv9ARM.html
index 039aa9a650f4..ba198d6ddf9c 100644
--- a/doc/arm/Bv9ARM.html
+++ b/doc/arm/Bv9ARM.html
@@ -83,7 +83,7 @@
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568372">Name Server Operations</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568377">Tools for Use With the Name Server Daemon</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2570600">Signals</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2569430">Signals</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="chapter"><a href="Bv9ARM.ch04.html">4. Advanced DNS Features</a></span></dt>
@@ -92,64 +92,64 @@
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dynamic_update">Dynamic Update</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#journal">The journal file</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#incremental_zone_transfers">Incremental Zone Transfers (IXFR)</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571175">Split DNS</a></span></dt>
-<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571193">Example split DNS setup</a></span></dt></dl></dd>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2563997">Split DNS</a></span></dt>
+<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564016">Example split DNS setup</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#tsig">TSIG</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571763">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571836">Copying the Shared Secret to Both Machines</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571847">Informing the Servers of the Key's Existence</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571883">Instructing the Server to Use the Key</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571941">TSIG Key Based Access Control</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564003">Errors</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570661">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570734">Copying the Shared Secret to Both Machines</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570745">Informing the Servers of the Key's Existence</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570781">Instructing the Server to Use the Key</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570839">TSIG Key Based Access Control</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570888">Errors</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2564017">TKEY</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572326">SIG(0)</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570902">TKEY</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570951">SIG(0)</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572394">Generating Keys</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572541">Signing the Zone</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572622">Configuring Servers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571156">Generating Keys</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571235">Signing the Zone</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571384">Configuring Servers</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563413">Converting from insecure to secure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563450">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563555">Fully automatic zone signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563726">Private-type records</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563832">DNSKEY rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563845">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563878">Automatic key rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563905">NSEC3PARAM rollovers via UPDATE</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563914">Converting from NSEC to NSEC3</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563924">Converting from NSEC3 to NSEC</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563937">Converting from secure to insecure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572029">Periodic re-signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572039">NSEC3 and OPTOUT</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609113">Converting from insecure to secure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609150">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563516">Fully automatic zone signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563756">Private-type records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563794">DNSKEY rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563806">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569779">Automatic key rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569805">NSEC3PARAM rollovers via UPDATE</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569815">Converting from NSEC to NSEC3</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569825">Converting from NSEC3 to NSEC</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569837">Converting from secure to insecure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569875">Periodic re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569884">NSEC3 and OPTOUT</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572072">Validating Resolver</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609027">Authoritative Server</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608556">Validating Resolver</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608579">Authoritative Server</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2611929">Prerequisites</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610179">Building BIND 9 with PKCS#11</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612283">PKCS #11 Tools</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612382">Using the HSM</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636884">Specifying the engine on the command line</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636930">Running named with automatic zone re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609024">Prerequisites</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636218">Building BIND 9 with PKCS#11</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636343">PKCS #11 Tools</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636374">Using the HSM</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636572">Specifying the engine on the command line</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636686">Running named with automatic zone re-signing</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572842">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571672">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2573109">Address Lookups Using AAAA Records</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2573130">Address to Name Lookups Using Nibble Format</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571802">Address Lookups Using AAAA Records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571892">Address to Name Lookups Using Nibble Format</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="chapter"><a href="Bv9ARM.ch05.html">5. The <acronym class="acronym">BIND</acronym> 9 Lightweight Resolver</a></span></dt>
<dd><dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2573163">The Lightweight Resolver Library</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2571925">The Lightweight Resolver Library</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#lwresd">Running a Resolver Daemon</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="Bv9ARM.ch06.html">6. <acronym class="acronym">BIND</acronym> 9 Configuration Reference</a></span></dt>
@@ -157,58 +157,58 @@
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#configuration_file_elements">Configuration File Elements</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#address_match_lists">Address Match Lists</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574711">Comment Syntax</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2573336">Comment Syntax</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#Configuration_File_Grammar">Configuration File Grammar</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575371"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2573996"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#acl"><span><strong class="command">acl</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575561"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574186"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#controls_statement_definition_and_usage"><span><strong class="command">controls</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575921"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575938"><span><strong class="command">include</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574614"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574631"><span><strong class="command">include</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575961"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575985"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576075"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576269"><span><strong class="command">logging</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574654"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574678"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574769"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574963"><span><strong class="command">logging</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578364"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578438"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578502"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578546"><span><strong class="command">masters</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577174"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577248"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577312"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577355"><span><strong class="command">masters</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578567"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577377"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#options"><span><strong class="command">options</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_grammar"><span><strong class="command">server</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590613"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590101"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#trusted-keys"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590920"><span><strong class="command">trusted-keys</strong></span> Statement Definition
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590408"><span><strong class="command">trusted-keys</strong></span> Statement Definition
and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590967"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590523"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#managed-keys"><span><strong class="command">managed-keys</strong></span> Statement Definition
and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591409"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590965"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span>
Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593189"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592813"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596875">Zone File</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596432">Zone File</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599037">Discussion of MX Records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598594">Discussion of MX Records</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599585">Inverse Mapping in IPv4</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599848">Other Zone File Directives</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600189"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599209">Inverse Mapping in IPv4</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599336">Other Zone File Directives</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599541"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#statistics">BIND9 Statistics</a></span></dt>
@@ -217,41 +217,41 @@
<dt><span class="chapter"><a href="Bv9ARM.ch07.html">7. <acronym class="acronym">BIND</acronym> 9 Security Considerations</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604722"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604342"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604871">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604999">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604491">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604551">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="Bv9ARM.ch08.html">8. Troubleshooting</a></span></dt>
<dd><dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605147">Common Problems</a></span></dt>
-<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2605153">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605164">Incrementing and Changing the Serial Number</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605181">Where Can I Get Help?</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604631">Common Problems</a></span></dt>
+<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2604636">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604648">Incrementing and Changing the Serial Number</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604665">Where Can I Get Help?</a></span></dt>
</dl></dd>
<dt><span class="appendix"><a href="Bv9ARM.ch09.html">A. Appendices</a></span></dt>
<dd><dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605243">Acknowledgments</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2604932">Acknowledgments</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#historical_dns_information">A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605483">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605104">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#ipv6addresses">IPv6 addresses (AAAA)</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bibliography">Bibliography (and Suggested Reading)</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#rfcs">Request for Comments (RFCs)</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#internet_drafts">Internet Drafts</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608695">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608315">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bind9.library">BIND 9 DNS Library Support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610921">Prerequisite</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609361">Compilation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609385">Installation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609416">Known Defects/Restrictions</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610380">The dns.conf File</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610407">Sample Applications</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611312">Library References</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609722">Prerequisite</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609732">Compilation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609756">Installation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609787">Known Defects/Restrictions</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609864">The dns.conf File</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609891">Sample Applications</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611000">Library References</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="reference"><a href="Bv9ARM.ch10.html">I. Manual pages</a></span></dt>
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
index b38b393da7c0..ef343561a6f1 100644
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -822,591 +822,597 @@ endobj
(6.2.16.20 Response Policy Zone \(RPZ\) Rewriting)
endobj
553 0 obj
-<< /S /GoTo /D (subsection.6.2.17) >>
+<< /S /GoTo /D (subsubsection.6.2.16.21) >>
endobj
556 0 obj
-(6.2.17 server Statement Grammar)
+(6.2.16.21 Response Rate Limiting)
endobj
557 0 obj
-<< /S /GoTo /D (subsection.6.2.18) >>
+<< /S /GoTo /D (subsection.6.2.17) >>
endobj
560 0 obj
-(6.2.18 server Statement Definition and Usage)
+(6.2.17 server Statement Grammar)
endobj
561 0 obj
-<< /S /GoTo /D (subsection.6.2.19) >>
+<< /S /GoTo /D (subsection.6.2.18) >>
endobj
564 0 obj
-(6.2.19 statistics-channels Statement Grammar)
+(6.2.18 server Statement Definition and Usage)
endobj
565 0 obj
-<< /S /GoTo /D (subsection.6.2.20) >>
+<< /S /GoTo /D (subsection.6.2.19) >>
endobj
568 0 obj
-(6.2.20 statistics-channels Statement Definition and Usage)
+(6.2.19 statistics-channels Statement Grammar)
endobj
569 0 obj
-<< /S /GoTo /D (subsection.6.2.21) >>
+<< /S /GoTo /D (subsection.6.2.20) >>
endobj
572 0 obj
-(6.2.21 trusted-keys Statement Grammar)
+(6.2.20 statistics-channels Statement Definition and Usage)
endobj
573 0 obj
-<< /S /GoTo /D (subsection.6.2.22) >>
+<< /S /GoTo /D (subsection.6.2.21) >>
endobj
576 0 obj
-(6.2.22 trusted-keys Statement Definition and Usage)
+(6.2.21 trusted-keys Statement Grammar)
endobj
577 0 obj
-<< /S /GoTo /D (subsection.6.2.23) >>
+<< /S /GoTo /D (subsection.6.2.22) >>
endobj
580 0 obj
-(6.2.23 managed-keys Statement Grammar)
+(6.2.22 trusted-keys Statement Definition and Usage)
endobj
581 0 obj
-<< /S /GoTo /D (subsection.6.2.24) >>
+<< /S /GoTo /D (subsection.6.2.23) >>
endobj
584 0 obj
-(6.2.24 managed-keys Statement Definition and Usage)
+(6.2.23 managed-keys Statement Grammar)
endobj
585 0 obj
-<< /S /GoTo /D (subsection.6.2.25) >>
+<< /S /GoTo /D (subsection.6.2.24) >>
endobj
588 0 obj
-(6.2.25 view Statement Grammar)
+(6.2.24 managed-keys Statement Definition and Usage)
endobj
589 0 obj
-<< /S /GoTo /D (subsection.6.2.26) >>
+<< /S /GoTo /D (subsection.6.2.25) >>
endobj
592 0 obj
-(6.2.26 view Statement Definition and Usage)
+(6.2.25 view Statement Grammar)
endobj
593 0 obj
-<< /S /GoTo /D (subsection.6.2.27) >>
+<< /S /GoTo /D (subsection.6.2.26) >>
endobj
596 0 obj
-(6.2.27 zone Statement Grammar)
+(6.2.26 view Statement Definition and Usage)
endobj
597 0 obj
-<< /S /GoTo /D (subsection.6.2.28) >>
+<< /S /GoTo /D (subsection.6.2.27) >>
endobj
600 0 obj
-(6.2.28 zone Statement Definition and Usage)
+(6.2.27 zone Statement Grammar)
endobj
601 0 obj
-<< /S /GoTo /D (subsubsection.6.2.28.1) >>
+<< /S /GoTo /D (subsection.6.2.28) >>
endobj
604 0 obj
-(6.2.28.1 Zone Types)
+(6.2.28 zone Statement Definition and Usage)
endobj
605 0 obj
-<< /S /GoTo /D (subsubsection.6.2.28.2) >>
+<< /S /GoTo /D (subsubsection.6.2.28.1) >>
endobj
608 0 obj
-(6.2.28.2 Class)
+(6.2.28.1 Zone Types)
endobj
609 0 obj
-<< /S /GoTo /D (subsubsection.6.2.28.3) >>
+<< /S /GoTo /D (subsubsection.6.2.28.2) >>
endobj
612 0 obj
-(6.2.28.3 Zone Options)
+(6.2.28.2 Class)
endobj
613 0 obj
-<< /S /GoTo /D (subsubsection.6.2.28.4) >>
+<< /S /GoTo /D (subsubsection.6.2.28.3) >>
endobj
616 0 obj
-(6.2.28.4 Dynamic Update Policies)
+(6.2.28.3 Zone Options)
endobj
617 0 obj
-<< /S /GoTo /D (section.6.3) >>
+<< /S /GoTo /D (subsubsection.6.2.28.4) >>
endobj
620 0 obj
-(6.3 Zone File)
+(6.2.28.4 Dynamic Update Policies)
endobj
621 0 obj
-<< /S /GoTo /D (subsection.6.3.1) >>
+<< /S /GoTo /D (section.6.3) >>
endobj
624 0 obj
-(6.3.1 Types of Resource Records and When to Use Them)
+(6.3 Zone File)
endobj
625 0 obj
-<< /S /GoTo /D (subsubsection.6.3.1.1) >>
+<< /S /GoTo /D (subsection.6.3.1) >>
endobj
628 0 obj
-(6.3.1.1 Resource Records)
+(6.3.1 Types of Resource Records and When to Use Them)
endobj
629 0 obj
-<< /S /GoTo /D (subsubsection.6.3.1.2) >>
+<< /S /GoTo /D (subsubsection.6.3.1.1) >>
endobj
632 0 obj
-(6.3.1.2 Textual expression of RRs)
+(6.3.1.1 Resource Records)
endobj
633 0 obj
-<< /S /GoTo /D (subsection.6.3.2) >>
+<< /S /GoTo /D (subsubsection.6.3.1.2) >>
endobj
636 0 obj
-(6.3.2 Discussion of MX Records)
+(6.3.1.2 Textual expression of RRs)
endobj
637 0 obj
-<< /S /GoTo /D (subsection.6.3.3) >>
+<< /S /GoTo /D (subsection.6.3.2) >>
endobj
640 0 obj
-(6.3.3 Setting TTLs)
+(6.3.2 Discussion of MX Records)
endobj
641 0 obj
-<< /S /GoTo /D (subsection.6.3.4) >>
+<< /S /GoTo /D (subsection.6.3.3) >>
endobj
644 0 obj
-(6.3.4 Inverse Mapping in IPv4)
+(6.3.3 Setting TTLs)
endobj
645 0 obj
-<< /S /GoTo /D (subsection.6.3.5) >>
+<< /S /GoTo /D (subsection.6.3.4) >>
endobj
648 0 obj
-(6.3.5 Other Zone File Directives)
+(6.3.4 Inverse Mapping in IPv4)
endobj
649 0 obj
-<< /S /GoTo /D (subsubsection.6.3.5.1) >>
+<< /S /GoTo /D (subsection.6.3.5) >>
endobj
652 0 obj
-(6.3.5.1 The @ \(at-sign\))
+(6.3.5 Other Zone File Directives)
endobj
653 0 obj
-<< /S /GoTo /D (subsubsection.6.3.5.2) >>
+<< /S /GoTo /D (subsubsection.6.3.5.1) >>
endobj
656 0 obj
-(6.3.5.2 The \044ORIGIN Directive)
+(6.3.5.1 The @ \(at-sign\))
endobj
657 0 obj
-<< /S /GoTo /D (subsubsection.6.3.5.3) >>
+<< /S /GoTo /D (subsubsection.6.3.5.2) >>
endobj
660 0 obj
-(6.3.5.3 The \044INCLUDE Directive)
+(6.3.5.2 The \044ORIGIN Directive)
endobj
661 0 obj
-<< /S /GoTo /D (subsubsection.6.3.5.4) >>
+<< /S /GoTo /D (subsubsection.6.3.5.3) >>
endobj
664 0 obj
-(6.3.5.4 The \044TTL Directive)
+(6.3.5.3 The \044INCLUDE Directive)
endobj
665 0 obj
-<< /S /GoTo /D (subsection.6.3.6) >>
+<< /S /GoTo /D (subsubsection.6.3.5.4) >>
endobj
668 0 obj
-(6.3.6 BIND Master File Extension: the \044GENERATE Directive)
+(6.3.5.4 The \044TTL Directive)
endobj
669 0 obj
-<< /S /GoTo /D (subsection.6.3.7) >>
+<< /S /GoTo /D (subsection.6.3.6) >>
endobj
672 0 obj
-(6.3.7 Additional File Formats)
+(6.3.6 BIND Master File Extension: the \044GENERATE Directive)
endobj
673 0 obj
-<< /S /GoTo /D (section.6.4) >>
+<< /S /GoTo /D (subsection.6.3.7) >>
endobj
676 0 obj
-(6.4 BIND9 Statistics)
+(6.3.7 Additional File Formats)
endobj
677 0 obj
-<< /S /GoTo /D (subsubsection.6.4.0.1) >>
+<< /S /GoTo /D (section.6.4) >>
endobj
680 0 obj
-(6.4.0.1 The Statistics File)
+(6.4 BIND9 Statistics)
endobj
681 0 obj
-<< /S /GoTo /D (subsection.6.4.1) >>
+<< /S /GoTo /D (subsubsection.6.4.0.1) >>
endobj
684 0 obj
-(6.4.1 Statistics Counters)
+(6.4.0.1 The Statistics File)
endobj
685 0 obj
-<< /S /GoTo /D (subsubsection.6.4.1.1) >>
+<< /S /GoTo /D (subsection.6.4.1) >>
endobj
688 0 obj
-(6.4.1.1 Name Server Statistics Counters)
+(6.4.1 Statistics Counters)
endobj
689 0 obj
-<< /S /GoTo /D (subsubsection.6.4.1.2) >>
+<< /S /GoTo /D (subsubsection.6.4.1.1) >>
endobj
692 0 obj
-(6.4.1.2 Zone Maintenance Statistics Counters)
+(6.4.1.1 Name Server Statistics Counters)
endobj
693 0 obj
-<< /S /GoTo /D (subsubsection.6.4.1.3) >>
+<< /S /GoTo /D (subsubsection.6.4.1.2) >>
endobj
696 0 obj
-(6.4.1.3 Resolver Statistics Counters)
+(6.4.1.2 Zone Maintenance Statistics Counters)
endobj
697 0 obj
-<< /S /GoTo /D (subsubsection.6.4.1.4) >>
+<< /S /GoTo /D (subsubsection.6.4.1.3) >>
endobj
700 0 obj
-(6.4.1.4 Socket I/O Statistics Counters)
+(6.4.1.3 Resolver Statistics Counters)
endobj
701 0 obj
-<< /S /GoTo /D (subsubsection.6.4.1.5) >>
+<< /S /GoTo /D (subsubsection.6.4.1.4) >>
endobj
704 0 obj
-(6.4.1.5 Compatibility with BIND 8 Counters)
+(6.4.1.4 Socket I/O Statistics Counters)
endobj
705 0 obj
-<< /S /GoTo /D (chapter.7) >>
+<< /S /GoTo /D (subsubsection.6.4.1.5) >>
endobj
708 0 obj
-(7 BIND 9 Security Considerations)
+(6.4.1.5 Compatibility with BIND 8 Counters)
endobj
709 0 obj
-<< /S /GoTo /D (section.7.1) >>
+<< /S /GoTo /D (chapter.7) >>
endobj
712 0 obj
-(7.1 Access Control Lists)
+(7 BIND 9 Security Considerations)
endobj
713 0 obj
-<< /S /GoTo /D (section.7.2) >>
+<< /S /GoTo /D (section.7.1) >>
endobj
716 0 obj
-(7.2 Chroot and Setuid)
+(7.1 Access Control Lists)
endobj
717 0 obj
-<< /S /GoTo /D (subsection.7.2.1) >>
+<< /S /GoTo /D (section.7.2) >>
endobj
720 0 obj
-(7.2.1 The chroot Environment)
+(7.2 Chroot and Setuid)
endobj
721 0 obj
-<< /S /GoTo /D (subsection.7.2.2) >>
+<< /S /GoTo /D (subsection.7.2.1) >>
endobj
724 0 obj
-(7.2.2 Using the setuid Function)
+(7.2.1 The chroot Environment)
endobj
725 0 obj
-<< /S /GoTo /D (section.7.3) >>
+<< /S /GoTo /D (subsection.7.2.2) >>
endobj
728 0 obj
-(7.3 Dynamic Update Security)
+(7.2.2 Using the setuid Function)
endobj
729 0 obj
-<< /S /GoTo /D (chapter.8) >>
+<< /S /GoTo /D (section.7.3) >>
endobj
732 0 obj
-(8 Troubleshooting)
+(7.3 Dynamic Update Security)
endobj
733 0 obj
-<< /S /GoTo /D (section.8.1) >>
+<< /S /GoTo /D (chapter.8) >>
endobj
736 0 obj
-(8.1 Common Problems)
+(8 Troubleshooting)
endobj
737 0 obj
-<< /S /GoTo /D (subsection.8.1.1) >>
+<< /S /GoTo /D (section.8.1) >>
endobj
740 0 obj
-(8.1.1 It's not working; how can I figure out what's wrong?)
+(8.1 Common Problems)
endobj
741 0 obj
-<< /S /GoTo /D (section.8.2) >>
+<< /S /GoTo /D (subsection.8.1.1) >>
endobj
744 0 obj
-(8.2 Incrementing and Changing the Serial Number)
+(8.1.1 It's not working; how can I figure out what's wrong?)
endobj
745 0 obj
-<< /S /GoTo /D (section.8.3) >>
+<< /S /GoTo /D (section.8.2) >>
endobj
748 0 obj
-(8.3 Where Can I Get Help?)
+(8.2 Incrementing and Changing the Serial Number)
endobj
749 0 obj
-<< /S /GoTo /D (appendix.A) >>
+<< /S /GoTo /D (section.8.3) >>
endobj
752 0 obj
-(A Appendices)
+(8.3 Where Can I Get Help?)
endobj
753 0 obj
-<< /S /GoTo /D (section.A.1) >>
+<< /S /GoTo /D (appendix.A) >>
endobj
756 0 obj
-(A.1 Acknowledgments)
+(A Appendices)
endobj
757 0 obj
-<< /S /GoTo /D (subsection.A.1.1) >>
+<< /S /GoTo /D (section.A.1) >>
endobj
760 0 obj
-(A.1.1 A Brief History of the DNS and BIND)
+(A.1 Acknowledgments)
endobj
761 0 obj
-<< /S /GoTo /D (section.A.2) >>
+<< /S /GoTo /D (subsection.A.1.1) >>
endobj
764 0 obj
-(A.2 General DNS Reference Information)
+(A.1.1 A Brief History of the DNS and BIND)
endobj
765 0 obj
-<< /S /GoTo /D (subsection.A.2.1) >>
+<< /S /GoTo /D (section.A.2) >>
endobj
768 0 obj
-(A.2.1 IPv6 addresses \(AAAA\))
+(A.2 General DNS Reference Information)
endobj
769 0 obj
-<< /S /GoTo /D (section.A.3) >>
+<< /S /GoTo /D (subsection.A.2.1) >>
endobj
772 0 obj
-(A.3 Bibliography \(and Suggested Reading\))
+(A.2.1 IPv6 addresses \(AAAA\))
endobj
773 0 obj
-<< /S /GoTo /D (subsection.A.3.1) >>
+<< /S /GoTo /D (section.A.3) >>
endobj
776 0 obj
-(A.3.1 Request for Comments \(RFCs\))
+(A.3 Bibliography \(and Suggested Reading\))
endobj
777 0 obj
-<< /S /GoTo /D (subsection.A.3.2) >>
+<< /S /GoTo /D (subsection.A.3.1) >>
endobj
780 0 obj
-(A.3.2 Internet Drafts)
+(A.3.1 Request for Comments \(RFCs\))
endobj
781 0 obj
-<< /S /GoTo /D (subsection.A.3.3) >>
+<< /S /GoTo /D (subsection.A.3.2) >>
endobj
784 0 obj
-(A.3.3 Other Documents About BIND)
+(A.3.2 Internet Drafts)
endobj
785 0 obj
-<< /S /GoTo /D (section.A.4) >>
+<< /S /GoTo /D (subsection.A.3.3) >>
endobj
788 0 obj
-(A.4 BIND 9 DNS Library Support)
+(A.3.3 Other Documents About BIND)
endobj
789 0 obj
-<< /S /GoTo /D (subsection.A.4.1) >>
+<< /S /GoTo /D (section.A.4) >>
endobj
792 0 obj
-(A.4.1 Prerequisite)
+(A.4 BIND 9 DNS Library Support)
endobj
793 0 obj
-<< /S /GoTo /D (subsection.A.4.2) >>
+<< /S /GoTo /D (subsection.A.4.1) >>
endobj
796 0 obj
-(A.4.2 Compilation)
+(A.4.1 Prerequisite)
endobj
797 0 obj
-<< /S /GoTo /D (subsection.A.4.3) >>
+<< /S /GoTo /D (subsection.A.4.2) >>
endobj
800 0 obj
-(A.4.3 Installation)
+(A.4.2 Compilation)
endobj
801 0 obj
-<< /S /GoTo /D (subsection.A.4.4) >>
+<< /S /GoTo /D (subsection.A.4.3) >>
endobj
804 0 obj
-(A.4.4 Known Defects/Restrictions)
+(A.4.3 Installation)
endobj
805 0 obj
-<< /S /GoTo /D (subsection.A.4.5) >>
+<< /S /GoTo /D (subsection.A.4.4) >>
endobj
808 0 obj
-(A.4.5 The dns.conf File)
+(A.4.4 Known Defects/Restrictions)
endobj
809 0 obj
-<< /S /GoTo /D (subsection.A.4.6) >>
+<< /S /GoTo /D (subsection.A.4.5) >>
endobj
812 0 obj
-(A.4.6 Sample Applications)
+(A.4.5 The dns.conf File)
endobj
813 0 obj
-<< /S /GoTo /D (subsubsection.A.4.6.1) >>
+<< /S /GoTo /D (subsection.A.4.6) >>
endobj
816 0 obj
-(A.4.6.1 sample: a simple stub resolver utility)
+(A.4.6 Sample Applications)
endobj
817 0 obj
-<< /S /GoTo /D (subsubsection.A.4.6.2) >>
+<< /S /GoTo /D (subsubsection.A.4.6.1) >>
endobj
820 0 obj
-(A.4.6.2 sample-async: a simple stub resolver, working asynchronously)
+(A.4.6.1 sample: a simple stub resolver utility)
endobj
821 0 obj
-<< /S /GoTo /D (subsubsection.A.4.6.3) >>
+<< /S /GoTo /D (subsubsection.A.4.6.2) >>
endobj
824 0 obj
-(A.4.6.3 sample-request: a simple DNS transaction client)
+(A.4.6.2 sample-async: a simple stub resolver, working asynchronously)
endobj
825 0 obj
-<< /S /GoTo /D (subsubsection.A.4.6.4) >>
+<< /S /GoTo /D (subsubsection.A.4.6.3) >>
endobj
828 0 obj
-(A.4.6.4 sample-gai: getaddrinfo\(\) and getnameinfo\(\) test code)
+(A.4.6.3 sample-request: a simple DNS transaction client)
endobj
829 0 obj
-<< /S /GoTo /D (subsubsection.A.4.6.5) >>
+<< /S /GoTo /D (subsubsection.A.4.6.4) >>
endobj
832 0 obj
-(A.4.6.5 sample-update: a simple dynamic update client program)
+(A.4.6.4 sample-gai: getaddrinfo\(\) and getnameinfo\(\) test code)
endobj
833 0 obj
-<< /S /GoTo /D (subsubsection.A.4.6.6) >>
+<< /S /GoTo /D (subsubsection.A.4.6.5) >>
endobj
836 0 obj
-(A.4.6.6 nsprobe: domain/name server checker in terms of RFC 4074)
+(A.4.6.5 sample-update: a simple dynamic update client program)
endobj
837 0 obj
-<< /S /GoTo /D (subsection.A.4.7) >>
+<< /S /GoTo /D (subsubsection.A.4.6.6) >>
endobj
840 0 obj
-(A.4.7 Library References)
+(A.4.6.6 nsprobe: domain/name server checker in terms of RFC 4074)
endobj
841 0 obj
-<< /S /GoTo /D (appendix.B) >>
+<< /S /GoTo /D (subsection.A.4.7) >>
endobj
844 0 obj
-(B Manual pages)
+(A.4.7 Library References)
endobj
845 0 obj
-<< /S /GoTo /D (section.B.1) >>
+<< /S /GoTo /D (appendix.B) >>
endobj
848 0 obj
-(B.1 dig)
+(B Manual pages)
endobj
849 0 obj
-<< /S /GoTo /D (section.B.2) >>
+<< /S /GoTo /D (section.B.1) >>
endobj
852 0 obj
-(B.2 host)
+(B.1 dig)
endobj
853 0 obj
-<< /S /GoTo /D (section.B.3) >>
+<< /S /GoTo /D (section.B.2) >>
endobj
856 0 obj
-(B.3 dnssec-checkds)
+(B.2 host)
endobj
857 0 obj
-<< /S /GoTo /D (section.B.4) >>
+<< /S /GoTo /D (section.B.3) >>
endobj
860 0 obj
-(B.4 dnssec-coverage)
+(B.3 dnssec-checkds)
endobj
861 0 obj
-<< /S /GoTo /D (section.B.5) >>
+<< /S /GoTo /D (section.B.4) >>
endobj
864 0 obj
-(B.5 dnssec-dsfromkey)
+(B.4 dnssec-coverage)
endobj
865 0 obj
-<< /S /GoTo /D (section.B.6) >>
+<< /S /GoTo /D (section.B.5) >>
endobj
868 0 obj
-(B.6 dnssec-keyfromlabel)
+(B.5 dnssec-dsfromkey)
endobj
869 0 obj
-<< /S /GoTo /D (section.B.7) >>
+<< /S /GoTo /D (section.B.6) >>
endobj
872 0 obj
-(B.7 dnssec-keygen)
+(B.6 dnssec-keyfromlabel)
endobj
873 0 obj
-<< /S /GoTo /D (section.B.8) >>
+<< /S /GoTo /D (section.B.7) >>
endobj
876 0 obj
-(B.8 dnssec-revoke)
+(B.7 dnssec-keygen)
endobj
877 0 obj
-<< /S /GoTo /D (section.B.9) >>
+<< /S /GoTo /D (section.B.8) >>
endobj
880 0 obj
-(B.9 dnssec-settime)
+(B.8 dnssec-revoke)
endobj
881 0 obj
-<< /S /GoTo /D (section.B.10) >>
+<< /S /GoTo /D (section.B.9) >>
endobj
884 0 obj
-(B.10 dnssec-signzone)
+(B.9 dnssec-settime)
endobj
885 0 obj
-<< /S /GoTo /D (section.B.11) >>
+<< /S /GoTo /D (section.B.10) >>
endobj
888 0 obj
-(B.11 dnssec-verify)
+(B.10 dnssec-signzone)
endobj
889 0 obj
-<< /S /GoTo /D (section.B.12) >>
+<< /S /GoTo /D (section.B.11) >>
endobj
892 0 obj
-(B.12 named-checkconf)
+(B.11 dnssec-verify)
endobj
893 0 obj
-<< /S /GoTo /D (section.B.13) >>
+<< /S /GoTo /D (section.B.12) >>
endobj
896 0 obj
-(B.13 named-checkzone)
+(B.12 named-checkconf)
endobj
897 0 obj
-<< /S /GoTo /D (section.B.14) >>
+<< /S /GoTo /D (section.B.13) >>
endobj
900 0 obj
-(B.14 named)
+(B.13 named-checkzone)
endobj
901 0 obj
-<< /S /GoTo /D (section.B.15) >>
+<< /S /GoTo /D (section.B.14) >>
endobj
904 0 obj
-(B.15 named-journalprint)
+(B.14 named)
endobj
905 0 obj
-<< /S /GoTo /D (section.B.16) >>
+<< /S /GoTo /D (section.B.15) >>
endobj
908 0 obj
-(B.16 nsupdate)
+(B.15 named-journalprint)
endobj
909 0 obj
-<< /S /GoTo /D (section.B.17) >>
+<< /S /GoTo /D (section.B.16) >>
endobj
912 0 obj
-(B.17 rndc)
+(B.16 nsupdate)
endobj
913 0 obj
-<< /S /GoTo /D (section.B.18) >>
+<< /S /GoTo /D (section.B.17) >>
endobj
916 0 obj
-(B.18 rndc.conf)
+(B.17 rndc)
endobj
917 0 obj
-<< /S /GoTo /D (section.B.19) >>
+<< /S /GoTo /D (section.B.18) >>
endobj
920 0 obj
-(B.19 rndc-confgen)
+(B.18 rndc.conf)
endobj
921 0 obj
-<< /S /GoTo /D (section.B.20) >>
+<< /S /GoTo /D (section.B.19) >>
endobj
924 0 obj
-(B.20 ddns-confgen)
+(B.19 rndc-confgen)
endobj
925 0 obj
-<< /S /GoTo /D (section.B.21) >>
+<< /S /GoTo /D (section.B.20) >>
endobj
928 0 obj
-(B.21 arpaname)
+(B.20 ddns-confgen)
endobj
929 0 obj
-<< /S /GoTo /D (section.B.22) >>
+<< /S /GoTo /D (section.B.21) >>
endobj
932 0 obj
-(B.22 genrandom)
+(B.21 arpaname)
endobj
933 0 obj
-<< /S /GoTo /D (section.B.23) >>
+<< /S /GoTo /D (section.B.22) >>
endobj
936 0 obj
-(B.23 isc-hmac-fixup)
+(B.22 genrandom)
endobj
937 0 obj
-<< /S /GoTo /D (section.B.24) >>
+<< /S /GoTo /D (section.B.23) >>
endobj
940 0 obj
-(B.24 nsec3hash)
+(B.23 isc-hmac-fixup)
endobj
941 0 obj
-<< /S /GoTo /D [942 0 R /FitH ] >>
+<< /S /GoTo /D (section.B.24) >>
endobj
-945 0 obj <<
+944 0 obj
+(B.24 nsec3hash)
+endobj
+945 0 obj
+<< /S /GoTo /D [946 0 R /FitH ] >>
+endobj
+949 0 obj <<
/Length 240
/Filter /FlateDecode
>>
@@ -1414,32 +1420,32 @@ stream
xÚ•OKA Åïó)rl›N2Éü9ZªRA¡27ñ°´[)¸[ºÖïïlWË‚^$0ïý˜y[Š *Z—BTK
ÛÖXx+Þ½¡oFÔ¡Šsåð‡[ LÁ+T\@1M±_8±Eo=C¥BÈÌ~À—Ù,C yÄŠƒÂ•Ë»—Ùrý´š——ì,ãf׺Ãǹ¯ÏÇ~”ž›}Ó7ݶ™¿æ a$/¾äKc¼\óXwŸõûà›Û| §â1'p®äðqH'`Ô ð3‹zšüßÚ±y±n VG³1°™ž07l(%tî[þM^Xúendstream
endobj
-942 0 obj <<
+946 0 obj <<
/Type /Page
-/Contents 945 0 R
-/Resources 944 0 R
+/Contents 949 0 R
+/Resources 948 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 951 0 R
+/Parent 955 0 R
>> endobj
-943 0 obj <<
+947 0 obj <<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (./isc-logo.pdf)
/PTEX.PageNumber 1
-/PTEX.InfoDict 952 0 R
+/PTEX.InfoDict 956 0 R
/Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000]
/BBox [0.00000000 0.00000000 612.00000000 792.00000000]
/PieceInfo <<
-/Illustrator 953 0 R
+/Illustrator 957 0 R
>>
/Resources <<
/ColorSpace <<
-/CS0 954 0 R
+/CS0 958 0 R
>>/Properties <<
-/MC0 955 0 R
+/MC0 959 0 R
>>/ExtGState <<
-/GS0 956 0 R
+/GS0 960 0 R
>>>>
/Length 843
/Filter /FlateDecode
@@ -1455,7 +1461,7 @@ BqÕ•l9uš
!=§ ¨Œø†vGc £I#/'~<1‚ÀÔRPy±´ýl1½Ͷw1 чd }¡þa
Ë9b :žÎÞF" ‹>64”~0IGD˜Ë Ø°$ÙtMâ¯%Z½Gð¾¥Úñ§aÑÌ‘ I¼ ý—/øýzü+À
endobj
-952 0 obj
+956 0 obj
<<
/CreationDate (D:20100303120319-08'00')
/Creator (Adobe Illustrator CS3)
@@ -1464,24 +1470,24 @@ endobj
/Title (ISC_logo_only_RGB)
>>
endobj
-953 0 obj
+957 0 obj
<<
-/Private 957 0 R
+/Private 961 0 R
/LastModified (D:20100412113400-07'00')
>>
endobj
-954 0 obj
-[/ICCBased 958 0 R]
+958 0 obj
+[/ICCBased 962 0 R]
endobj
-955 0 obj
+959 0 obj
<<
-/Intent 959 0 R
-/Usage 960 0 R
+/Intent 963 0 R
+/Usage 964 0 R
/Name (Layer 1)
/Type /OCG
>>
endobj
-956 0 obj
+960 0 obj
<<
/OPM 1
/BM /Normal
@@ -1495,22 +1501,22 @@ endobj
/SA true
>>
endobj
-957 0 obj
+961 0 obj
<<
/RoundtripVersion 13
/ContainerVersion 11
/CreatorVersion 13
-/AIMetaData 961 0 R
-/AIPrivateData1 962 0 R
-/AIPrivateData2 963 0 R
-/AIPrivateData3 964 0 R
-/AIPrivateData4 965 0 R
-/AIPrivateData5 966 0 R
+/AIMetaData 965 0 R
+/AIPrivateData1 966 0 R
+/AIPrivateData2 967 0 R
+/AIPrivateData3 968 0 R
+/AIPrivateData4 969 0 R
+/AIPrivateData5 970 0 R
/NumBlock 5
/RoundtripStreamType 1
>>
endobj
-958 0 obj
+962 0 obj
<<
/Length 281
/Filter /FlateDecode
@@ -1521,10 +1527,10 @@ H‰b``2ptqre``ÈÍ+)
rwRˆˆŒR`?ÏÀÆÀÌ
ò‹KRS€j!îAˆBPˆi
endobj
-959 0 obj
+963 0 obj
[/View/Design]
endobj
-960 0 obj
+964 0 obj
<<
/CreatorInfo <<
/Subtype /Artwork
@@ -1532,21 +1538,21 @@ endobj
>>
>>
endobj
-961 0 obj
+965 0 obj
<<
/Length 981
>>
stream
%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 13.0 %%AI8_CreatorVersion: 13.0.2 %%For: (Brian Reid) () %%Title: (ISC_logo_only_RGB.ai) %%CreationDate: 4/12/10 11:34 AM %%BoundingBox: 247 367 366 413 %%HiResBoundingBox: 247.0869 367.5654 365.0859 412.583 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 9.0 %AI12_BuildNumber: 434 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0.658824 0.8 (ISC logo blue) %%+ 0.372549 0.376471 0.384314 (PANTONE 425 U) %%+ 0 0 0 ([Registration]) %AI3_TemplateBox: 306.5 395.5 306.5 395.5 %AI3_TileBox: 18 33.1201 594 786.96 %AI3_DocumentPreview: None %AI5_ArtSize: 612 792 %AI5_RulerUnits: 3 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 0 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -381 793 0.92 1268 743 26 0 0 117 75 0 0 1 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream
endobj
-962 0 obj
+966 0 obj
<<
/Length 11082
>>
stream
%%BoundingBox: 247 367 366 413 %%HiResBoundingBox: 247.0869 367.5654 365.0859 412.583 %AI7_Thumbnail: 128 52 8 %%BeginData: 10932 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD1F52285252A8FD04FFFD05A8FFFFFFA87DFD4F52285252522852 %525228525252285252522852525228525252285252522852277DA8FFFFA8 %7D7D525227FD04527DA8FFFFA85252275252522852525228525252285252 %522852525228525252285252522852525228525252285252522852525228 %52525228525252285252522852525228525252285252522852525228FD21 %52A8FFFF7D7D525227FD0752275252A8FFFF7DFD215227FD2A522E522752 %2E5227522E5227522E5227522E5227522E5227522E5227527DFFFFA85252 %27522E5227522E5227522E5227522752A8FF7D5227522E5227522E522752 %2E5227522E5227522E5227522E5227522E522752277D7D7D275227522E52 %27522E5227522E5227522E5227522E5227522E5227522E5227522E522752 %2E5227FD1A52277DA8FFA87D2EFD11522E527DFFA853FD1D52A8FFFFFF7D %28FD285228525252285252522852525228525252285252522852277DFFFF %7D522752525228525252285252522852525228525252275252FFA8522752 %285252522852525228525252285252522852525228525252277DFFA852A8 %FF5227525252285252522852525228525252285252522852525228525252 %285252522852525228FD1852277DFFFFFD1B52FFA8FD1A527DFFA8275252 %FF7DFD265227522E5227522E5227522E5227522E5227522E522752277DFF %FF525227522E5227522E5227522E5227522E5227522E5227522E52275252 %FFA852275227522E5227522E5227522E5227522E5227522E522752A8A827 %522E527DA9275227522E5227522E5227522E5227522E5227522E52275227 %5227522E5227522E5227522EFD17527DFFA8FD1E527DFFA8FD17527DFFFD %0452287DFFFD155228FD075228FD08522852525228525252285252522852 %5252285252522852527D2752525228525252285252522852525228525252 %2852525228525252285252527DFF7D522852525228525252285252522852 %525228FD0452FF7D5228FD0452FF52522852525228525252285252522752 %2752527DA1A8A8FFCACFA8CAA17D5252275228FD3C52A8FFFD145228A8FF %53FD0652FFA82EFD0C527D7DCAFD04FFAFAF85AF85AFAFFFFFFFA87DFD05 %522E5227522E5227522E5227522E5227522E5227522E5227522E5227522E %5227522E5227522E5227522E5227522E5227522E5227522E5227522752A8 %FF275227522E5227522E5227522E5227522E522752FFA827522E5227522E %FF7D522E5227522E522752275252A8FFFFAFAF603CFD041413FD04143C60 %AFFFFF535227FD3A52277DFFA827FD11527DFFFD0852A8FFFD0952A8CFFF %FFAF3C3D1414141A141A141A141A141A14141461AFFFA8FD045228525252 %285252522852525228525252285252522852525228525252285252522852 %5252285252522852525228525252285252522852525227A8FF5227525252 %2852525228525252285252522EFFA85227525252285228A87D5252522852 %27527DFFFFAF603CFD07141A1414141A1414141AFD041460FFA8FD3D52FF %A8FD10527DFF7DFD0F527DFFFFA9611414141A141A141A141A141A141A14 %1A141A141A141A14143CFFA827522E5227522E5227522E5227522E522752 %2E5227522E5227522E5227522E5227522E5227522E5227522E5227522E52 %27522E5227522E5227522E527DFF525227522E5227522E5227522E522752 %A8FF27522E5227522E5227522852275252A8FFFF3C1413FD191436FFFD3C %5259FFA828FD0E52FF7DFD0D527DFFFF8B1414141A141A141A141A141A14 %1A141A141A141A141A141A141A141A141460285252522852525228525252 %285252522852525228525252275227522752275227525252285252522852 %52522852525228525252285252522852525227A8FF7D2752525228525252 %2852525227A8FF52275252522852525228522752A8FFA93CFD05141A1414 %141A1414141A1414141A1414141A1414141A1414141A1414FD1552285252 %7D527D597D527DFD065227FD1852FFA8FD0D52FFFFFD0A52277DFFFF601A %141A141A141A141A141A141A141A141A141A141A141A141A141A141A141A %141A142E5227522E5227522E5227522E5227522752527D7DA8A8FD09FFA8 %FFA8A87D532852275227522E5227522E5227522E5227522E5227522E527D %FF525227522E5227522E52275252FF7D522E5227522E522752277DFFFF36 %FD2314FD0E527D7DFD07FFA8A87DA87DA87DFD04A8FD05FFA87DFD15527D %FFA827FD0A52A8FF7DFD0952A8FFAF1414141A141A141A141A141A141A14 %1A141A141A141A141A141A141A141A141A141A141A145252285252522852 %525227527DA8FFFFFFA87D7D52522752275227522752275227522752527D %A8FFFFFFA87E52522752525228525252285252522852525227A8FF522752 %5252285252522752FFA8275252522852525227A8FF85FD05141A1414141A %1414141A1414141A1414141A1414141A1414141A1414141A1414141AFD07 %52275253A8FFFFFFA8FD045227FD0F522EFD04527D7DFFFFFFA87DFD1052 %7DFF7DFD0A52FF7DFD0852A8FF8B1414141A141A141A141A141A141A141A %141A141A141A141A141A141A141A141A141A141A141A1427522E52275227 %7DA8FFFFA85252275227522E5227522E5227522E5227522E5227522E5227 %522E52275227527DFFFFFF7D52275227522E5227522E5227522752A8A827 %5227522E52275227A8FF5227522752525227A8FF6113FD2714FD0652A8FF %FF7D7D28FD22527DA8FFFF7DFD0C5227A8FF7DFD0852A8FFFD06522EA8FF %61141A141A141A141A141A141A141A141A141A141A141A141A141A141A14 %1A141A141A141A141A141A14285227527DFFFF7D52522752285252522852 %525228525252285252522852525228525252285252522852525228522752 %52FFFFA8525228522852525228FD0452FF7D5228525252285252FF7D5252 %52285227A8FF611414141A1414141A1414141A1414141A1414141A141414 %1A1414141A1414141A1414141A1414141A141452277DFFFFA87D28FD2952 %287DFFFF7EFD0B52A8FFFD065227A8FF7D2752525227A8FF8B141A141A14 %1A141A141A141A141A141A141A141A141A141A141A141A141A141A141A14 %1A141A141A141A1428A8FFFF525227522E5227522E5227522E5227522E52 %27522E5227522E5227522E5227522E5227522E5227522E5227522E522752 %7DFFA87D275227522E522752277EFF52275227522852A8FF52522752277D %FF8BFD121413FD0F1413FD0914FFFFA8FD3352FFFFA8FD0952FF7DFD0652 %FFA8FD04527DFFAF141A141A141A141A141A141A141A141A141A14613C3C %141A141A141A141A141A141A143D3C3C141A141A141A14FF7D2752525228 %525252285252522852525228525252285252522852525228525252285252 %522852525228525252285252522852525227A8FFA8FD045228525252A8A8 %27522852277DFF7D27522752A8FFFD051461A9AF848B1414141A141436AF %AFFFFFFFAFAF36FD04141A14141461A9FFAFFFAFAF601A1414141A7D2EFD %3552277DFFFFFD0752A8FFFD05527DFFFD04527DFF3C14141A141484FFFF %FFAF1A141A141A85FD09FF841A141A141A14AFFD08FF841A141A1427522E %5227522E5227522E5227522E5227522E5227522E5227522E5227522E5227 %522E5227522E5227522E5227522E5227522E5227522E52277DA8FF52522E %5227527DFF52522E5227FFA852275252FF60FD061485FFFFFFAFFD041460 %FD0BFF36FD0414AFFD0AFF60141414FD3A5253FFFF7DFD04527DFFA85252 %527DFFA8285252FFAF1A141A141A141A84FFFFFFAF3D141A14FD05FF603D %60FD04FFAF141A1461FD04FFA96136AFFD04FF141A142852525228525252 %285252522852525228525252285252522852525228525252285252522852 %52522852525228525252285252522852525228522752A8FF5252285252FF %A8FD0452FF7D5227A8FF3C141AFD051485FFFFFFAF14141460FD04FF3614 %141460FFFFFFA91A141484FFFFFFA91A141414FD04FF611414FD3D52A8FF %FD0452A8FF525228A8FF7D277DFF8B141A141A141A141A85FFFFFFAF1A14 %1A60FD04FF3C141A1461FD04FF141A14FD04FF8B141A141AAFFFFFFF601A %142E5227522E5227522E5227522E5227522E5227522E5227522E5227522E %5227522E5227522E5227522E5227522E5227522E5227522E5227522E5227 %522752A8FF5252277DFF7D2752A8FF2752A8FFFD08141385FFFFFFAF1414 %1361FD04FF36FD04148584856014133CFD04FF60FD0414FD04FF851314FD %3D52287DFFFF525252FF7D5252FFA8527DFF3C1A141A141A141A141A85FF %FFFFAF1A141A60FD04FFAF141A141A141A141A141A3CFD04FF61141A141A %3C616061361A145252285252522852525228525252285252522852525228 %525252285252522852525228525252285252522852525228525252275252 %522752525228525252277DFF7E2752FFA82753FF7E27FFA914141A141414 %1A1414148BFFFFFFAF1414143CAFFD04FFAFFD091461FD04FF3614141AFD %07141AFD2B522852285227FD075227FD075227A8FF7D27FFA8527DFF7D7D %FF3D141A141A141A141A141484FFFFFFA91A141A1485FD06FF603C141A14 %1A14143CFD04FF61141A141A141A141A141A1427522E5227522E5227522E %5227522E5227522E5227522E5227522E5227522E5227522E522752275227 %FD04527D7DA8A8FFA8FFA8FFA8A87D7D52522752275227FFA8527DFF277D %FF52A8AF13FD0A1485FFFFFFAFFD0414138BFD06FFA860FD05143CFD04FF %36FD0B14FD2852A8A8FD07FFA8FFA8FFA8FD06FFA87D5227527DFF7D7DFF %7DA8FF7DFF3C1A141A141A141A141A141A84FFFFFFAF3D141A141A148BFD %07FF8B141A141A3CFD04FF61141A141A141A141A141A1428525252285252 %522852525228525252285252522852525228525252285252522752275252 %A8A8FFFFFFA8A87D7DFD065227FD04527D7DA8FFFFA87D2752A8FF52FF7D %A8A8CAA914141A1414141A1414141A1485FFFFFFAFFD071460A8FD06FF8B %1414143CFD04FF36FD04141A1414141A1414FD2252A8FD04FF7D7D525228 %5227FD0B52275252527DFFFFFF5253FFA8A8A8FFA8FF61141A141A141A14 %1A141A141A85FFFFFFAF1A141A141A141A141A60FD06FF85141A3CFD04FF %61141A141A141A141A141A142E5227522E5227522E5227522E5227522E52 %27522E5227522E5227522752277DA8FFFFA859522752275227522E522752 %2E5227522E5227522E5227522752277DA8FF7DA8FFFFA8FFFFAFFD0C1413 %85FFFFFFAFFD061413FD0414AFFD04FFA9141360FD04FF36FD051413FD05 %14FD1D527DFFFFFF7D7DFD1E52A8FFA8FD05FF601A141A141A141A141A14 %1A141A85FFFFFFAF1A141A143D363D141A141A14FD05FF3C1A3CFD04FF61 %141A141A60AF85AF601A1452522852525228525252285252522852525228 %52525228525252277DFFFFA87D2E52275252522852525228525252285252 %52285252522852525228525252285228527DFD06FF3C141A1414141A1414 %141A1414148BFFFFFFAF141414AFFFFFAF8BFD04143CFD04FF3C143CFD04 %FF60FD04148BFFFFFFAF1414FD1752285259FFFFA9525227FD2352A8FD04 %FFAF141A141A141A141A141A141A141484FFFFFFA91A141484FFFFFFA91A %141A1461FD04FF3C1414FD04FF8B141A141AA9FFFFFF85141427522E5227 %522E5227522E5227522E5227522E52275227527DFFA87D27522E5227522E %5227522E5227522E5227522E5227522E5227522E5227522E5227522E5227 %522752A8FFFFFF60FD0E1485FFFFFFAF14141485FD04FFFD041436FD04FF %3C141484FFFFFFA8FD0414FD04FF611414FD16527DFFFF7D5228FD275227 %A8FFFFFF3D141A141A141A141A141A141A141A84FFFFFFAF3D141460FD04 %FFAF363C3CFD05FF141A1461FD04FF853C148BFD04FF3C1A142752275227 %52275227522752275227522752275227A8FFA82852275227522752275227 %522752275227522752275227522752275227522752275227522752275227 %52275252FFFFAFFD0F1485FFFFFFAFFD0414A8FD05FFAFFD05FF36FD0414 %AFFD0AFF841414147D527D527D527D527D527D527D527D527D527D52A8FF %FF527D527D527D527D527D527D527D527D527D527D527D527D527D527D52 %7D527D527D527D527D527D527D527D527DA8FF853C363D3C3C363D3C3C36 %3D3C3C363D85FFFFFFAF3D363D3685FD0AFFAF3C363D3C3C60FD0AFF6136 %3D3CFD16FFA8FD49FFAFFD11FFAFFD09FFAFFFFFFF %%EndData endstream
endobj
-963 0 obj
+967 0 obj
<<
/Length 65536
>>
@@ -1820,7 +1826,7 @@ sÓ ·ÓíÑ·OÒ„ŸuMÊ’ÏyÒÁQÊ—*V€)-z=¦Hèªmƈœ~ÅñÓ×z…Sý[t¸c&4 ŽªªAj^råº;ņÜ(cçç
Dx^QÜ×}Ì
˜ØyY‰Ÿ‹© ¨zŽ…N¬V¥%™­‚¨™@“£=HU˜ü¢³l0¼Tq_PIÐ/u,dÆö¶fý"íŒØ¾MMæu [endstream
endobj
-964 0 obj
+968 0 obj
<<
/Length 65536
>>
@@ -2062,7 +2068,7 @@ qlÞ¯­ò×âô`>
¶“¬ûVG=# [ül&wJ΂fkíY”&{öñß1øÀ ÛÄ%'DSì
 F?؆Fß®U E2,„Ò -[‰Ðð~Eô׈bˆ¨<Þë‹uAhÜš:®—Ú[ɬëxÏ*}ñ
endobj
-965 0 obj
+969 0 obj
<<
/Length 65536
>>
@@ -2285,7 +2291,7 @@ uALŽk‹Š=ŽÉÀÇš?éì•ëðå0ƒ¨Ua¦7S“«ÙŽ®&éÀ­Ó˜çÈî¹m(‚4„Ћz35Ãùd2pnSø׸®÷—fSµNP™š
]×g1ͼ‘ôAÚF¥5³ò(ª®Í
endobj
-966 0 obj
+970 0 obj
<<
/Length 53114
>>
@@ -2482,18 +2488,18 @@ Y‘φ㧻Ç'ÇÕpV— ´Š›·§/ óü8
œ;ø# ñ<Ý°'€å‰íö Ð"W€­
Ö^IYïc­
endobj
-946 0 obj <<
-/D [942 0 R /XYZ 85.0394 794.5015 null]
+950 0 obj <<
+/D [946 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-947 0 obj <<
-/D [942 0 R /XYZ 85.0394 769.5949 null]
+951 0 obj <<
+/D [946 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-944 0 obj <<
-/Font << /F21 950 0 R >>
-/XObject << /Im1 943 0 R >>
+948 0 obj <<
+/Font << /F21 954 0 R >>
+/XObject << /Im1 947 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-969 0 obj <<
+973 0 obj <<
/Length 1075
/Filter /FlateDecode
>>
@@ -2504,22 +2510,22 @@ xÚ¥V]ªH}Ÿ_Áã˜hÛÐÀ¾1ˆÊÁ¼“ÍÞ}`G’1Â\3ÿ~«éD'“Ín|èÓtYuêTõÑ0üˆfpÄmjk¦­#CÛ¾?
ÅùîR–êüu‹zp9¹Ù[ͱȺÏQvקŽtÏ„{:$v¨ëÓoÓéår
£¢Ú¢²!õ:½»µÕ[—H¼fÿõK÷ùõŸkendstream
endobj
-968 0 obj <<
+972 0 obj <<
/Type /Page
-/Contents 969 0 R
-/Resources 967 0 R
+/Contents 973 0 R
+/Resources 971 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 951 0 R
+/Parent 955 0 R
>> endobj
-970 0 obj <<
-/D [968 0 R /XYZ 56.6929 794.5015 null]
+974 0 obj <<
+/D [972 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-967 0 obj <<
-/Font << /F22 973 0 R /F14 976 0 R >>
+971 0 obj <<
+/Font << /F22 977 0 R /F14 980 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-979 0 obj <<
-/Length 2886
+983 0 obj <<
+/Length 2885
/Filter /FlateDecode
>>
stream
@@ -2528,1807 +2534,1805 @@ x6$a»N9pšÛCcÓ®³ŒhÉ\HŸE.õ]y<çö°þ4ü|U/6+›Íã¹2ù±?l¾žå™Éÿß$5>Ó;²}Ž`¸+äîù?CO$
êœqNLžYç<'\_³È¾já6Vü„×›êªè†ˆâ¶3ŒØ»*䉘øL&c 1L R&‘00LPç#&,#LQ0á“~$q7“¢ºŠ/ös¡å³¤bŸ±d€!†TÁ!†ê|ÄÚ)¢â"à ¯«^lÊŸõ¬æŒ.>ãÉ8C '¨(‚S$ 'ÔyÀIåœäJ†r¥/X:œN6íMÝ,[;ã¹/wÊ•²¹/›þž”íc]²–Š4DØREL" AwΔ$Y–å3e(1JuÉP™Xžo–«¢y~y[Øâµ±9|¯†¨d
€!F¡ Fê|¤@’©L
¸£àⶸ<(nöçNñ9.|ê’¹
-¿Z×U½n— ÷Ð̈ƒ2fûHBÎ’
-‹µÁPá_ù™óœ˜ØûÆ»Õõ Î…~‰‰&Áº"15s_êb["_ø3yoÿgTªendstream
+¿Z×U½n— ÷Ð̈ƒ2fûHBÎ’
+'ûÌÊaÈ4ˆ¬ÏÐtÓ<’™]¯±Bg”ä9x–ßÕíò“ÙÛ+užùV3Â@€#õ„†È5¸%6FX$Œ4Ô{ M;¬ š_]xõP+_Ö}¼»*Z{77™:@ôCäòœÌÐh‡!TÄÚ sÊ.5Ér™y‚ÆÉ¡Ÿíý«Þ4¶0ðMSÞí~˜7OãƧ7`ˆ‘åcÓ­„±80vPïað’è\» ¬GW‹±5ŃÓ=8fô¨)ªõ§ÐnÚ=Œþ×׆§ñuž=gp&QñÙLFb¨@µ0T"q`¨ Þ*v¼Q¹ñ‘oM¹¸»]¶°T4úP ý–Ñ—!™1`ˆ1eÆ‹Ä1†zïeŒ›¾ÜCîeg¿€Mûõc溿•íæ®+‘Ä>ÃáÓ— 0Äà€ò°é–¨X¨w?
endobj
-978 0 obj <<
+982 0 obj <<
/Type /Page
-/Contents 979 0 R
-/Resources 977 0 R
+/Contents 983 0 R
+/Resources 981 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 951 0 R
-/Annots [ 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R ]
+/Parent 955 0 R
+/Annots [ 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R ]
>> endobj
-982 0 obj <<
+986 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 688.709 539.579 697.4212]
/Subtype /Link
/A << /S /GoTo /D (chapter.1) >>
>> endobj
-983 0 obj <<
+987 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 676.5858 539.579 685.5919]
/Subtype /Link
/A << /S /GoTo /D (section.1.1) >>
>> endobj
-984 0 obj <<
+988 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 664.4876 539.579 673.4937]
/Subtype /Link
/A << /S /GoTo /D (section.1.2) >>
>> endobj
-985 0 obj <<
+989 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 652.3894 539.579 661.3954]
/Subtype /Link
/A << /S /GoTo /D (section.1.3) >>
>> endobj
-986 0 obj <<
+990 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 640.2911 539.579 649.1477]
/Subtype /Link
/A << /S /GoTo /D (section.1.4) >>
>> endobj
-987 0 obj <<
+991 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 628.1929 539.579 637.0495]
/Subtype /Link
/A << /S /GoTo /D (subsection.1.4.1) >>
>> endobj
-988 0 obj <<
+992 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 616.0946 539.579 624.9512]
/Subtype /Link
/A << /S /GoTo /D (subsection.1.4.2) >>
>> endobj
-989 0 obj <<
+993 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 603.9964 539.579 612.853]
/Subtype /Link
/A << /S /GoTo /D (subsection.1.4.3) >>
>> endobj
-990 0 obj <<
+994 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 591.7985 539.579 600.7547]
/Subtype /Link
/A << /S /GoTo /D (subsection.1.4.4) >>
>> endobj
-991 0 obj <<
+995 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 579.7002 539.579 588.6565]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.1.4.4.1) >>
>> endobj
-992 0 obj <<
+996 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 567.6019 539.579 576.5582]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.1.4.4.2) >>
>> endobj
-993 0 obj <<
+997 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 555.5037 539.579 564.46]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.1.4.4.3) >>
>> endobj
-994 0 obj <<
+998 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 543.5051 539.579 552.5112]
/Subtype /Link
/A << /S /GoTo /D (subsection.1.4.5) >>
>> endobj
-995 0 obj <<
+999 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 531.4069 539.579 540.413]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.1.4.5.1) >>
>> endobj
-996 0 obj <<
+1000 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 519.3086 539.579 528.3147]
/Subtype /Link
/A << /S /GoTo /D (subsection.1.4.6) >>
>> endobj
-997 0 obj <<
+1001 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 496.5559 539.579 505.288]
/Subtype /Link
/A << /S /GoTo /D (chapter.2) >>
>> endobj
-998 0 obj <<
+1002 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 484.4775 539.579 493.4338]
/Subtype /Link
/A << /S /GoTo /D (section.2.1) >>
>> endobj
-999 0 obj <<
+1003 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 472.3792 539.579 481.3355]
/Subtype /Link
/A << /S /GoTo /D (section.2.2) >>
>> endobj
-1000 0 obj <<
+1004 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 460.281 539.579 469.2373]
/Subtype /Link
/A << /S /GoTo /D (section.2.3) >>
>> endobj
-1001 0 obj <<
+1005 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 448.1827 539.579 457.139]
/Subtype /Link
/A << /S /GoTo /D (section.2.4) >>
>> endobj
-1002 0 obj <<
+1006 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 436.0845 539.579 445.0408]
/Subtype /Link
/A << /S /GoTo /D (section.2.5) >>
>> endobj
-1003 0 obj <<
+1007 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 413.5759 539.579 422.1635]
/Subtype /Link
/A << /S /GoTo /D (chapter.3) >>
>> endobj
-1004 0 obj <<
+1008 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 401.4527 539.579 410.3093]
/Subtype /Link
/A << /S /GoTo /D (section.3.1) >>
>> endobj
-1005 0 obj <<
+1009 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 389.3544 539.579 398.2111]
/Subtype /Link
/A << /S /GoTo /D (subsection.3.1.1) >>
>> endobj
-1006 0 obj <<
+1010 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 377.2562 539.579 386.1128]
/Subtype /Link
/A << /S /GoTo /D (subsection.3.1.2) >>
>> endobj
-1007 0 obj <<
+1011 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 365.0583 539.579 374.0146]
/Subtype /Link
/A << /S /GoTo /D (section.3.2) >>
>> endobj
-1008 0 obj <<
+1012 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 352.96 539.579 361.9163]
/Subtype /Link
/A << /S /GoTo /D (section.3.3) >>
>> endobj
-1009 0 obj <<
+1013 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 340.8618 539.579 349.818]
/Subtype /Link
/A << /S /GoTo /D (subsection.3.3.1) >>
>> endobj
-1010 0 obj <<
+1014 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 328.7635 539.579 337.7198]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.3.3.1.1) >>
>> endobj
-1011 0 obj <<
+1015 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [532.6051 316.6653 539.579 325.6216]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.3.3.1.2) >>
>> endobj
-1012 0 obj <<
+1016 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 304.6667 539.579 313.6728]
/Subtype /Link
/A << /S /GoTo /D (subsection.3.3.2) >>
>> endobj
-1013 0 obj <<
+1017 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 281.9139 539.579 290.7706]
/Subtype /Link
/A << /S /GoTo /D (chapter.4) >>
>> endobj
-1014 0 obj <<
+1018 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 269.8356 539.579 278.9413]
/Subtype /Link
/A << /S /GoTo /D (section.4.1) >>
>> endobj
-1015 0 obj <<
+1019 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 257.7373 539.579 266.8431]
/Subtype /Link
/A << /S /GoTo /D (section.4.2) >>
>> endobj
-1016 0 obj <<
+1020 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 245.6391 539.579 254.7448]
+/Rect [527.6238 245.7387 539.579 254.7448]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.2.1) >>
>> endobj
-1017 0 obj <<
+1021 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 233.5408 539.579 242.6465]
+/Rect [527.6238 233.6405 539.579 242.6465]
/Subtype /Link
/A << /S /GoTo /D (section.4.3) >>
>> endobj
-1018 0 obj <<
+1022 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 221.4426 539.579 230.5483]
+/Rect [527.6238 221.5422 539.579 230.5483]
/Subtype /Link
/A << /S /GoTo /D (section.4.4) >>
>> endobj
-1019 0 obj <<
+1023 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 209.444 539.579 218.4501]
+/Rect [527.6238 209.3443 539.579 218.4501]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.4.1) >>
>> endobj
-1020 0 obj <<
+1024 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 197.2461 539.579 206.3518]
+/Rect [527.6238 197.3457 539.579 206.3518]
/Subtype /Link
/A << /S /GoTo /D (section.4.5) >>
>> endobj
-1021 0 obj <<
+1025 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 185.1478 539.579 194.1041]
+/Rect [527.6238 185.1478 539.579 194.2536]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.5.1) >>
>> endobj
-1022 0 obj <<
+1026 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 173.0496 539.579 182.0058]
+/Rect [527.6238 173.0496 539.579 182.1553]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.5.1.1) >>
>> endobj
-1023 0 obj <<
+1027 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 160.9513 539.579 169.9076]
+/Rect [527.6238 160.9513 539.579 170.0571]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.5.1.2) >>
>> endobj
-1024 0 obj <<
+1028 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 148.8531 539.579 157.8094]
+/Rect [527.6238 148.8531 539.579 157.9588]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.5.2) >>
>> endobj
-1025 0 obj <<
+1029 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 136.7548 539.579 145.7111]
+/Rect [527.6238 136.7548 539.579 145.8606]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.5.3) >>
>> endobj
-1026 0 obj <<
+1030 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 124.7562 539.579 133.7623]
+/Rect [527.6238 124.6566 539.579 133.7623]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.5.4) >>
>> endobj
-1027 0 obj <<
+1031 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 112.658 539.579 121.6641]
+/Rect [527.6238 112.5583 539.579 121.6641]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.5.5) >>
>> endobj
-1028 0 obj <<
+1032 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 100.5597 539.579 109.5658]
+/Rect [527.6238 100.4601 539.579 109.5658]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.5.6) >>
>> endobj
-1029 0 obj <<
+1033 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 88.4615 539.579 97.4676]
+/Rect [527.6238 88.3618 539.579 97.4676]
/Subtype /Link
/A << /S /GoTo /D (section.4.6) >>
>> endobj
-1030 0 obj <<
+1034 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 76.3632 539.579 85.2199]
+/Rect [527.6238 76.2636 539.579 85.2199]
/Subtype /Link
/A << /S /GoTo /D (section.4.7) >>
>> endobj
-1031 0 obj <<
+1035 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 64.265 539.579 73.1216]
+/Rect [527.6238 64.1653 539.579 73.1216]
/Subtype /Link
/A << /S /GoTo /D (section.4.8) >>
>> endobj
-980 0 obj <<
-/D [978 0 R /XYZ 85.0394 794.5015 null]
+984 0 obj <<
+/D [982 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-981 0 obj <<
-/D [978 0 R /XYZ 85.0394 711.9273 null]
+985 0 obj <<
+/D [982 0 R /XYZ 85.0394 711.9273 null]
>> endobj
-977 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R >>
+981 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1034 0 obj <<
-/Length 3273
+1038 0 obj <<
+/Length 3274
/Filter /FlateDecode
>>
stream
-xÚímsÛ6ÇßûShæÞØ3'ñ ¼t§×6q|‘r3wm_¨6ãhªW–’ºŸþ@‘ ®$pmä’4¶ÕÎD´ÄÕ®öÿ#vA‚ïáÞÓ†/|ÏzÅtÁuïbzPô®ÂkßðfŸ>ìÔÇ{=üã…´=ϼ¦7|×SZ3¡×oæXáï /:<y}6<=Ž~þpp:ŒïŠ=óBVoùûÁO¿½ËÀ“ÞéÞÇðGÁ¸÷¢7=PZ2­¤„g&ƒƒÅ7D¯®M“Ÿ„LH#EôQª5ïY홑B®?ˆbŽñ£>Eqø]9+£åxvuÔº8ü±¼½9ê;#ÙQ_‡Þƒòþ³½Ù¶ÔEȺ•¦ÍçŽ6‹«^½ñ«v}l¸«ÖîûWz ±¨ŸŠƒb…ô¬(ËLQ˜ÈŠhXŒ¯f”åû²Þøï|¶laöÄÄ@V³‰A†1X5!»‰IÄACzb¤fÚ8‰‘ 1'óÙÏE!®V‹ÈÍ \|(ÕÃåSE¥“Èc6#ÈbëD1’ˆƒb„ônyrL("T5iE‰ˆ‡çgƒÁéÉßk8žßÎFÓñE;°Ü4/Œf—õÆñj9Ÿ†zÕì‡$eÕ7 @§ä•lÉ‘!%9κÐÝ’'â $'½Ã°ÀyèL4›Ž0,„1 m:Þ-Ž¸;œOë¿Æ³›òbµ~ª)1ËyýˆŸ÷V>ØÑ HX6 È‚ BÁˆƒ‚ôÞÀ`¼gÊJa€®b㘣A½±º¾-ù§åòý<ÿÖ˧Qb®r9À†Z¤â 8 ½Î2¥D,±Wx±šLn›Ñ~sÿsÝa®
-D ¤w
-É„@S^Tã}0»<n UÙ C
-,…A"
-Ò{ƒöœqçÚZÀù}0è:]¹y"ó1ž°Œ Ë…0lBÀŠƒ€ö0Ø ¿¶miࢆá¼\Œç—Ð8ÖòöÛ3SÜ=ñ ¡°@B³aA†,X0
-–D,¤w€ÅØÀ‡V-,²†•ˆx ëõù°‚æõÛaŒßŸ
-,H"
-Ò;\þÔZ³ÂÇyFÕ`èí+žÃ#_ (îpu³l.wÎ.ÞÏõö«ÑltUNËÙ²’Ã>J^:Ñ€ìe£ )4°:Âw£‘ˆƒBƒôc‡’¬0qŒ›®ãßÕäs4_¢õYoÊ›ù$ô"G})ôþ¼fHh6,È‚ FÁ’ˆƒ‚…ô°HÎ
-Y¨–¦+9^-ÃH1^V>”x©MhI´Ú÷"[ˆ@³A†"X&
-‘D"¤÷Xj¸cÞ; ŒðºÔœÿxÒœíþ[õTµñs¡‹“ÅíõrþÛ8l7ÏÞ¬®¯ç‹Pe¬zzàtIÍ&RÄ`ÑdÑML"ŠÒ; *… OÅ©çPÎëÙMýïï«ñÍxYVç=Ý^ìùו%Èr6AÈ"«H”ˆƒ"ˆôÎ…aJrÕS%/ã ¨b¨¢È…ñäÙj<¹ŒÌëër6¼lN¤@s—ŸžÇ•è×eóê|V?¾ÏV„7•ê¯iCã‡Ì•n$QòN SqÒÞ[ `¾K(>AÂÁÉq½aŠ¢Øp0ŸŒã0„x)þÒá<~Öl%‘!¥$Î%¥d"JIÒ{«¤-˜‹¿×BÊû 9˜¿[þsðªZeår“YÈ–¸µ£F9–Ýwh$‚ ô¥\7ÕZiÇœ*d«n3ØÔöÙ÷gÏë-_?|/ß×[U'X÷€F=~?æ,›dHÁ€5‘Ý+ëSqP8ÞÛÃ]æ
+xÚímsÛ6ÇßûShæÞØ3'ñ ¼t§×6q|‘r3wm_¨6ãhªW–’ºŸþ@‘ ®$pmä’4¶ÕÎD´ÄÕ®öÿ#vA‚ïáÞÓ†/|ÏzÅtÁuïbzPô®ÂkßðfŸ>ìÔÇ{=üã…´=ϼ¦7|×SZ3¡×oæXáï /:<y}6<=Ž~þpp:ŒïŠ=óBVoùûÁO¿½ËÀ“ÞéÞÇðGÁ¸÷¢7=PZ2­¤„g&ƒƒÅ7D¯®M“Ÿ„LH#EôQª5ïY홑B®?ˆbŽñ£>Eqø]9+£åxvuÔº8ü±¼½9ê;#ÙQ_‡Þƒòþ³½Ù¶ÔEȺ•¦ÍçŽ6‹«^½ñ«v}l¸«ÖîûWz‰b'P?Å
+éXQ–™¢0‘Ñ°2_Í"(Ë÷e½ñßù,lÙÂì‰!‰¬fƒ )b°j‚w“ˆƒ"†ôÄHÍ´q>#bN泟‹B\­‘›A¹øP.ª1†Ë§ŠJ'#ÇlF!ÅÖ‰b$ÅéÝò0ä˜PE¨jÒŠ)Ïσӓ¿×p<¿¦ã‹v`¹i^Í.ëãÕr> õªÙ'Iʪo€NÉ!+Ù’#CJrœu!»%OÄAINz‡aóЙh($>6aXc@Ût¼[qw8ŸÖg7åÅjýTSb–óú?ï­|°£A' °l!„‚!é½ÁxÏ”•>Â
+
+ƒD¤÷í9ãεµ€óû`ÐuºróDæc<a– 6$`Ø„€!í`°AmÛÒÀE Ãy¹Ï/¡q¬åí·g¦¸{âB;a„f )X°`,‰8(XHï
+D ¤w¸ü©µf…óŒªÁÐÛW<‡G¾PÜáêfÙ\îœ]¼Ÿ/êíW£Ù誜–³e%‡}”¼t¢ÙËFRh`u„íF#…éÆ%Yaâ$7]Ç¿«Éçh2¾Dë³Þ”7óIèEŽúRèýyÍ4,ÐlX! Œ‚% é`‘œ²P-,MWr¼Z†‘b¼ ¬|(ñR›Ð’hµïE¶4f#‚ )D°L"‰8(DHï±ÔpǼwáu©9ÿñ¤9Ûý·ê©jãçB'‹Ûëåü·qØnž½Y]_Ï¡ÊXõôÀé$’šM 2¤ˆÁ¢ ×ML"ŠÒ; *… OÅ©çPÎëÙMýïï«ñÍxYVç=Ý^ìùו%Èr6AÈ"«H”ˆƒ"ˆôÎ…aJrÕS%/ã ¨b¨¢È…ñäÙj<¹ŒÌëër6¼lN¤@s—ŸžÇ•è×eóê|V?¾ÏV„7•ê¯iCã‡Ì•n$QøN SqÒÞ[ `¾K(>AÂÁÉq½aŠ¢Øp0ŸŒã0„x)þÒá<~Öl%‘!¥$Î%¥d"JIÒ{«¤-˜‹¿×BÊû 9˜¿[þsðªZeår“YÈ–¸µ£F9–Ýwh$‚ ô¥\7ÕZiÇœ*d«n3ØÔöÙ÷gÏë-_?|/ß×[U'X÷€F=~?æ,›dHÁ€5‘Ý+ëSqP8ÞÛÃ]æ
Ôð3µ7qÆñÀoÊë&,Ý•Ù(óÕ
/|Âlý!¥Î ¥_"J?Ò{«ŸTÌÚ ùÄ'È‹k‡€[uù³»Ï­bó9³Elí( Q) wƒ ¤\·
-Á¬ÒxH†‚›© T^®æ8 ‰È–RãDS"'â T&½CÝ »[.M+rs'qbeXºÏ'á`4…ÛO7dH¡ƒå£ÐIÄA¡CzoБÞ1ã¸oÑQ5:oovo¨­
+Á¬ÒxH†‚›© T^®æ8 ‰È–RãDS"'â T&½CÝ »[.M+rs'qbeXºÏ'á`4…ÛO7dH¡ƒå£ÐIÄA¡CzoБÞ1ã¸oÑQ5:oovo¨­
Í÷çLÓÂ%˜zY¢oô‚ï  ä8 dH„5”Ý·Ì¥â 
-ÐýtÎ؇¼L$æ%[sdHiŽóNižˆƒÒœôšKÇ´h§"^ùßÖ<®E5‚¦àlü믓fŸóE¨Õ¶ÿæe†TdËŒ )™qª)™qP2ïxçØ{ó5R’&„¬«îo,B.†ÐÄíœ;x9¾z¿üXVÿn­êÌ8aÜ/kÈ ÷Îû®³Ö}~;*[;^“•´‡‚çõrq½þ†‰ê[Eb¾ºÓÓ¼üëb´¸ åô,uøÜG¤/ûHB†Ô‘„塘HÄA±Az6„uQ{×°!66úèQŠŠç£rZMŸ¼Õûõ/’1™¹¤`C‚” ±RRq¤ìzO¹Âxæ´¯15͘»3Ô¶§rà ¦×oÊw墜]”Ý™ƒ7¿ïx‹ ˆñv#hÙ½Æ ¿•©¯ÉcJ[æ„­e2q¼M¦æÅz‹ÓÉzÝru?-·Ou¾Òɤ4ûÈB†Ô‘…%£8IÄAñBzošV¡4³ÞpÀ%~ÔNÓúj´¼xEù¦BÅX±ŸÓn¡éÌFR¨`¹T÷ª•T*¤÷xMHɬQº…e‹¬Î‡ÜΖ£?ŽúÒëýùðû€©ÌR `©(PqP Þ[PgV
+ÐýtÎ؇¼L$æ%[sdHiŽóNižˆƒÒœôšKÇ´h§"^ùßÖ<®E5‚¦àlü믓fŸóE¨Õ¶ÿæe†TdËŒ )™qª)™qP2ïxçØ{ó5R’&„¬«îo,B.†ÐÄíœ;x9¾z¿üXVÿn­êÌ8aÜ/kÈ ÷Îû®³Ö}~;*[;^“•´‡‚çõrq½þ†‰ê[Eb¾ºÓÓ¼üëb´¸ åô,uøÜG¤/ûHB†Ô‘„塘HÄA±Az6„uQ{×°!66úèQŠŠç£rZMŸ¼Õûõ/’1™¹¤`C‚” ±RRq¤ìzO¹Âxæ´¯15͘»3Ô¶§rà ¦×oÊw墜]”Ý™ƒ7¿ïx‹ ˆñv#hÙ½Æ ¿•©¯ÉcJ[æ„­e2q¼M¦æÅz‹ÓÉzÝru?-·Ou¾Òɤ4ûÈB†Ô‘…%£8IÄAñBzošV¡4³ÞpÀ%~ÔNÓúj´¼xEù¦BÅX±ŸÓn¡éÌFR¨`¹d÷ª•T*¤÷xMHɬQº…e‹¬Î‡ÜΖ£?ŽúÒëýùðû€©ÌR `©(PqP Þ[PgV
‡@ (Ï˪ÍÆmŠ§¼ßÞŒ®ÊodQó׸4³”Í
2¤PÁrQ¨$â P!½Çá‚{ËŒñª…e_W>”˜Ê\P°!ʆTª{Ue*Ú{ ŠÓa–Ó,!ªAÙו] KÙ CŠ¬Å@"ŠÒ;Ìo¹•ÌqÂ"î7¿ýn1šNGÕÙ#+÷ÓÛ-\ £Ù¸ C
¬…K"
-Ò{Ó†pÙ>ÐÂÖ¥më„ä̹BÕ^£‹I³ÏƤ™à¡ç©÷,G˲mc"]Vì¿Œ¬Íy6OÈâ kªº×‰¥â x"½OÊ3­„<‰/ÁÓݵÌyþøÆ!Èm67ÈâkGq“ˆƒâ†ôÜHËtœ UkïÂæb>[.ªõ©»ìHÏ
-.Åc‘vó‹K:ñiRœMOkGÁƒTÝ« APèP®¡™²¾­`ê‹¡sZ‹‡@J'"ËlF! ÖŠ¢$… é8á’)eÛʤïäd<»˜¬.Ë&†YÏïêvO«Q†gム)|°„ª{Åc*
-Ò;àSp¦¸‰ô˜/EÏ݃Ì×¾¨ÿ™Wl@&³!ií(FN"»AP„P®@œgÒ)±wR}cs¢ñ È;yÇÐ"¥ÛŸô…”ç’„ì’° I‰ ’H×ð«C–I-Ú¡Æ} ’îftñø¦PÚìŸ'jí¨_'BÂÄ$‚ ~›ˆr+€IÑNžüÀLæWWÕ
-²Dm
-îŒ×wÇùÖ¿ë3׬&Áù?/
-Ì8×±ÎU¸‚i£uO†&]ÖÃéxL,<_ï…BÿÙëÒ’endstream
+Ò{Ó†pÙ>ÐÂÖËŠ¶NØHÎœ+TpPí5º˜4ûl Aš zžzŸÁr´,Û6&ÒeÅþËÈÚœgó„ )ž°¦ª{X*Š'Ò;ð¤<ÓJØÈ“ø<Ý]Ëœço‚Üfsƒ )n°v7‰8(nHïÀ´LÇÙPµöø.l.æ³å¢ZŸºËŽô¬àRÜ1i÷8¿¸¤Ÿ&ÅÙô´v<H@Õ½Ê0…åÈš)ëÛ
+¦¾:÷h¡µx¤t"¹ÌfR`­(JqP˜Þ.™R¶­LúNNƳ‹Éê²Lab˜õü®nÇqñ´eHq6>ÈÂK¨ºW<¦â ð!½>gŠ›HùRôÜ=È|í‹úŸyÅd2’ÖŽbéD!²EåºÄy&’{' Õ76'ßP¼“w -RºýI_Hy.IÈŽ J”‚ ‰t ¿:d™Ô¢jÜ— éîaFo
+©Íþy¢ÖŽúu"$AL"ê·‰(×ñ·˜íäÉß Ìd~uU­ KÔ¦àÎx}×yœoý ¹>sÍjœÿó`Fþ¸@€f7‚f⯮ö…gÉï´­þåœùf¥öÿ÷#¯íoѪÀŒsë\…+˜6Z÷dhÒe=œŽÇÄÂóõ^(ôÿç»Òhendstream
endobj
-1033 0 obj <<
+1037 0 obj <<
/Type /Page
-/Contents 1034 0 R
-/Resources 1032 0 R
+/Contents 1038 0 R
+/Resources 1036 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 951 0 R
-/Annots [ 1039 0 R 1040 0 R 1041 0 R 1042 0 R 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R ]
+/Parent 955 0 R
+/Annots [ 1043 0 R 1044 0 R 1045 0 R 1046 0 R 1047 0 R 1048 0 R 1049 0 R 1050 0 R 1051 0 R 1052 0 R 1053 0 R 1054 0 R 1055 0 R 1056 0 R 1057 0 R 1058 0 R 1059 0 R 1060 0 R 1061 0 R 1062 0 R 1063 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R ]
>> endobj
-1039 0 obj <<
+1043 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 758.5763 511.2325 767.4329]
+/Rect [499.2773 758.4766 511.2325 767.4329]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.8.1) >>
>> endobj
-1040 0 obj <<
+1044 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 746.445 511.2325 755.4012]
+/Rect [499.2773 746.5446 511.2325 755.5507]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.8.2) >>
>> endobj
-1041 0 obj <<
+1045 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 734.4133 511.2325 743.3696]
+/Rect [499.2773 734.5129 511.2325 743.519]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.8.3) >>
>> endobj
-1042 0 obj <<
+1046 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 722.3816 511.2325 731.3379]
/Subtype /Link
/A << /S /GoTo /D (section.4.9) >>
>> endobj
-1043 0 obj <<
+1047 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 710.3499 511.2325 719.3062]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.1) >>
>> endobj
-1044 0 obj <<
+1048 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 698.3182 511.2325 707.2745]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.2) >>
>> endobj
-1045 0 obj <<
+1049 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 686.2866 511.2325 695.2428]
+/Rect [499.2773 686.3862 511.2325 695.3923]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.3) >>
>> endobj
-1046 0 obj <<
+1050 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 674.3546 511.2325 683.2112]
+/Rect [499.2773 674.2549 511.2325 683.2112]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.4) >>
>> endobj
-1047 0 obj <<
+1051 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 662.3229 511.2325 671.1795]
+/Rect [499.2773 662.2232 511.2325 671.1795]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.5) >>
>> endobj
-1048 0 obj <<
+1052 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 650.2912 511.2325 659.1478]
+/Rect [499.2773 650.1915 511.2325 659.1478]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.6) >>
>> endobj
-1049 0 obj <<
+1053 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 638.2595 511.2325 647.1161]
+/Rect [499.2773 638.1599 511.2325 647.1161]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.7) >>
>> endobj
-1050 0 obj <<
+1054 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 626.1282 511.2325 635.0845]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.8) >>
>> endobj
-1051 0 obj <<
+1055 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 614.0965 511.2325 623.0528]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.9) >>
>> endobj
-1052 0 obj <<
+1056 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 602.0648 511.2325 611.0211]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.10) >>
>> endobj
-1053 0 obj <<
+1057 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 590.0331 511.2325 598.9894]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.11) >>
>> endobj
-1054 0 obj <<
+1058 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 578.0015 511.2325 586.9578]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.12) >>
>> endobj
-1055 0 obj <<
+1059 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 565.9698 511.2325 574.9261]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.9.13) >>
>> endobj
-1056 0 obj <<
+1060 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 553.9381 511.2325 562.8944]
+/Rect [499.2773 554.0378 511.2325 562.8944]
/Subtype /Link
/A << /S /GoTo /D (section.4.10) >>
>> endobj
-1057 0 obj <<
+1061 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 541.9064 511.2325 550.8627]
+/Rect [499.2773 542.0061 511.2325 550.8627]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.10.1) >>
>> endobj
-1058 0 obj <<
+1062 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 529.8748 511.2325 538.831]
+/Rect [499.2773 529.9744 511.2325 538.831]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.10.2) >>
>> endobj
-1059 0 obj <<
+1063 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 517.8431 511.2325 526.7994]
/Subtype /Link
/A << /S /GoTo /D (section.4.11) >>
>> endobj
-1060 0 obj <<
+1064 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 505.8114 511.2325 514.7677]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.11.1) >>
>> endobj
-1061 0 obj <<
+1065 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 493.7797 511.2325 502.8855]
+/Rect [499.2773 493.7797 511.2325 502.736]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.11.1.1) >>
>> endobj
-1062 0 obj <<
+1066 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 481.7481 511.2325 490.8538]
+/Rect [499.2773 481.7481 511.2325 490.7043]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.11.1.2) >>
>> endobj
-1063 0 obj <<
+1067 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 469.7164 511.2325 478.6727]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.11.1.3) >>
>> endobj
-1064 0 obj <<
+1068 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 457.6847 511.2325 466.641]
+/Rect [499.2773 457.6847 511.2325 466.7904]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.11.2) >>
>> endobj
-1065 0 obj <<
+1069 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 445.653 511.2325 454.6093]
+/Rect [499.2773 445.653 511.2325 454.7588]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.11.2.1) >>
>> endobj
-1066 0 obj <<
+1070 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 433.6213 511.2325 442.5776]
+/Rect [499.2773 433.6213 511.2325 442.7271]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.11.2.2) >>
>> endobj
-1067 0 obj <<
+1071 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 421.5897 511.2325 430.5459]
+/Rect [499.2773 421.5897 511.2325 430.6954]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.4.11.2.3) >>
>> endobj
-1068 0 obj <<
+1072 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 409.558 511.2325 418.5143]
+/Rect [499.2773 409.558 511.2325 418.6637]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.11.3) >>
>> endobj
-1069 0 obj <<
+1073 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 397.5263 511.2325 406.6321]
+/Rect [499.2773 397.5263 511.2325 406.4826]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.11.4) >>
>> endobj
-1070 0 obj <<
+1074 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 385.4946 511.2325 394.4509]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.11.5) >>
>> endobj
-1071 0 obj <<
+1075 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 373.4629 511.2325 382.4192]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.11.6) >>
>> endobj
-1072 0 obj <<
+1076 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 361.4313 511.2325 370.3876]
+/Rect [499.2773 361.4313 511.2325 370.537]
/Subtype /Link
/A << /S /GoTo /D (section.4.12) >>
>> endobj
-1073 0 obj <<
+1077 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 349.3996 511.2325 358.3559]
+/Rect [499.2773 349.3996 511.2325 358.5054]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.12.1) >>
>> endobj
-1074 0 obj <<
+1078 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 337.3679 511.2325 346.3242]
+/Rect [499.2773 337.3679 511.2325 346.4737]
/Subtype /Link
/A << /S /GoTo /D (subsection.4.12.2) >>
>> endobj
-1075 0 obj <<
+1079 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 315.0477 511.2325 323.7798]
/Subtype /Link
/A << /S /GoTo /D (chapter.5) >>
>> endobj
-1076 0 obj <<
+1080 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 303.0359 511.2325 311.9922]
/Subtype /Link
/A << /S /GoTo /D (section.5.1) >>
>> endobj
-1077 0 obj <<
+1081 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 291.0042 511.2325 299.9605]
/Subtype /Link
/A << /S /GoTo /D (section.5.2) >>
>> endobj
-1078 0 obj <<
+1082 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 268.684 511.2325 277.4161]
/Subtype /Link
/A << /S /GoTo /D (chapter.6) >>
>> endobj
-1079 0 obj <<
+1083 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 256.6722 511.2325 265.6285]
/Subtype /Link
/A << /S /GoTo /D (section.6.1) >>
>> endobj
-1080 0 obj <<
+1084 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 244.7402 511.2325 253.7462]
+/Rect [499.2773 244.6405 511.2325 253.5968]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.1.1) >>
>> endobj
-1081 0 obj <<
+1085 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 232.7085 511.2325 241.7146]
+/Rect [499.2773 232.6088 511.2325 241.5651]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.1.1.1) >>
>> endobj
-1082 0 obj <<
+1086 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 220.6768 511.2325 229.6829]
+/Rect [499.2773 220.5771 511.2325 229.5334]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.1.1.2) >>
>> endobj
-1083 0 obj <<
+1087 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 208.6451 511.2325 217.6512]
+/Rect [499.2773 208.5455 511.2325 217.5017]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.1.2) >>
>> endobj
-1084 0 obj <<
+1088 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 196.6134 511.2325 205.6195]
+/Rect [499.2773 196.5138 511.2325 205.6195]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.1.2.1) >>
>> endobj
-1085 0 obj <<
+1089 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 184.5818 511.2325 193.5878]
+/Rect [499.2773 184.4821 511.2325 193.5878]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.1.2.2) >>
>> endobj
-1086 0 obj <<
+1090 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 172.5501 511.2325 181.5562]
+/Rect [499.2773 172.4504 511.2325 181.5562]
/Subtype /Link
/A << /S /GoTo /D (section.6.2) >>
>> endobj
-1087 0 obj <<
+1091 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 160.4187 511.2325 169.5245]
+/Rect [499.2773 160.5184 511.2325 169.5245]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.1) >>
>> endobj
-1088 0 obj <<
+1092 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 148.3871 511.2325 157.4928]
+/Rect [499.2773 148.4867 511.2325 157.4928]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.2) >>
>> endobj
-1089 0 obj <<
+1093 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 136.4551 511.2325 145.4611]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.3) >>
>> endobj
-1090 0 obj <<
+1094 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 124.4234 511.2325 133.4295]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.4) >>
>> endobj
-1091 0 obj <<
+1095 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 112.292 511.2325 121.3978]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.5) >>
>> endobj
-1092 0 obj <<
+1096 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 100.2604 511.2325 109.3661]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.6) >>
>> endobj
-1093 0 obj <<
+1097 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 88.2287 511.2325 97.3344]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.7) >>
>> endobj
-1094 0 obj <<
+1098 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 76.197 511.2325 85.3027]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.8) >>
>> endobj
-1095 0 obj <<
+1099 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [499.2773 64.1653 511.2325 73.2711]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.9) >>
>> endobj
-1035 0 obj <<
-/D [1033 0 R /XYZ 56.6929 794.5015 null]
+1039 0 obj <<
+/D [1037 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1032 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R >>
+1036 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1098 0 obj <<
-/Length 3428
+1102 0 obj <<
+/Length 3381
/Filter /FlateDecode
>>
stream
-xÚíKSIÇï|
-æ
-Ñʼn‘„óé·ZÝU• Õ)j×0 GØw*Sùÿ)«*»º› ¨ÿÃV*œ'‰¢L Æ;tpæÿïÍk†ƒ†ð¨—';ÿx-ÌÀ§¹œ|ïe µ– NNÝ}õöèäàèäýÞï'?îœÄ7…Žõ;þ¹óëïtpêýÿ¸C‰pV ¾ø(aÎñÁÅŽT‚()DøÍtçýÎ/ñ Áÿ®MsD K”å&óI8Ÿ„qN¬3>:åˆ\¬?Š&܇Z8‡ F¬¥Òû¨›ÎÏÎ&³³ö8ø¶Â¡n{¿­ª‹j¶ÚrEw÷«ß(å³Éj2Ÿ5¿ÍN›–£³joè˜Ù%{CEéýü#û_ì® ­¸%šS–ryC™ÅÙ yq µ
-vChxS«›ï_'Wêqísq`¤ Þ™’ÄãF¢5“€ÂöüW‡îžœWh4%”IÓÂ0>ÍfÕ4%R©pÜ»óÅhéYðÝ+ wÀI<!½Åð
-žÛ¬ÅÝc`¥’ËbJ€!† Ô
-ã$
-ê=‘¢±ZñDŠÚHÊü²;KŠöp2³¡ÌXÆžV™ 9.&bA 1‚2q`¡ÞAÊÃá$èûé»"èµÆÈG]kB.‹I†)P+ÕߺÉÅ‘‚z«o-ü/¹
-äzñÈÅà{OxXJ¨îС:~©Oà45ãÅééºd¬‹ˆ0æ¹f„´3‘ì0$ (7ƒÀ€À\'´%ÔY0 糪áádÏÑÝÅh¶ü´žN(Þ‰ˆ‰+FbL@aLÿ
-$Fê=a¡üò“±° öß5T¼›/ÚÞÃO“åªæB>WŠ”¹b.€!ÆTƈ~.2q`\ ÞR¦4lh×pñö²ZŒVëEézññm¹ª.š×ÇÕr~µQÆU æbR#c¥z\gccŠå†˜¼0Á˜¼™80yQïI^áµJuºPÔÏâjr“ †é-ùž÷rTL
-øîhÙöÖk‹Ï£iýnÛk|HR1ÀC
-x; ìO–ã«ŒÜ?ÿ'S!$}’C
-¶),$Ùa|
-¥õa öÿU œqendstream
+xÚíKs7Çïú<ìA:‹÷㶎)§Û‘åÚ­<,j,±B‘
+IÙq>ýb8 GšÂnäH”ÊU6%O³›ýÿÃFÔÿa#«NŽŒ“DQ¦FÓ‹::óÿ÷í믇‹ÆðªoNþùJ˜‘#Ns=:ùÞËj-œþ|øü훓—oNÞýzòÝÁË“ø¦Ð1£¢}Çß~þ•ŽN½ÿï(ΪÑgÿ%Ì9>º8J%…¿™¼?ø1¾!øß­iîƒ(a‰²Üd> çà“0ΉuÆG§Ñ‚‹íGÑ„ûPÛâ/gàrÁˆµTzíeóåÙÙlqÖ_ßV"´Óýuï7“MsÑ,6Gc®èá‹æJùb¶™-Ýo&‹ÓîŇõä¬9;fÉÑXQúuþ‘Îý/vׄVÜÍ)K¹¼¡ÌêlÔ½8†Z»14¼©ÕÍ÷o“+å8‚ö¹80RPïLIbŒq## ÑšI@
+aGþ«COΛ 4šʤéa˜žO‹fžƒÆ©T¸îÝùj²ö,øˆ¾* wÀI<!½Õð
+îG2Ö°üHæÛÕäâb²jÐ÷»ùK:°"M!ßÕ4CŒ&¨§¢eš2q`4¡Þ#MÚ¹®ù‰4ñ»¡i÷¸X2·?}UÌk-5Сf BM.„Ü{¢Æb)h‚ÄNh.&ëM“íšÚé”,M§b#dî{#ôWÔ§¸šŸd‡áÄè¹æ:±c±B³¼+xn3w•"$!—Õ”
+Ô{ÂBùé'7ba;,>¼x×Qñn¹êkßÏÖ›– ùÔR¤ÌUs 1. 2†•¹ÈÄqzO\HI˜Ò° E\ÇÅÛËf5Ùl'¥ÛÉÇ—õ¦¹è^7ëåÕ¶G™6˜‹Y‹Œ•êa­ÆÆTË 1ya‚ /Ë›‰“õžä^Q«Ô 
+Eý Î&w j˜Þ“ïy‘€£j€!F
+Ä|6@÷êªèñ»Ÿü?,T+?¯f]eZ2yï;÷ðñ«Å†˜¸0½™
+•Äp¶—wŠÊ-¦7ÔÜûÖ#$­ `ˆ!EÁÈÄ!zHpljÑ&•LøîC>͚Ϲóq¤ÿ@Fíh5”`½SLw-LÐi §+/µäâ@`½'˜,%ÆÛ¸¾˜v·+Úéý9¢+¦µ`ˆAeàÉÄAƒzOÐø.Ä‚›Ñùîšm»¿"Ï 5n×(ÊÚG¼¶²]R²ÃHZºòÂ^&Œ#ÌuÂHib•J•8nï„£ÝmQl:¬Öj`€!F ”Í•oWÍÅ1ƒzË…\Jσ¥9ŽE¹v{â—Ëf{ šx¬[‹€„V 1@ D ™80@Pï Á‰cB@@ú£RžÏ'Ûû—È )÷dëhLh5.ÀÃ
+æÊ‹A¹80\Pï N‰“\A\Äõö$ž±$øS3u ™«æb\@e0.2q`\ ÞÔg˜†\ô‡©¼ø²˜\„›Þ>\žÆm)ÛÝG³¶×‘Jíì‚è¶8s[Ù{»14ÌÉ~ýýÛÄ3Š I3`º£îi}cÁœ!”ƃd}KÀè )x5›·ëpÊ=ø.ä^Ža{¢ µAC²ÌŒ–w=åA ÃÝÇ™kRÃ](á‰vË8 \[Ø–KwW7ÓewKÔúÚ”æßçM?ËÙ,Ã$' ‹ÏÛûï÷¨d ©b‚ÃŒ£‚gÁGÝÇÞ„Ah»îßJ.vkk{Tƒ‹ WHX5Àã
+‚ò ãuŸxЬ}’À÷8lï§nþØ\…»š?.ÃÑK±~Û…ãítFïm7Ч©‚d‡1
+l?Úøaryi
+÷Q¾~÷É_Ì­xšŠÄ,VC 1H J($™@0HP÷ æû*U„Dõ¼Ýœ‡»¥¯Ï~·‹*³nT2ÝÌ>µÓ!ÙcîŠB«!†$P%ÆÊ[Nr` îÓp•úª:A§/·9Ýå_™;ÿJðpA{ƒÞd3^ÏÎÝMzJ±§î)f½*`ˆAUE¡Ê‚A…ºPYG¸æ0Å+˜úÇÛã×ß¾~“{2¥!‚ŃíÔÑØÝ#°þª½œ!Ÿµ´
+Ôwz¥!Ü1H5¤¼~óüû/^æ¶U+Bµ(¡ÂÅÞõS!“µŒ
+치ïtø½‡‚3€ˆ¬AÄÏ¢r»J4±Òð0J=ªqpŸàZr’1Ž<hçz7°‰ksGl®tÔþÍqª{VÓÿ÷løôû¶×±¶0§Ô©¹ Ïe¿Ò=›Í;™¶—Øÿ [¥“Žendstream
endobj
-1097 0 obj <<
+1101 0 obj <<
/Type /Page
-/Contents 1098 0 R
-/Resources 1096 0 R
+/Contents 1102 0 R
+/Resources 1100 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 951 0 R
-/Annots [ 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R ]
+/Parent 955 0 R
+/Annots [ 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R ]
>> endobj
-1100 0 obj <<
+1104 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 758.4766 539.579 767.5824]
+/Rect [527.6238 758.5763 539.579 767.5824]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.10) >>
>> endobj
-1101 0 obj <<
+1105 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 746.5057 539.579 755.6115]
+/Rect [527.6238 746.6054 539.579 755.6115]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.10.1) >>
>> endobj
-1102 0 obj <<
+1106 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 734.5349 539.579 743.6406]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.10.2) >>
>> endobj
-1103 0 obj <<
+1107 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 722.564 539.579 731.5203]
+/Rect [527.6238 722.564 539.579 731.6697]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.10.3) >>
>> endobj
-1104 0 obj <<
+1108 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 710.5931 539.579 719.6988]
+/Rect [527.6238 710.5931 539.579 719.5494]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.11) >>
>> endobj
-1105 0 obj <<
+1109 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 698.6222 539.579 707.5785]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.12) >>
>> endobj
-1106 0 obj <<
+1110 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 686.6513 539.579 695.6076]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.13) >>
>> endobj
-1107 0 obj <<
+1111 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 674.6804 539.579 683.6367]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.14) >>
>> endobj
-1108 0 obj <<
+1112 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 662.7096 539.579 671.6658]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.15) >>
>> endobj
-1109 0 obj <<
+1113 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 650.7387 539.579 659.695]
+/Rect [527.6238 650.7387 539.579 659.8444]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.16) >>
>> endobj
-1110 0 obj <<
+1114 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 638.7678 539.579 647.8735]
+/Rect [527.6238 638.7678 539.579 647.7241]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.1) >>
>> endobj
-1111 0 obj <<
+1115 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 626.7969 539.579 635.7532]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.2) >>
>> endobj
-1112 0 obj <<
+1116 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 614.826 539.579 623.7823]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.3) >>
>> endobj
-1113 0 obj <<
+1117 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 602.8551 539.579 611.8114]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.4) >>
>> endobj
-1114 0 obj <<
+1118 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 590.8843 539.579 599.8405]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.5) >>
>> endobj
-1115 0 obj <<
+1119 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 578.9134 539.579 587.8696]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.6) >>
>> endobj
-1116 0 obj <<
+1120 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 567.0421 539.579 576.0482]
+/Rect [527.6238 566.9425 539.579 575.8988]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.7) >>
>> endobj
-1117 0 obj <<
+1121 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 554.9716 539.579 563.9279]
+/Rect [527.6238 555.0713 539.579 564.0773]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.8) >>
>> endobj
-1118 0 obj <<
+1122 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 543.0007 539.579 551.957]
+/Rect [527.6238 543.1004 539.579 551.957]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.9) >>
>> endobj
-1119 0 obj <<
+1123 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 531.1295 539.579 540.1356]
+/Rect [527.6238 531.1295 539.579 539.9861]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.10) >>
>> endobj
-1120 0 obj <<
+1124 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 519.0589 539.579 528.0152]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.11) >>
>> endobj
-1121 0 obj <<
+1125 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 507.0881 539.579 516.0443]
+/Rect [527.6238 507.1877 539.579 516.1938]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.12) >>
>> endobj
-1122 0 obj <<
+1126 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 495.1172 539.579 504.0735]
+/Rect [527.6238 495.2168 539.579 504.2229]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.13) >>
>> endobj
-1123 0 obj <<
+1127 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 483.2459 539.579 492.1026]
+/Rect [527.6238 483.1463 539.579 492.1026]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.14) >>
>> endobj
-1124 0 obj <<
+1128 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 471.1754 539.579 480.1317]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.15) >>
>> endobj
-1125 0 obj <<
+1129 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 459.2045 539.579 468.1608]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.16) >>
>> endobj
-1126 0 obj <<
+1130 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 447.2336 539.579 456.1899]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.17) >>
>> endobj
-1127 0 obj <<
+1131 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 435.2628 539.579 444.3685]
+/Rect [527.6238 435.2628 539.579 444.219]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.18) >>
>> endobj
-1128 0 obj <<
+1132 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 423.2919 539.579 432.3976]
+/Rect [527.6238 423.2919 539.579 432.2481]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.19) >>
>> endobj
-1129 0 obj <<
+1133 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 411.321 539.579 420.2773]
+/Rect [527.6238 411.321 539.579 420.4267]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.20) >>
>> endobj
-1130 0 obj <<
+1134 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 399.3501 539.579 408.3064]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.17) >>
+/A << /S /GoTo /D (subsubsection.6.2.16.21) >>
>> endobj
-1131 0 obj <<
+1135 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 387.3792 539.579 396.3355]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.18) >>
+/A << /S /GoTo /D (subsection.6.2.17) >>
>> endobj
-1132 0 obj <<
+1136 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 375.4083 539.579 384.3646]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.19) >>
+/A << /S /GoTo /D (subsection.6.2.18) >>
>> endobj
-1133 0 obj <<
+1137 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 363.4374 539.579 372.3937]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.20) >>
+/A << /S /GoTo /D (subsection.6.2.19) >>
>> endobj
-1134 0 obj <<
+1138 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 351.4666 539.579 360.4228]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.21) >>
+/A << /S /GoTo /D (subsection.6.2.20) >>
>> endobj
-1135 0 obj <<
+1139 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 339.4957 539.579 348.452]
+/Rect [527.6238 339.4957 539.579 348.6014]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.22) >>
+/A << /S /GoTo /D (subsection.6.2.21) >>
>> endobj
-1136 0 obj <<
+1140 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 327.5248 539.579 336.6305]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.23) >>
+/A << /S /GoTo /D (subsection.6.2.22) >>
>> endobj
-1137 0 obj <<
+1141 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 315.5539 539.579 324.6596]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.24) >>
+/A << /S /GoTo /D (subsection.6.2.23) >>
>> endobj
-1138 0 obj <<
+1142 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 303.583 539.579 312.5393]
+/Rect [527.6238 303.583 539.579 312.6888]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.25) >>
+/A << /S /GoTo /D (subsection.6.2.24) >>
>> endobj
-1139 0 obj <<
+1143 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 291.6121 539.579 300.5684]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.26) >>
+/A << /S /GoTo /D (subsection.6.2.25) >>
>> endobj
-1140 0 obj <<
+1144 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 279.6413 539.579 288.5975]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.27) >>
+/A << /S /GoTo /D (subsection.6.2.26) >>
>> endobj
-1141 0 obj <<
+1145 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 267.6704 539.579 276.6267]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.2.28) >>
+/A << /S /GoTo /D (subsection.6.2.27) >>
>> endobj
-1142 0 obj <<
+1146 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 255.6995 539.579 264.6558]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.2.28.1) >>
+/A << /S /GoTo /D (subsection.6.2.28) >>
>> endobj
-1143 0 obj <<
+1147 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 243.7286 539.579 252.6849]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.2.28.2) >>
+/A << /S /GoTo /D (subsubsection.6.2.28.1) >>
>> endobj
-1144 0 obj <<
+1148 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [527.6238 231.7577 539.579 240.714]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.2.28.3) >>
+/A << /S /GoTo /D (subsubsection.6.2.28.2) >>
>> endobj
-1145 0 obj <<
+1149 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 219.7868 539.579 228.8926]
+/Rect [527.6238 219.7868 539.579 228.7431]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.2.28.4) >>
+/A << /S /GoTo /D (subsubsection.6.2.28.3) >>
>> endobj
-1146 0 obj <<
+1150 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 207.8159 539.579 216.9217]
/Subtype /Link
-/A << /S /GoTo /D (section.6.3) >>
+/A << /S /GoTo /D (subsubsection.6.2.28.4) >>
>> endobj
-1147 0 obj <<
+1151 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 195.845 539.579 204.9508]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.3.1) >>
+/A << /S /GoTo /D (section.6.3) >>
>> endobj
-1148 0 obj <<
+1152 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 183.8742 539.579 192.9799]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.3.1.1) >>
+/A << /S /GoTo /D (subsection.6.3.1) >>
>> endobj
-1149 0 obj <<
+1153 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 171.9033 539.579 181.009]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.3.1.2) >>
+/A << /S /GoTo /D (subsubsection.6.3.1.1) >>
>> endobj
-1150 0 obj <<
+1154 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 159.9324 539.579 169.0381]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.3.2) >>
+/A << /S /GoTo /D (subsubsection.6.3.1.2) >>
>> endobj
-1151 0 obj <<
+1155 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 147.9615 539.579 157.0673]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.3.3) >>
+/A << /S /GoTo /D (subsection.6.3.2) >>
>> endobj
-1152 0 obj <<
+1156 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 135.9906 539.579 145.0964]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.3.4) >>
+/A << /S /GoTo /D (subsection.6.3.3) >>
>> endobj
-1153 0 obj <<
+1157 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 124.1194 539.579 133.1255]
+/Rect [522.6425 124.0197 539.579 133.1255]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.3.5) >>
+/A << /S /GoTo /D (subsection.6.3.4) >>
>> endobj
-1154 0 obj <<
+1158 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 112.1485 539.579 121.1546]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.3.5.1) >>
+/A << /S /GoTo /D (subsection.6.3.5) >>
>> endobj
-1155 0 obj <<
+1159 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 100.1776 539.579 109.1837]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.3.5.2) >>
+/A << /S /GoTo /D (subsubsection.6.3.5.1) >>
>> endobj
-1156 0 obj <<
+1160 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 88.2068 539.579 97.2128]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.3.5.3) >>
+/A << /S /GoTo /D (subsubsection.6.3.5.2) >>
>> endobj
-1157 0 obj <<
+1161 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 76.2359 539.579 85.242]
/Subtype /Link
-/A << /S /GoTo /D (subsubsection.6.3.5.4) >>
+/A << /S /GoTo /D (subsubsection.6.3.5.3) >>
>> endobj
-1158 0 obj <<
+1162 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 64.265 539.579 73.2711]
/Subtype /Link
-/A << /S /GoTo /D (subsection.6.3.6) >>
+/A << /S /GoTo /D (subsubsection.6.3.5.4) >>
>> endobj
-1099 0 obj <<
-/D [1097 0 R /XYZ 85.0394 794.5015 null]
+1103 0 obj <<
+/D [1101 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1096 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R >>
+1100 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1161 0 obj <<
-/Length 3432
+1165 0 obj <<
+/Length 3487
/Filter /FlateDecode
>>
stream
-xÚímsÛÆÇßëSð]¥™ê|8\û¢#Éqê4qRI™Î4í ˆ„(ŒI@!HkÜOßqwXŠ‡.vËf<Q"»Üÿï÷M¨ýÇ&*#™áf¢$Š25™.èdnßûúˆ¹cNýA§ð¨ó룯„žb2žM®o'R)ÂÕöd9¡yÎ&׳ŸŽ/¾sý՛뫓ÿ^sôÕu8+ǫ̂èNùóÑOÿ¥“™ à›#J„ÉÕäÁþB 3†O–GR ¢¤þ/‹£«£†‚w·¦ÑOÂ(á"ã‘Â9ø(Ý›ŠM´2$\l?HFÑ'§ŒSz|6›U목‹ÅÉ)WôøUµ(Ý«fµ,ÖíÉi¦³crrªìÑŸôi̇Ÿå‘¶ÒXŒÍ[Hàž«ù¤q ä v§Ðp_žýów1&ö ózÇÁè@ÝkfßÌ,ºR[L(wxH µœ¿~óÒô4\­‹uÕ®«©Bqú,€ø¤yòOæ b<AE“ã<EÁxBÝ3náLN´PDfy
-‹15NJ$ŒÔýP9#‚JÀJ¨oŠ¥/åê]¹Š—‘!Éóç ÷¨Ð>ÉBCLh˜iTèH ˜Ð¨û tf ᜹ÓùßMítþ®¨¬–uQOË_Ûhù©è:&¨ÿÄ©z;DN˜OƲQ5#Q b¢¾-sMìAJ᤼,Ûfñ„¦šgüùêQûl$ËÌ0•‡L£"ï…€iŒ8$ÖŠP¥ Y:‘¯šéÛrÝKúúÅ÷¿¤uFåç ²ÏG²ÌÀæ›1=.u$LlÔý wƉ±ƒG ·rr_4Ë{«íMµ¨Öï{qªõ]à‹WÂìœMihfcèNÓ 'û£v|Úƒ„Ñî˜|ñ©uG‰ð)K&bD@IËljˆ‚±çž÷~v+“”H.ôÖ{7{Di?AÐ æ§ Êéf°¸h궚•«¢›ajÇçOmxZ€Á~ÄûçífÆ·%jÏml.%ã9’e}¢¶×n.ål:-ÛP ëõê„åÇ›uûÖVÊí{ò0£’Þî|“Û0ÄÚÅ(†ê>àÄ2•ñ8qW@!ðܶ_&™« w«¦YGꬄJîŽ*êYäLÌ¡´tÇ\•ëM5‹)·!I_²¿€©ÀM¬×4™X`ˆ ™aœŽ #uï&{l÷Ž0­•6LötûÈ)f©Ì…ci:
-¯jîûª~Wõ´^–µízŠL|9Õq+Ÿùd¬€!†TÅ*†êÞa¥ 'Ô¨+î°ú±­êy]G ÓɯŽíhM£DÓPÓ^mêi×i±ªè/©õT¤ !‚ÔŽªR±@¤p÷þÚªrJ(Ò1%\WíåûºXVÓž©ïgź|Ü»Õ*;ôÆâÄøœ& 1b f(1‘@0böÜÇFAJÙmƸ«nGA×'Œ±ãU³¹Y”í½~ui4?þ Oì@d°³ãã Èð|X>öÜF[TDhãò;ÍrÙÏ®ÑüÐ_¨mn–Ýp^ÊÃØ&½Qù4'7*`ˆ5*(#
-O$ "Ô½¿² a£ÐÌ3:Œ¯×ræºqÓ‹Íê­m]í»kúÓÂÁöºÿñJù|³Ï•îfãÏpW„Ó>¸>äüo¶¢³ü `TpŸ“dÁ!&8Ì9*x$LpÔ}¨Üöæ™òŠsW5^×Ó^²®O:uÝHµŸ5¹+êùN_ϯV~÷Ò›Íò¦[l°NžQ)…À§)`ˆA
-Œá‡ÁÉSñYMFbÈ@Õ˜_t‰‚!ƒºwȈÜþ‰K=2߯ïüÆâ—Ít
-ÇÙM˜îí‡!Šñ/£r•
-4D@ØÑ!îÞ÷1„Ö$—Ü“ ]ãñ&Ä0Lù¶ºY~Ìzµ¹¿oV‹Œ™Ãä†×Óg4™`ˆñCy‰‚ñ‚º÷…#SDgTx\|ߣ_‘tØŸ7U[u üš¦Å~@>ÇÉ
-"` î=L)8 ¨ž‚ð
-LÌ÷ NfºÇÄ ŽØUÇOLخݸFa’k½*궘ú1=ž.ªí=Q†Š?¨aùO˜,0ÄÔƒDå‹‚釺TšPΠ€rWÀyQ9áæåº[¯êÛ¦[ÍêW²vöÉØ#êbYî±ËcÓffEWBýöÊù–¬0Ä”ƒ©C•‹‚)‡º”“’aàµOí*·ÙÞí3ÞêfðÖ  ¸5È7ºîõ}_ ç«byrªw–-?ÖÖàðI’…†˜P0SLŒ?.,&ê~Jp’+ …ÊœPuëÒ{ãeš5Ë¢ª_ÔáéP-x:Ôô®œ¾õ¿TµoZ«e»»“íòÕEÿBR-ÓïïÕÉd€!¦Lã[Æb`:¡îÝhƒsJ´V:¨¤ûÑÆβËÎV1›tMÕa£iœŸÎdV€!Æ
-” e%ÆÊžûØFmfr¹è—Ï»íâø»¢Þø½…÷ÅÙ¯¬Ÿº_ ûµw¢bbü);ð|H.öÝÆÖ1m'‘0éãt¾]–æxVÍ?ÏnN(è‘Úò !ÒòvôF)‹‚цº´iI¨2ž6ÞÓv×tÝK¥¸ýþ¸yA’q†nPp&Ç{Ù±@0ÜP÷·Œ£µp¸ WÜê¶-§§ÛîØlûÀ?qÀéC9ò™NæbA%™ÄÁ8BÝŽ¤!¹Qž#¹ËQc{ø¶ÇÐ-¿›H
-’Ou2HÀ JÉäxÏ3ê>€$4Éýí‰çÛU´¤Y{Û'—oK;by~ÀèWcäŒ0Ä0‚B2‰t£"`¡îF\-Ü6η+kFÏÑ¢¸)Ïüæ
-°CX‚j25~W$
-„$Ôwø")M$õ=mFûᙩš×ÿÛ~µƒ”‡Áÿ;HŸéäï fØ7ƒ *25ÞUÚûVÄqxÖ±"~眥‡íÐcÇûÕm·¦”ËìäÇ}qŸõä‡Æ3쑱ƒ¢,ŸˆÜa¤ð¥ˆ§ÜúóèƒsìÿŒ¥ø‡ãðU‘R‘}Á׆pJõ¤û,72­Þ!7l¡ÿÒŸæ(endstream
+xÚí[sÛÆÇßõ)øЙJ3Õz¯XlûÐÑÅv•&J*)Ó™¦}€HˆÄ˜´ê~ú.ˆÝ塸8b;±,Æ“!%áàžÿoö¨ýÇF*!‰áf¤$Š25/èhjÿöö€¹cŽýAÇð¨Ó›ƒWo„bžŒnîFR)ÂÕúd)¡iÊF7“ŸϾ¿¼y}ys}ôŸ›o^ß„³BÏŒŠö”?üô:šØ
+á3?¸>øG8!øëÚ4úI%\$<òQ8¥ý£b#­ Ië’A’£cÆ)=<½¸<?:æŠ~—ÕM¾ìÞ¿)æy÷îõ›¼¬‹ªüóѱ`ô°™åíç·^ðÂtB´VÒÆÖ:øÃÛ×—¯¯NŽ ?¼yí‡A%‚P*”;ú¼X±ô07Å{ë5¡É!9:V6¸ÏúòHEi¬æÆf(¤j'íËé¨{s„vÇÐpWˆÝó·Ÿ1¾ƒ“W6ÆêÞs µ}¥<p '“IÑX™³ùcÞTËEÖÔVýÛó±/Ò˜ÏH‡Oà`:€!Fˆ1ÑOG$ŒÔ½fÄ–0¡ˆLR‡´pPÕ ÓÑpÝdMQ7ÅØ¡8}@|Ñ<ùŒæ b<AE“ý<EÁxBÝ3náLŽ4D¤ ó@{Á³P KÒÍ,ßEjSzLÊ_$>aƒy
+DcÔ÷FâTû²Q˜;…ÿU•¹”VÅ2+Çù/Él´üR핲ûÀƒ• f˜›d2–ôë¸&#âx£¢V„*m€ŽÂéx•×Õü -4Møó+Ͻ"û| –bBÃ|£RGÁÄFÝoäN81v¬ ä–Nîëjü.o:q/^}ÿKª'T~ rû| –brÃ|3¦û厂ɺßÈ­(IHÜÊÉ}V-î­¶·Å¼h>tâ>ͬ›ïfëlšHC7᳞sÚ² £Ý1é-âKëöáS6˜`ˆ%a,í'"FÄŽ{8Åçg9ž!Y²öÞÎÑ­YD?MWË€ÅYUÖÅ$_fí SÝŸ8jÀÓ v#Þ=o—0ÓŸ0p>,Q;ncs) KWÆ%jÝ{mçRNÆã¼µ°lÖsŸ•›uûÖVÊõßä~Fex»ó Üî€!Öî  (F‘@0œP÷'jk¯ÖÊáÄ#³ðÜVt&™« g³eU5‘:+$¡’»£²r›Ï7D(í§ó¯ófULbgJmàÒ—ì0ø©‰õš&bÄBf§ýÄFÁˆEÝ»Ée8¡F`ÃdÏMt I1Ke*Kã^xí(QsØëò}·xT•‹¼´]O‘ˆ—Sû°
+™Š4D°ÚRÃ*‚îÞc•RB™+î°ú±.Êiw/RêÄvo|u¬{k%š†šöfUŽÛN‹UE¿h¤|Ö# 1¤ ª(R‘@0¤P÷þÚªMŒ`ž)áºjçÊlQŒ;¦~¼ŸdMþ¸w«U²ïʼnñ9L 0Ĉš¡ÄDÁˆÙq)©ˆÐ†û±êztsÄ;\V«Ûy^Ïìõ«-H½ùñgxê` ƒ­Èï_@†çÃò±ã6Ú‚„°îu·X†ÁÎYµX´Å³m4?tj››E;œ—r?¶Þ¨|š7*`ˆ5*(#
+O$ "Ô½¿²sÛ·c*0:ŒÍÝ€¹¬ÜôâCµ|g[×_ºŸfÕC÷fœ9Ø.º—Sʧ«n{Q÷›jåÏ0ËÂi\rúW[ÑYú;PÐ+¸ÏÉ`Á!&8Ì9*x$LpÔ}¨Ô&„œ»¢qQŽ;ÅÚ.}èÓµÕnÒd–•Ó­®ž_ ,üæ¥ËÕâ¶]u°>žQ%èeÀei0;Œ
+Àn˜þ˜o/¿4šÐÐÞ}¯ëŸ³6سGMú­_aø[>¿·íUÊýä)ùd¥Ø!A)1Š"Q íøŽuŤ–DšT¯}ŸØÎùáÉý}^NŠqÞ?ÙÌžÚÿ‚Hÿk+ÆûWÔáù°ì¸6¥„É—„öÊ©µMÃø]Y=ÌóÉ´-¥íB+7û^×ð¦ã“;¸í
+G‚t}ŒÇÛÃ0åÛâv™ù1ëõêþ¾ZZ,fö“^OŸÑÁ¼
+¹çf87>µƒ¹†7P:”›H 7¨{Ï 7D1¹áFøNnÝdsÎW»Ïû7áǧx0?ÀãJˆò ãuïùašHÁYàGvüü½¬Üzèy~—›úÕ•D/‹qwkűùb»6Ÿg¨5˜`ˆQ
+TGAxt¤¬É¸*ïàƒ’Tï ŠŒÏê`d€!† T‰þüÄÁAÝ;d¸„'i &鈹Î÷þ>'÷÷óbìîÅ:V2Ù¯÷nâs8”`‡àÂèˆDÀúwsò”–&:ºšv]¯qùÊ:PêbMݬn»wnÜؽjÜ- Jêg²\ç1Xâ&1H3*ñn˜Ä˜ïĉiŸBg€Æ|Kãã¬þPŽ+­å៶ö^º…¿öd3·²ZÕóí–,þ‘êøÏ0X`ˆésÄDÿv¥X ˜B¨ûDJÊ”HlKä'&l×®_¨0ÉÕ,³²ÎÆ~LAÇób}7”¡âwj^þb ¢FÁDÝo”’aÀU¶{TÚFÀiV8á¦yÓ.Žå]Õ®fu+Y[ûdìe¶ÈwhÂòظšXÑ•PŸ_9ÿÑ+ 1å`êPå"`Ê¡î7Ê NR¥¡rj[¹Õú>ŸþV77­ÀMA¾Ñµïﻂ8]f‹£c½µlù©v‡O2X(`ˆ 3ÅDÿƒÂb`B¡î7BqÚ>QT¡'TY»ôÞz™&Õ"+ÊWex0T  5žåãwþ‡¢ôMk¹¨·w²]½9ëÞHªåð;»zuòd°NÀÓ &Š‰þ-c±@0P÷~´AS’±QIwíe—­­b6險ýFÓ8+>ƒY†+P.”•H +;îcµmß•0éîØ;m·sˆÃï²rå÷ÞgSd¿v°~ê~mh€ì×ÞŠŠ‰þçëÀó!¹Øu[ÇdZªŒËÅzYJ˜ÃI1ý:v<<»9¡ ÇЖ ‘–·¥7JY$Œ6Ô} -aÄh-m¼£mVµÝK¥÷¸ýö¸yAã 1Ü àLö÷²c`¸¡înÒÔ(›pÅ­¬ë||¼îŽMÖý{œ>–#ŸéÁCŒ#¨$“ýƒ€X G¨ûÀ‘Ð$õ÷&ž®—À
+É$ÒŠ‚a„º1Ai<FÉFÏÑ<»ÍçÏüÑå¿;>»ƒÙ†;P=&û› cuØ¡Œ¨Ä=Yãt=O²ÅÎ4o7’Iµïh"š|¾Ó 1š žLõï ‰‚Ñ„º÷4¥†ÈTy˜Ò-˜º©¶÷Õ»v/ˆb{ > P>åCyvNPP¦ú»G‘(˜Pßá;4‘Ô÷±ÍJuÞ4E;§¾/LŸîk;ºtþÒŽ`†}eÇFJ¦úïêÚ ûºÄqx6­"~‹Ü)a´’y†Šiù¿õ÷9H¹ðü³ÅɯÙì¸1CŸ+Td
+{ª8ù¥mŽá ¹ç§ilÊÜþψQŠü÷%n¾ÖQjbÇo=]1® á”êQûÕUn(Z¼Gn'XBÿ?ßðßvendstream
endobj
-1160 0 obj <<
+1164 0 obj <<
/Type /Page
-/Contents 1161 0 R
-/Resources 1159 0 R
+/Contents 1165 0 R
+/Resources 1163 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 951 0 R
-/Annots [ 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R ]
+/Parent 955 0 R
+/Annots [ 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1179 0 R 1180 0 R 1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R 1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R ]
>> endobj
-1163 0 obj <<
+1167 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [494.296 758.5763 511.2325 767.5824]
+/Subtype /Link
+/A << /S /GoTo /D (subsection.6.3.6) >>
+>> endobj
+1168 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 758.4766 511.2325 767.5824]
+/Rect [494.296 746.3946 511.2325 755.5003]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.3.7) >>
>> endobj
-1164 0 obj <<
+1169 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 746.4943 511.2325 755.5003]
+/Rect [494.296 734.4122 511.2325 743.4183]
/Subtype /Link
/A << /S /GoTo /D (section.6.4) >>
>> endobj
-1165 0 obj <<
+1170 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 734.4122 511.2325 743.4183]
+/Rect [494.296 722.3302 511.2325 731.3362]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.4.0.1) >>
>> endobj
-1166 0 obj <<
+1171 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 722.2305 511.2325 731.3362]
+/Rect [494.296 710.1484 511.2325 719.2542]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.4.1) >>
>> endobj
-1167 0 obj <<
+1172 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 710.1484 511.2325 719.2542]
+/Rect [494.296 698.0664 511.2325 707.1721]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.4.1.1) >>
>> endobj
-1168 0 obj <<
+1173 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 698.0664 511.2325 707.1721]
+/Rect [494.296 685.9843 511.2325 695.0901]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.4.1.2) >>
>> endobj
-1169 0 obj <<
+1174 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 685.9843 511.2325 695.0901]
+/Rect [494.296 673.9023 511.2325 683.008]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.4.1.3) >>
>> endobj
-1170 0 obj <<
+1175 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 674.002 511.2325 683.008]
+/Rect [494.296 661.9199 511.2325 670.926]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.4.1.4) >>
>> endobj
-1174 0 obj <<
+1179 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 661.8203 511.2325 670.926]
+/Rect [494.296 649.7382 511.2325 658.8439]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.4.1.5) >>
>> endobj
-1175 0 obj <<
+1180 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 639.2482 511.2325 648.1048]
+/Rect [494.296 627.1661 511.2325 636.0228]
/Subtype /Link
/A << /S /GoTo /D (chapter.7) >>
>> endobj
-1176 0 obj <<
+1181 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 627.186 511.2325 636.2917]
+/Rect [494.296 615.1039 511.2325 624.2097]
/Subtype /Link
/A << /S /GoTo /D (section.7.1) >>
>> endobj
-1177 0 obj <<
+1182 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 615.1039 511.2325 624.2097]
+/Rect [494.296 603.0219 511.2325 612.1276]
/Subtype /Link
/A << /S /GoTo /D (section.7.2) >>
>> endobj
-1178 0 obj <<
+1183 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 603.0219 511.2325 612.1276]
+/Rect [494.296 590.9398 511.2325 600.0456]
/Subtype /Link
/A << /S /GoTo /D (subsection.7.2.1) >>
>> endobj
-1179 0 obj <<
+1184 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 590.9398 511.2325 600.0456]
+/Rect [494.296 578.8578 511.2325 587.9635]
/Subtype /Link
/A << /S /GoTo /D (subsection.7.2.2) >>
>> endobj
-1180 0 obj <<
+1185 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 578.8578 511.2325 587.9635]
+/Rect [494.296 566.7757 511.2325 575.8815]
/Subtype /Link
/A << /S /GoTo /D (section.7.3) >>
>> endobj
-1181 0 obj <<
+1186 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 556.2857 511.2325 565.1423]
+/Rect [494.296 544.2037 511.2325 553.0603]
/Subtype /Link
/A << /S /GoTo /D (chapter.8) >>
>> endobj
-1182 0 obj <<
+1187 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 544.2235 511.2325 553.3293]
+/Rect [494.296 532.1415 511.2325 541.2472]
/Subtype /Link
/A << /S /GoTo /D (section.8.1) >>
>> endobj
-1183 0 obj <<
+1188 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 532.1415 511.2325 541.2472]
+/Rect [494.296 520.0594 511.2325 529.1652]
/Subtype /Link
/A << /S /GoTo /D (subsection.8.1.1) >>
>> endobj
-1184 0 obj <<
+1189 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 520.0594 511.2325 529.1652]
+/Rect [494.296 507.9774 511.2325 517.0831]
/Subtype /Link
/A << /S /GoTo /D (section.8.2) >>
>> endobj
-1185 0 obj <<
+1190 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 507.9774 511.2325 517.0831]
+/Rect [494.296 495.8953 511.2325 505.0011]
/Subtype /Link
/A << /S /GoTo /D (section.8.3) >>
>> endobj
-1186 0 obj <<
+1191 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 485.4053 511.2325 494.2619]
+/Rect [494.296 473.3232 511.2325 482.1799]
/Subtype /Link
/A << /S /GoTo /D (appendix.A) >>
>> endobj
-1187 0 obj <<
+1192 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 473.3431 511.2325 482.4488]
+/Rect [494.296 461.2611 511.2325 470.3668]
/Subtype /Link
/A << /S /GoTo /D (section.A.1) >>
>> endobj
-1188 0 obj <<
+1193 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 461.2611 511.2325 470.3668]
+/Rect [494.296 449.179 511.2325 458.2847]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.1.1) >>
>> endobj
-1189 0 obj <<
+1194 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 449.179 511.2325 458.2847]
+/Rect [494.296 437.097 511.2325 446.2027]
/Subtype /Link
/A << /S /GoTo /D (section.A.2) >>
>> endobj
-1190 0 obj <<
+1195 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 437.097 511.2325 446.2027]
+/Rect [494.296 425.0149 511.2325 434.1207]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.2.1) >>
>> endobj
-1191 0 obj <<
+1196 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 425.0149 511.2325 434.1207]
+/Rect [494.296 412.9329 511.2325 422.0386]
/Subtype /Link
/A << /S /GoTo /D (section.A.3) >>
>> endobj
-1192 0 obj <<
+1197 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 412.9329 511.2325 422.0386]
+/Rect [494.296 400.8508 511.2325 409.9566]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.3.1) >>
>> endobj
-1193 0 obj <<
+1198 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 400.8508 511.2325 409.9566]
+/Rect [494.296 388.7688 511.2325 397.8745]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.3.2) >>
>> endobj
-1194 0 obj <<
+1199 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 388.7688 511.2325 397.8745]
+/Rect [494.296 376.6867 511.2325 385.7925]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.3.3) >>
>> endobj
-1195 0 obj <<
+1200 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 376.6867 511.2325 385.7925]
+/Rect [494.296 364.6047 511.2325 373.7104]
/Subtype /Link
/A << /S /GoTo /D (section.A.4) >>
>> endobj
-1196 0 obj <<
+1201 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 364.6047 511.2325 373.7104]
+/Rect [494.296 352.5226 511.2325 361.6284]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.1) >>
>> endobj
-1197 0 obj <<
+1202 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 352.5226 511.2325 361.6284]
+/Rect [494.296 340.4406 511.2325 349.5463]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.2) >>
>> endobj
-1198 0 obj <<
+1203 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 340.4406 511.2325 349.5463]
+/Rect [494.296 328.3585 511.2325 337.4643]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.3) >>
>> endobj
-1199 0 obj <<
+1204 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 328.3585 511.2325 337.4643]
+/Rect [494.296 316.2765 511.2325 325.3822]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.4) >>
>> endobj
-1200 0 obj <<
+1205 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 316.2765 511.2325 325.3822]
+/Rect [494.296 304.1944 511.2325 313.3002]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.5) >>
>> endobj
-1201 0 obj <<
+1206 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 304.1944 511.2325 313.3002]
+/Rect [494.296 292.1124 511.2325 301.2181]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.6) >>
>> endobj
-1202 0 obj <<
+1207 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 292.1124 511.2325 301.2181]
+/Rect [494.296 280.0303 511.2325 289.1361]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.A.4.6.1) >>
>> endobj
-1203 0 obj <<
+1208 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 280.0303 511.2325 289.1361]
+/Rect [494.296 267.9483 511.2325 277.054]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.A.4.6.2) >>
>> endobj
-1204 0 obj <<
+1209 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 267.9483 511.2325 277.054]
+/Rect [494.296 255.8662 511.2325 264.972]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.A.4.6.3) >>
>> endobj
-1205 0 obj <<
+1210 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 255.8662 511.2325 264.972]
+/Rect [494.296 243.7842 511.2325 252.8899]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.A.4.6.4) >>
>> endobj
-1206 0 obj <<
+1211 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 243.7842 511.2325 252.8899]
+/Rect [494.296 231.7021 511.2325 240.8079]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.A.4.6.5) >>
>> endobj
-1207 0 obj <<
+1212 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 231.7021 511.2325 240.8079]
+/Rect [494.296 219.6201 511.2325 228.7258]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.A.4.6.6) >>
>> endobj
-1208 0 obj <<
+1213 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 219.6201 511.2325 228.7258]
+/Rect [494.296 207.538 511.2325 216.6438]
/Subtype /Link
/A << /S /GoTo /D (subsection.A.4.7) >>
>> endobj
-1209 0 obj <<
+1214 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 197.048 511.2325 205.9046]
+/Rect [494.296 184.9659 511.2325 193.8226]
/Subtype /Link
/A << /S /GoTo /D (appendix.B) >>
>> endobj
-1210 0 obj <<
+1215 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 184.9858 511.2325 194.0916]
+/Rect [494.296 172.9038 511.2325 182.0095]
/Subtype /Link
/A << /S /GoTo /D (section.B.1) >>
>> endobj
-1211 0 obj <<
+1216 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 172.9038 511.2325 182.0095]
+/Rect [494.296 160.8217 511.2325 169.9275]
/Subtype /Link
/A << /S /GoTo /D (section.B.2) >>
>> endobj
-1212 0 obj <<
+1217 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 160.9214 511.2325 169.9275]
+/Rect [494.296 148.8393 511.2325 157.8454]
/Subtype /Link
/A << /S /GoTo /D (section.B.3) >>
>> endobj
-1213 0 obj <<
+1218 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 148.7397 511.2325 157.8454]
+/Rect [494.296 136.6576 511.2325 145.7634]
/Subtype /Link
/A << /S /GoTo /D (section.B.4) >>
>> endobj
-1214 0 obj <<
+1219 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 136.7573 511.2325 145.7634]
+/Rect [494.296 124.6752 511.2325 133.6813]
/Subtype /Link
/A << /S /GoTo /D (section.B.5) >>
>> endobj
-1215 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [494.296 124.5756 511.2325 133.6813]
-/Subtype /Link
-/A << /S /GoTo /D (section.B.6) >>
->> endobj
-1216 0 obj <<
+1220 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [494.296 112.4935 511.2325 121.5993]
/Subtype /Link
-/A << /S /GoTo /D (section.B.7) >>
+/A << /S /GoTo /D (section.B.6) >>
>> endobj
-1217 0 obj <<
+1221 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [494.296 100.4115 511.2325 109.5172]
/Subtype /Link
-/A << /S /GoTo /D (section.B.8) >>
+/A << /S /GoTo /D (section.B.7) >>
>> endobj
-1218 0 obj <<
+1222 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [494.296 88.3294 511.2325 97.4352]
/Subtype /Link
-/A << /S /GoTo /D (section.B.9) >>
+/A << /S /GoTo /D (section.B.8) >>
>> endobj
-1219 0 obj <<
+1223 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [494.296 76.2474 511.2325 85.3531]
/Subtype /Link
-/A << /S /GoTo /D (section.B.10) >>
+/A << /S /GoTo /D (section.B.9) >>
>> endobj
-1220 0 obj <<
+1224 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [494.296 64.1653 511.2325 73.2711]
/Subtype /Link
-/A << /S /GoTo /D (section.B.11) >>
+/A << /S /GoTo /D (section.B.10) >>
>> endobj
-1162 0 obj <<
-/D [1160 0 R /XYZ 56.6929 794.5015 null]
+1166 0 obj <<
+/D [1164 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1159 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F39 1173 0 R /F21 950 0 R >>
+1163 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1223 0 obj <<
-/Length 898
+1227 0 obj <<
+/Length 948
/Filter /FlateDecode
>>
stream
-xÚíÙÍRÛ0
-“8!Й8hýTF9¦¥ë39a E)ÝQ]Í&ãb4Œ¾ŽæõÍ ÐJ±A¡8›Jçž?Ë
-¤xáƒv^‰B(^dúÀKû«tx™ ¯e=ù#°ÿ;­×¿ÆŽtõ† oO:¦ý+UáN½YǸí³Múã³ÐX!˜ƒ²IÑ j(²õ^p=òɬš+¨ÙŽìÔaèTg‡(rˆ%€Ñí…PÉôÑ¡QÌ•:îÝîºW4Øn'õ  ûkÜaQ…eïŒ
-R¨p[Á¸vT‰B(TdúˆJKæ»IÁ7¨ÆãzµCeµé5HSXïΚP ¥ ÷lû“ªJ™>jR‚q©ÂÆQÀFSµ\TÍæqPÝ?‰½è04 3/Hñ ÛþäŸ*„âE¦¼Jθåac)¶ÀûkÔ²ªÇóYsûÓ½¯–¾3,HÁ­+Úa%
-¡`‘é#,a¶”bû±üÝjTLgÕ¨ø̹øù¸ð¾ô¢$*¬ygQ(…{
-V¶‹JB‰"ÓGQ 6"|J¿šŒä´ZM…“²¿T½¬°ôa¡@
-n- +QȬøEu¡,gF‘ú®ÚÿsJÁó¿ß}_&­éÓ•Üú>mr©˜Ÿk³=ùÞz®aªý7B¬endstream
+xÚíÚKsÓ0
+R¨p[ÁËaT…B(TdúŒÊH.”I»I)öOJÝæ•·nÒtOšÒ|Ö„)M¸Ÿà‡Ÿ–
+¡4‘é³&-¸ð"måþ¹û|}=ï7 “vú$vÔ05`4/Hñ O|+Bñ"Óg^Òs&m,åþ|¼G­çÝâjÕ/vòuXiêGÃB,ÜZV¡
+™>Ã÷‘"m)åþ±üå¦e«yËÞ !¿ß\G_&Q÷$*ÍùhQ(…{
+Þ‹*B‰"ÓgQBÇåϤM£LOé7ËV]Ì7 JM·ª£ÀJS?
+¤`áÖ‚wð
+…ÀÊ_`Æzî¼,}"þf7Ôݾnqû¥í¸ò»|‡W«„»ëjexkw±_/5…jÿùŶ)endstream
endobj
-1222 0 obj <<
+1226 0 obj <<
/Type /Page
-/Contents 1223 0 R
-/Resources 1221 0 R
+/Contents 1227 0 R
+/Resources 1225 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
-/Annots [ 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R ]
+/Parent 1246 0 R
+/Annots [ 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R ]
>> endobj
-1225 0 obj <<
+1229 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 758.4766 539.579 767.5824]
/Subtype /Link
-/A << /S /GoTo /D (section.B.12) >>
+/A << /S /GoTo /D (section.B.11) >>
>> endobj
-1226 0 obj <<
+1230 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 746.5215 539.579 755.6272]
/Subtype /Link
-/A << /S /GoTo /D (section.B.13) >>
+/A << /S /GoTo /D (section.B.12) >>
>> endobj
-1227 0 obj <<
+1231 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 734.5663 539.579 743.672]
/Subtype /Link
-/A << /S /GoTo /D (section.B.14) >>
+/A << /S /GoTo /D (section.B.13) >>
>> endobj
-1228 0 obj <<
+1232 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 722.6111 539.579 731.7169]
/Subtype /Link
-/A << /S /GoTo /D (section.B.15) >>
+/A << /S /GoTo /D (section.B.14) >>
>> endobj
-1229 0 obj <<
+1233 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [522.6425 710.7556 539.579 719.7617]
/Subtype /Link
+/A << /S /GoTo /D (section.B.15) >>
+>> endobj
+1234 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.6425 698.8005 539.579 707.8065]
+/Subtype /Link
/A << /S /GoTo /D (section.B.16) >>
>> endobj
-1230 0 obj <<
+1235 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 698.7008 539.579 707.8065]
+/Rect [522.6425 686.7456 539.579 695.8514]
/Subtype /Link
/A << /S /GoTo /D (section.B.17) >>
>> endobj
-1234 0 obj <<
+1239 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 686.7456 539.579 695.8514]
+/Rect [522.6425 674.7905 539.579 683.8962]
/Subtype /Link
/A << /S /GoTo /D (section.B.18) >>
>> endobj
-1235 0 obj <<
+1240 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 674.7905 539.579 683.8962]
+/Rect [522.6425 662.8353 539.579 671.941]
/Subtype /Link
/A << /S /GoTo /D (section.B.19) >>
>> endobj
-1236 0 obj <<
+1241 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 662.8353 539.579 671.941]
+/Rect [522.6425 650.8801 539.579 659.9859]
/Subtype /Link
/A << /S /GoTo /D (section.B.20) >>
>> endobj
-1237 0 obj <<
+1242 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 650.8801 539.579 659.9859]
+/Rect [522.6425 638.925 539.579 648.0307]
/Subtype /Link
/A << /S /GoTo /D (section.B.21) >>
>> endobj
-1238 0 obj <<
+1243 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 638.925 539.579 648.0307]
+/Rect [522.6425 626.9698 539.579 636.0755]
/Subtype /Link
/A << /S /GoTo /D (section.B.22) >>
>> endobj
-1239 0 obj <<
+1244 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 626.9698 539.579 636.0755]
+/Rect [522.6425 615.0146 539.579 624.1204]
/Subtype /Link
/A << /S /GoTo /D (section.B.23) >>
>> endobj
-1240 0 obj <<
+1245 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [522.6425 615.0146 539.579 624.1204]
+/Rect [522.6425 603.0594 539.579 612.1652]
/Subtype /Link
/A << /S /GoTo /D (section.B.24) >>
>> endobj
-1224 0 obj <<
-/D [1222 0 R /XYZ 85.0394 794.5015 null]
+1228 0 obj <<
+/D [1226 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1221 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R >>
+1225 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1244 0 obj <<
+1249 0 obj <<
/Length 2174
/Filter /FlateDecode
>>
@@ -4344,48 +4348,48 @@ FŠüäuܹê;´¡’<ÕY®§6<ÁG‰ÐB
–Q£­¢+O(Ÿèº³ß…Ù¤
µ¾€Ð5༚ºÜ¸c3Í¡vÃH-Ôø·¿‹ß
endobj
-1243 0 obj <<
+1248 0 obj <<
/Type /Page
-/Contents 1244 0 R
-/Resources 1242 0 R
+/Contents 1249 0 R
+/Resources 1247 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
+/Parent 1246 0 R
>> endobj
6 0 obj <<
-/D [1243 0 R /XYZ 85.0394 769.5949 null]
+/D [1248 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1245 0 obj <<
-/D [1243 0 R /XYZ 85.0394 582.8476 null]
+1250 0 obj <<
+/D [1248 0 R /XYZ 85.0394 582.8476 null]
>> endobj
10 0 obj <<
-/D [1243 0 R /XYZ 85.0394 512.9824 null]
+/D [1248 0 R /XYZ 85.0394 512.9824 null]
>> endobj
-1246 0 obj <<
-/D [1243 0 R /XYZ 85.0394 474.7837 null]
+1251 0 obj <<
+/D [1248 0 R /XYZ 85.0394 474.7837 null]
>> endobj
14 0 obj <<
-/D [1243 0 R /XYZ 85.0394 399.5462 null]
+/D [1248 0 R /XYZ 85.0394 399.5462 null]
>> endobj
-1247 0 obj <<
-/D [1243 0 R /XYZ 85.0394 363.8828 null]
+1252 0 obj <<
+/D [1248 0 R /XYZ 85.0394 363.8828 null]
>> endobj
18 0 obj <<
-/D [1243 0 R /XYZ 85.0394 223.0066 null]
+/D [1248 0 R /XYZ 85.0394 223.0066 null]
>> endobj
-1248 0 obj <<
-/D [1243 0 R /XYZ 85.0394 190.9009 null]
+1253 0 obj <<
+/D [1248 0 R /XYZ 85.0394 190.9009 null]
>> endobj
-1249 0 obj <<
-/D [1243 0 R /XYZ 85.0394 170.4169 null]
+1254 0 obj <<
+/D [1248 0 R /XYZ 85.0394 170.4169 null]
>> endobj
-1250 0 obj <<
-/D [1243 0 R /XYZ 85.0394 158.4617 null]
+1255 0 obj <<
+/D [1248 0 R /XYZ 85.0394 158.4617 null]
>> endobj
-1242 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F48 1253 0 R >>
+1247 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1256 0 obj <<
+1261 0 obj <<
/Length 3187
/Filter /FlateDecode
>>
@@ -4403,63 +4407,63 @@ H•²/hÊ
®£fw"®höx׺©;°Çn|>”°ÃÓ¶PˇýjÎÖzýÁ”rþ!È£+Œ­$üE™ Bö‘Q™…­Ê"ôãÇœ/Áò±r=?5M[ô°ÌÏ[€Ì°u¸Âz ÆmÜo<)¶ó=P¿+{’‘OíRzwdîØPÖ6ôV`0ÐhõðlÓã>§¦|êv=£lÁá“xý1‡š[ÚÍ„C9ßšÞ4â¦Å7ɵkù ’ß ÿe¬ˆ¦¯¸Çÿ¤ùâãý×þ{Ôñ¿Ä T0iª_ð‡)¶ˆÌ€
@Ÿ!þêó4Ï©Êendstream
endobj
-1255 0 obj <<
+1260 0 obj <<
/Type /Page
-/Contents 1256 0 R
-/Resources 1254 0 R
+/Contents 1261 0 R
+/Resources 1259 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
-/Annots [ 1262 0 R 1263 0 R ]
+/Parent 1246 0 R
+/Annots [ 1267 0 R 1268 0 R ]
>> endobj
-1262 0 obj <<
+1267 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [272.8897 207.1951 329.1084 219.2548]
/Subtype /Link
/A << /S /GoTo /D (types_of_resource_records_and_when_to_use_them) >>
>> endobj
-1263 0 obj <<
+1268 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [190.6691 179.6723 249.6573 189.0819]
/Subtype /Link
/A << /S /GoTo /D (rfcs) >>
>> endobj
-1257 0 obj <<
-/D [1255 0 R /XYZ 56.6929 756.8229 null]
+1262 0 obj <<
+/D [1260 0 R /XYZ 56.6929 756.8229 null]
>> endobj
-1258 0 obj <<
-/D [1255 0 R /XYZ 56.6929 744.8677 null]
+1263 0 obj <<
+/D [1260 0 R /XYZ 56.6929 744.8677 null]
>> endobj
22 0 obj <<
-/D [1255 0 R /XYZ 56.6929 651.295 null]
+/D [1260 0 R /XYZ 56.6929 651.295 null]
>> endobj
-1259 0 obj <<
-/D [1255 0 R /XYZ 56.6929 612.4036 null]
+1264 0 obj <<
+/D [1260 0 R /XYZ 56.6929 612.4036 null]
>> endobj
26 0 obj <<
-/D [1255 0 R /XYZ 56.6929 555.4285 null]
+/D [1260 0 R /XYZ 56.6929 555.4285 null]
>> endobj
-1260 0 obj <<
-/D [1255 0 R /XYZ 56.6929 530.6703 null]
+1265 0 obj <<
+/D [1260 0 R /XYZ 56.6929 530.6703 null]
>> endobj
30 0 obj <<
-/D [1255 0 R /XYZ 56.6929 416.0112 null]
+/D [1260 0 R /XYZ 56.6929 416.0112 null]
>> endobj
-1261 0 obj <<
-/D [1255 0 R /XYZ 56.6929 391.253 null]
+1266 0 obj <<
+/D [1260 0 R /XYZ 56.6929 391.253 null]
>> endobj
34 0 obj <<
-/D [1255 0 R /XYZ 56.6929 164.815 null]
+/D [1260 0 R /XYZ 56.6929 164.815 null]
>> endobj
-1264 0 obj <<
-/D [1255 0 R /XYZ 56.6929 137.4068 null]
+1269 0 obj <<
+/D [1260 0 R /XYZ 56.6929 137.4068 null]
>> endobj
-1254 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F21 950 0 R >>
+1259 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1269 0 obj <<
+1274 0 obj <<
/Length 3415
/Filter /FlateDecode
>>
@@ -4479,60 +4483,60 @@ txÕÁ(1Âùãqt0úØÇ‘C×µLm›§:ÂÄ$è’y¦
·o¾Àbº¦úž&\Õ=¯d‚Ó÷aŠKѨðÀæ@pð
–þvA•c«ÇøÀ†û,¤ÆAg€hCõoœ€}¼ew8ýš*çÐð‡#çô/œÿn1]/‚0Péú\í8 °ef´>+sŒBOD‡+^ .ùRéØ{
endobj
-1268 0 obj <<
+1273 0 obj <<
/Type /Page
-/Contents 1269 0 R
-/Resources 1267 0 R
+/Contents 1274 0 R
+/Resources 1272 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
-/Annots [ 1272 0 R 1273 0 R ]
+/Parent 1246 0 R
+/Annots [ 1277 0 R 1278 0 R ]
>> endobj
-1272 0 obj <<
+1277 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [519.8432 463.1122 539.579 475.1718]
/Subtype /Link
/A << /S /GoTo /D (diagnostic_tools) >>
>> endobj
-1273 0 obj <<
+1278 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [84.0431 451.8246 133.308 463.2167]
/Subtype /Link
/A << /S /GoTo /D (diagnostic_tools) >>
>> endobj
-1270 0 obj <<
-/D [1268 0 R /XYZ 85.0394 794.5015 null]
+1275 0 obj <<
+/D [1273 0 R /XYZ 85.0394 794.5015 null]
>> endobj
38 0 obj <<
-/D [1268 0 R /XYZ 85.0394 570.5252 null]
+/D [1273 0 R /XYZ 85.0394 570.5252 null]
>> endobj
-1271 0 obj <<
-/D [1268 0 R /XYZ 85.0394 541.3751 null]
+1276 0 obj <<
+/D [1273 0 R /XYZ 85.0394 541.3751 null]
>> endobj
42 0 obj <<
-/D [1268 0 R /XYZ 85.0394 434.1868 null]
+/D [1273 0 R /XYZ 85.0394 434.1868 null]
>> endobj
-1274 0 obj <<
-/D [1268 0 R /XYZ 85.0394 406.5769 null]
+1279 0 obj <<
+/D [1273 0 R /XYZ 85.0394 406.5769 null]
>> endobj
46 0 obj <<
-/D [1268 0 R /XYZ 85.0394 301.1559 null]
+/D [1273 0 R /XYZ 85.0394 301.1559 null]
>> endobj
-1275 0 obj <<
-/D [1268 0 R /XYZ 85.0394 276.6843 null]
+1280 0 obj <<
+/D [1273 0 R /XYZ 85.0394 276.6843 null]
>> endobj
50 0 obj <<
-/D [1268 0 R /XYZ 85.0394 200.1512 null]
+/D [1273 0 R /XYZ 85.0394 200.1512 null]
>> endobj
-1276 0 obj <<
-/D [1268 0 R /XYZ 85.0394 175.6796 null]
+1281 0 obj <<
+/D [1273 0 R /XYZ 85.0394 175.6796 null]
>> endobj
-1267 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F21 950 0 R >>
+1272 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1280 0 obj <<
+1285 0 obj <<
/Length 2457
/Filter /FlateDecode
>>
@@ -4551,39 +4555,39 @@ S¦…€Äüœºã2±öŠ 41ÑÍ–,÷úBäí]¨u›«˜úDOâ‚ÙLë–3žatÙ±º÷5vxnïH‘šªmÝóìAߌå
M­
 ZãŠÜƒ[æž.ÇñS!L%:P–ô˜¥Hé!”·i"®"!G­š¼ü…3Ãø(M¶æÒ?/ÕºðõwÕNïÉzê-çÕÃÿ­@úÂ?Dþ ÇD÷ÿï2ýý¥Ê2¹ü—ŠÌ OÕÈŠ%ºaÜÿ?sËùy;:»endstream
endobj
-1279 0 obj <<
+1284 0 obj <<
/Type /Page
-/Contents 1280 0 R
-/Resources 1278 0 R
+/Contents 1285 0 R
+/Resources 1283 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
+/Parent 1246 0 R
>> endobj
-1281 0 obj <<
-/D [1279 0 R /XYZ 56.6929 794.5015 null]
+1286 0 obj <<
+/D [1284 0 R /XYZ 56.6929 794.5015 null]
>> endobj
54 0 obj <<
-/D [1279 0 R /XYZ 56.6929 717.7272 null]
+/D [1284 0 R /XYZ 56.6929 717.7272 null]
>> endobj
-1282 0 obj <<
-/D [1279 0 R /XYZ 56.6929 690.4227 null]
+1287 0 obj <<
+/D [1284 0 R /XYZ 56.6929 690.4227 null]
>> endobj
58 0 obj <<
-/D [1279 0 R /XYZ 56.6929 550.0786 null]
+/D [1284 0 R /XYZ 56.6929 550.0786 null]
>> endobj
-1283 0 obj <<
-/D [1279 0 R /XYZ 56.6929 525.2967 null]
+1288 0 obj <<
+/D [1284 0 R /XYZ 56.6929 525.2967 null]
>> endobj
62 0 obj <<
-/D [1279 0 R /XYZ 56.6929 393.0502 null]
+/D [1284 0 R /XYZ 56.6929 393.0502 null]
>> endobj
-1284 0 obj <<
-/D [1279 0 R /XYZ 56.6929 363.1913 null]
+1289 0 obj <<
+/D [1284 0 R /XYZ 56.6929 363.1913 null]
>> endobj
-1278 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F39 1173 0 R >>
+1283 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1287 0 obj <<
+1292 0 obj <<
/Length 2097
/Filter /FlateDecode
>>
@@ -4599,66 +4603,66 @@ hZã|jY/ýE‰áÝN6“dy 8xp]7b~{é0h”~’e±½„3×rÓ,Ã,*r¸2Ư{ë³½ŸØøÎê±×꛼cµ¬Ë"
Ìk
âþî^̲EÑÅk˜èP<sgÕ1B ÚÖP!žÅj˜K±dx ’;mêá6¨BÐ ¾I½Ÿp
endobj
-1286 0 obj <<
+1291 0 obj <<
/Type /Page
-/Contents 1287 0 R
-/Resources 1285 0 R
+/Contents 1292 0 R
+/Resources 1290 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
-/Annots [ 1293 0 R 1294 0 R ]
+/Parent 1246 0 R
+/Annots [ 1298 0 R 1299 0 R ]
>> endobj
-1293 0 obj <<
+1298 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [519.8432 268.1131 539.579 280.1727]
/Subtype /Link
/A << /S /GoTo /D (acache) >>
>> endobj
-1294 0 obj <<
+1299 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [84.0431 256.1579 143.5361 268.2175]
/Subtype /Link
/A << /S /GoTo /D (acache) >>
>> endobj
-1288 0 obj <<
-/D [1286 0 R /XYZ 85.0394 794.5015 null]
+1293 0 obj <<
+/D [1291 0 R /XYZ 85.0394 794.5015 null]
>> endobj
66 0 obj <<
-/D [1286 0 R /XYZ 85.0394 769.5949 null]
+/D [1291 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1289 0 obj <<
-/D [1286 0 R /XYZ 85.0394 574.3444 null]
+1294 0 obj <<
+/D [1291 0 R /XYZ 85.0394 574.3444 null]
>> endobj
70 0 obj <<
-/D [1286 0 R /XYZ 85.0394 574.3444 null]
+/D [1291 0 R /XYZ 85.0394 574.3444 null]
>> endobj
-1290 0 obj <<
-/D [1286 0 R /XYZ 85.0394 540.5052 null]
+1295 0 obj <<
+/D [1291 0 R /XYZ 85.0394 540.5052 null]
>> endobj
74 0 obj <<
-/D [1286 0 R /XYZ 85.0394 447.7637 null]
+/D [1291 0 R /XYZ 85.0394 447.7637 null]
>> endobj
-1291 0 obj <<
-/D [1286 0 R /XYZ 85.0394 410.3389 null]
+1296 0 obj <<
+/D [1291 0 R /XYZ 85.0394 410.3389 null]
>> endobj
78 0 obj <<
-/D [1286 0 R /XYZ 85.0394 348.7624 null]
+/D [1291 0 R /XYZ 85.0394 348.7624 null]
>> endobj
-1292 0 obj <<
-/D [1286 0 R /XYZ 85.0394 311.223 null]
+1297 0 obj <<
+/D [1291 0 R /XYZ 85.0394 311.223 null]
>> endobj
82 0 obj <<
-/D [1286 0 R /XYZ 85.0394 189.9853 null]
+/D [1291 0 R /XYZ 85.0394 189.9853 null]
>> endobj
-1295 0 obj <<
-/D [1286 0 R /XYZ 85.0394 156.0037 null]
+1300 0 obj <<
+/D [1291 0 R /XYZ 85.0394 156.0037 null]
>> endobj
-1285 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R >>
+1290 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1299 0 obj <<
+1304 0 obj <<
/Length 591
/Filter /FlateDecode
>>
@@ -4666,27 +4670,27 @@ stream
xÚ¥TKs›0¾ó+t3AÕtt’:3Nƒû˜4Ç()SŒ\ÀIóï+!°Iâž: ³«}|ì~Ú…
ÕºÕõ«3uEó»$hô®ËZ«¤iëâa׺BÿÚ*Æ‘]…#;`ÞþÒþ{ã¿¡0FLzX¦ñÐS‘ŒÙ¾(Klô¡ða3?VþP%6endstream
endobj
-1298 0 obj <<
+1303 0 obj <<
/Type /Page
-/Contents 1299 0 R
-/Resources 1297 0 R
+/Contents 1304 0 R
+/Resources 1302 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1302 0 R
+/Parent 1307 0 R
>> endobj
-1300 0 obj <<
-/D [1298 0 R /XYZ 56.6929 794.5015 null]
+1305 0 obj <<
+/D [1303 0 R /XYZ 56.6929 794.5015 null]
>> endobj
86 0 obj <<
-/D [1298 0 R /XYZ 56.6929 769.5949 null]
+/D [1303 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-1301 0 obj <<
-/D [1298 0 R /XYZ 56.6929 744.7247 null]
+1306 0 obj <<
+/D [1303 0 R /XYZ 56.6929 744.7247 null]
>> endobj
-1297 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R >>
+1302 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1305 0 obj <<
+1310 0 obj <<
/Length 1159
/Filter /FlateDecode
>>
@@ -4699,45 +4703,45 @@ JxI1|«ÄR{}Ö8!S8ÆM§,ývrö‹çf¨qdü)G%§ÀÚÉ®×r›6H–¬Ú‹½‹…¿ðÃJNXV„ÐO^nóëÅ¿_æ’£
Ó–ÿ¼\g¥» ÜE
¾qÂôrœº=ȘZ\ ö\FØÿxd²ó‘ód¦·$4%9‡‹{¦úÃ9šfؼ!¼‚¦ÿH ËI)xáõ8kØ;ߥo…­<©»çÃ¥ÛŽ›­>L/‰ÁÌ ²”Š,`îö$àžÇV”ðl×ØæÚ,˜Lá5]Ö·[öhLs&¾Ñ¡0ÌC/—U5U}hõö5¡æ^uº…®û]}á¦×=}»ž^êáý-Rb_ósoù _dð!AK"8YXù½±é_Á£µ
endobj
-1304 0 obj <<
+1309 0 obj <<
/Type /Page
-/Contents 1305 0 R
-/Resources 1303 0 R
+/Contents 1310 0 R
+/Resources 1308 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1302 0 R
+/Parent 1307 0 R
>> endobj
-1306 0 obj <<
-/D [1304 0 R /XYZ 85.0394 794.5015 null]
+1311 0 obj <<
+/D [1309 0 R /XYZ 85.0394 794.5015 null]
>> endobj
90 0 obj <<
-/D [1304 0 R /XYZ 85.0394 769.5949 null]
+/D [1309 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1307 0 obj <<
-/D [1304 0 R /XYZ 85.0394 575.896 null]
+1312 0 obj <<
+/D [1309 0 R /XYZ 85.0394 575.896 null]
>> endobj
94 0 obj <<
-/D [1304 0 R /XYZ 85.0394 529.2011 null]
+/D [1309 0 R /XYZ 85.0394 529.2011 null]
>> endobj
-1308 0 obj <<
-/D [1304 0 R /XYZ 85.0394 492.9468 null]
+1313 0 obj <<
+/D [1309 0 R /XYZ 85.0394 492.9468 null]
>> endobj
98 0 obj <<
-/D [1304 0 R /XYZ 85.0394 492.9468 null]
+/D [1309 0 R /XYZ 85.0394 492.9468 null]
>> endobj
-1309 0 obj <<
-/D [1304 0 R /XYZ 85.0394 466.0581 null]
+1314 0 obj <<
+/D [1309 0 R /XYZ 85.0394 466.0581 null]
>> endobj
102 0 obj <<
-/D [1304 0 R /XYZ 85.0394 201.2466 null]
+/D [1309 0 R /XYZ 85.0394 201.2466 null]
>> endobj
-1310 0 obj <<
-/D [1304 0 R /XYZ 85.0394 170.5419 null]
+1315 0 obj <<
+/D [1309 0 R /XYZ 85.0394 170.5419 null]
>> endobj
-1303 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1308 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1313 0 obj <<
+1318 0 obj <<
/Length 1768
/Filter /FlateDecode
>>
@@ -4751,41 +4755,41 @@ tèErÆ)LÌ ìÔ)ÂpÉ!è©n½ˆ4ï8Ky^ëéMšezºÈsk¿²å‘µΔk1…éÔ‹T©¦ô0j }z¬¬Ó%ÿn¿ô¡ô1µ
ÊTˆiivíÚÔ«×eΓ=5’´Š£.mÃU;GÝ©ÔE^à9"–JØCàxy¥™Zÿqdkà“µ› jÝ
Na>¤¯xÁã/jY»—|‘´7ŠÂ-Ý M¤³•PQŽŠ2Q£ýëq€:Ž¦­Ö÷£J\„¥r8.ù ¬ "~AªíŪNAÕ1̃`àùFŒ!Mr¡äå‡~-zP©Ä¢VÊKu¦}?N[êÃFÓ=¦SYl‹3¼îb¿§ ”Cˆ¹Ê[öOÂ]Có¬ûœ„èéÌEc½â°õbz|í/×<ÇG,„i¸Ï(ôY«•P=x¢ºù7Û£û_`#~›endstream
endobj
-1312 0 obj <<
+1317 0 obj <<
/Type /Page
-/Contents 1313 0 R
-/Resources 1311 0 R
+/Contents 1318 0 R
+/Resources 1316 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1302 0 R
-/Annots [ 1318 0 R ]
+/Parent 1307 0 R
+/Annots [ 1323 0 R ]
>> endobj
-1318 0 obj <<
+1323 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [55.6967 61.5153 126.3509 73.5749]
/Subtype /Link
/A << /S /GoTo /D (rrset_ordering) >>
>> endobj
-1314 0 obj <<
-/D [1312 0 R /XYZ 56.6929 794.5015 null]
+1319 0 obj <<
+/D [1317 0 R /XYZ 56.6929 794.5015 null]
>> endobj
106 0 obj <<
-/D [1312 0 R /XYZ 56.6929 372.6686 null]
+/D [1317 0 R /XYZ 56.6929 372.6686 null]
>> endobj
-1315 0 obj <<
-/D [1312 0 R /XYZ 56.6929 334.1957 null]
+1320 0 obj <<
+/D [1317 0 R /XYZ 56.6929 334.1957 null]
>> endobj
-1316 0 obj <<
-/D [1312 0 R /XYZ 56.6929 266.1213 null]
+1321 0 obj <<
+/D [1317 0 R /XYZ 56.6929 266.1213 null]
>> endobj
-1317 0 obj <<
-/D [1312 0 R /XYZ 56.6929 254.1661 null]
+1322 0 obj <<
+/D [1317 0 R /XYZ 56.6929 254.1661 null]
>> endobj
-1311 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F21 950 0 R /F22 973 0 R >>
+1316 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1322 0 obj <<
+1327 0 obj <<
/Length 2693
/Filter /FlateDecode
>>
@@ -4806,307 +4810,202 @@ v‚_Ñ&-Ë÷–Ðùs’LŒ“é¨úc­º¯ç½¿ªîzWnBˇ¢—ålÊOøQ‚x# £cÇl»„“¬ðܯb¼ocàÁ
p¬xJ´§¹=vrB þ²¡ðÙ£,ˆ†—
N8çŒd¬`—·Àvÿ¤?í.îü›¾ü2õÃ%0'üµµQ†Ìè‘2ÂÒTúÄ„íû&·×ˆã<dÏÄŸ¼÷?²œÿ¿Gd„çùÌ9#×çŒ,ñJiõ‹©âþ^.5ÿ+Lendstream
endobj
-1321 0 obj <<
+1326 0 obj <<
/Type /Page
-/Contents 1322 0 R
-/Resources 1320 0 R
+/Contents 1327 0 R
+/Resources 1325 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1302 0 R
+/Parent 1307 0 R
>> endobj
-1323 0 obj <<
-/D [1321 0 R /XYZ 85.0394 794.5015 null]
+1328 0 obj <<
+/D [1326 0 R /XYZ 85.0394 794.5015 null]
>> endobj
110 0 obj <<
-/D [1321 0 R /XYZ 85.0394 769.5949 null]
+/D [1326 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1324 0 obj <<
-/D [1321 0 R /XYZ 85.0394 744.949 null]
+1329 0 obj <<
+/D [1326 0 R /XYZ 85.0394 744.949 null]
>> endobj
114 0 obj <<
-/D [1321 0 R /XYZ 85.0394 744.949 null]
+/D [1326 0 R /XYZ 85.0394 744.949 null]
>> endobj
-1325 0 obj <<
-/D [1321 0 R /XYZ 85.0394 721.0357 null]
+1330 0 obj <<
+/D [1326 0 R /XYZ 85.0394 721.0357 null]
>> endobj
118 0 obj <<
-/D [1321 0 R /XYZ 85.0394 672.3079 null]
+/D [1326 0 R /XYZ 85.0394 672.3079 null]
>> endobj
-1277 0 obj <<
-/D [1321 0 R /XYZ 85.0394 647.0603 null]
+1282 0 obj <<
+/D [1326 0 R /XYZ 85.0394 647.0603 null]
>> endobj
122 0 obj <<
-/D [1321 0 R /XYZ 85.0394 136.5325 null]
+/D [1326 0 R /XYZ 85.0394 136.5325 null]
>> endobj
-1329 0 obj <<
-/D [1321 0 R /XYZ 85.0394 113.5963 null]
+1334 0 obj <<
+/D [1326 0 R /XYZ 85.0394 113.5963 null]
>> endobj
-1320 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R >>
+1325 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1332 0 obj <<
-/Length 3556
+1337 0 obj <<
+/Length 4102
/Filter /FlateDecode
>>
stream
-xÚÝ[_sܶק¸·žf|ñûæ$vêtꤒÒNÇñuGI´ïÈË‘gEþô]`8‚<¥žN;=
-’2I-¥ãã™Á"™cyWmK-\„#ȯX’zŽ§
-¥$£4]dÀ0ãŒÅÏ%Z ©ÆÛè­ÔQèìsS6”rŠ–b^
-S$K”p†Bÿ+Ë}¦ ‘ók­)z¿=Ã&K%ɳ,}n(ÍÎ…Ò”s›é|(RM‡RO5ðsÍn2Fƒ©€˜Fe6/‚§ŠÈS8ôIÐ'âºÚUÛB0.—] ¬B’$¡õE,²¦`^¯·à3 óÊüŠe±},žZÛwû‡»‡ÇÐçë!7;/¾ŽÝv_®+…Ëa±b‰ ,Mhè‡qZÛy÷´¯ÖÅvû„CUDøMu§aÀ]iÐ
-Œ»Pnp¼ª'Œ_i8=§L€Ó2÷QëO-²_?u]n‘ù®Ù”`\¬þÍÚ¬F~i*Óp žš#:®Ã¥Zc"qÈ‚™’gìA“;±«î¡9v.»±´Ùë³aó¤Ê>}¬´5¢Cm÷Ûâ)p²G“q`FU¶}§h·5ÇûÏSI‰„ä‘f©ú‚¤dÈb:OòTgó$ÉR¸ø/iÀb:OòT~ÛfÒ!ÉI–+gߺÂQÝÇÒ—”Îù)€lÏÂdëò¢ì”ãþ,G}”b/
-s€œ!gþfê©Æ Í”ëRX Ò«^¥³›mmÉÝ ­ýN`RÁ)›
-r¹Lœ±‰ÕŒM8*ƒÉªû:¢ÿÀ¹ÆÀ$$ë
-³ÍõÊV$
-¤Š†ÑaS‚l§³O8Y$ËϤç¢iÜáˆô¬:U2á0íƒ*Ôב—(àBóY]z¢‘2ÃØêÉ%g6ðÈ©ÐðÀ#Oð€Q¹=Šú™0f}µ&ëGOK]y &\æ£ G,âHå âH….²<q
-©ÓˆeV©=di5ŽYµ^Û}i(Ëã~¶ÅŽ (xsGÿx¤¯;X9]É”aðãÚ÷°UYFæÎÏj²à… í snÓW¦$¢(¦gkǼ1B§EáËÎø©p9¦ƒ»&³õ±°œ †tv³isd›røï,)³ Zµ¾Q¤ƒABc€BÝiE&‰xbÒ#ð4VoÐG"SŸ Ë7[·­uqlúuÛäô-¾‡u
-?¡ñ¡9êb‹÷5KSv–Õ­%lŸêµ“Ê‚„„úÛ3'e€ñUi}q&Ë—þf€Ï÷ô•
-}U·fÃSÕû–æxÚ`°Àn¿ã8Ü[<´~‡Ûêž~^7ý#©,cíwœÛ'Tr‚¦+ïwôÍ/ô;‚eèwS,úõCú‘÷Cz¼4kÓ^HAÀD/¤ÇÝyÖ/#׃öþ68†ÌðËe@Œ«Ȳ‹ùžMÕ~4ÞÓ‚-¦<ÄBÑZC]ê‹RØï÷:Åž}å°4ì·TÅ–…%Ó_·e‡>7QË—ýkþ8Éq' ¿â±ÄÌ&öÿT`âúŸ "—ø;_ü¿Vý¿ éËJM}oÌ´¥
+xÚÝ[Ýsã¶÷_¡ÉK噃oÍS’^®n§I{ç$“¦™-ÑséˆÔ¹n§ÿ{X
+Ï'ZC¡ÿ“×}¡  ÿõÖ‹}Ü~†M*—ÊÌä¹zi*Í/¥R@0™¤œ=ŸJ‡Tó©4R â\sx
+¡4-ÏJP–>QØ©«öUg½ tQþc]>t‰T¤œ›GßvűK,¹È(²´EØÉ2@¦¦,å,S QQ}¾²æ@–»êšB €?úx€WžµV”óeÝt^`Ü…rƒóU=cüÚ‚êç”  Zš˜»~Ó"ûõ®¨ërÌͦãâ`õ7÷h³ÿ)%Õ8­?5' _Çk½<¥DâP 3-/؃!b?VÝ®9u¡Æña´y°¾á«¥Êß}¬¬5bXmöÅÓ(Ôž\ÝuUÙöEb®sïßΕ&ÒB6ú1=Œ‡ùZ)],•$ø¥–JŒ@ó¥R¤Š{öLE$9Tz:·mrTÛT£2Á9ŸbÈö"Röñ.É‘1Á¦.r´~”B}#¼ù=]ä÷¾LÕ?p°4êÅXԇшԣ†¾Ž>ÃÈmO–eÙO©X˵
+c˜`CœèCó¼ž$§ò¨'o°zåß–µ­!K/ÔÝþ"8¯«z›JKLfBÆVŠ]eu¹-k|zU$df4b¯Â—È›²]«»Ð.á9 *6­sÑbF@6Hçà‰Ì!âðä«!}HL¹"ŒY÷.ø1ç 1(Î)W#i 1OuAˆsnz¡~hžŠ Ðr‘›+á;Bvì‹j©Jd
+¿mè½¹Ç$ÄldgšûT “Âöúé°7Ž¡6ç2}iË ÃÈkÙïauÌêvu(w¿lmS2¾åéè­b#ï] #TÔ]y
+Êú†Ÿ]Óv8ò­jÊ–J[’ÍÆW"áw¹=ùµ3®¨€>xzoŽ”{g¡±ÓëðÌúžŒî<í4kLûpYÝ{éšDl_…·ÙúªÁª†è‘ýZxÊa™³Á;H!ˆÍaœÝWu™%›ÀPs«œ½Ì ¾’XG‡í‘át–ñÛ#,бn‚Ë÷.´ØkÿUçŸn“¯)˜²VŠ5åžÌå=ÚKµà·HY&hœÇŒ1“ULÆû‰RÊ(×/ô›<“,öú’Æ¿ª îqœjðCrª¢æD\<A
+Œµ†ÎTáM<•kÈ®Ó.³Îö}}ų­>”Ä07(›¢Ågqžî8=ŽKÙ¡ÈHßH{.wS#ûx·l¶p,R¸n&ëK¦å­H¤Í£¶xYàÚ9 0UúH¿26xu÷”’L•Iý‚½54 ÖMnñ¾‘cK 7:9gF°˜EŸp3­gc¢õº2Ê,o:ÿ²þS(_jXEŠI¥Ñbe áɉåZUQ0%3PªQBbavKrB[âVKUÄà‡&'òåˆZ^ÚP_€ð У‡5~=5J›çC £ úØ»:³lÀaåhg‹¸(^[Á_…’XƒèI§Êã8¦—‡“Ë’Ì7T`¦ÀŸžÚàpÓ
+ç@…¬}³¬9mw8íNz€´.Kÿâ2ËoÝü1û`•]%°SÐzg÷ü3´¿;¹‚ó GÛÑLáá}õ¾c@ÿÙ
+c"¡f‘MùÄKFE$0!Z›Ä~1¿äó[\í§D©oW‘ãjÈpôȳ\ÓýÊϘ±û 46컎úJ^† ¸I¾]•ŽgÆÆï‹ñŒ˜x=Œg°À.œÍu Î<t•
+ûms„xsHÀæPùE§š­¶¸Œå¡-jÊTJe
+c½Zm|¿«BW.ósM0r\$ÑÕSˇâØ:¤'TÀw0*ÖîLÇîT¨Þl…D0"By%Ôm
+_Ù;A9Ö D¾\ŸŽá”½çŒEùˆŸ_ì¿ôŒÝ¡X¯™ÞÁwQÞô`ÛãþÇs_[ø «Ã¢lXs?ú½+Úr¥<Ó²^7¡’^ƒƒàq«w
+íÓ»……„½(¹kû-¾„&˜r™pNúJ¼ÅHUà4fx¸âPn¼ñåø\z£àsnøó.ª3ݯ0‘ÈWí½,£Rì' þð\HV¶Ó`]iÒœG]8TlK»ÄÅè0q1Ÿ¸à×&.F|©f'ü÷30rÍeKÒ—jö¿-Ÿ…hÚ6?ò€B÷w
+`1g×vàâš<[ÀsÛ+ԗ¨&>TY Pl>éZÏT
+vÏ©„5¥éŒFÀ`U_Ì  Èp,²Ã—…·²Xg»¦ËP‡Ø9ìkæñ3§Ü·<û[Ôº™'îü3jíŒïáçbxiýÁÝÄãHÇÒw|àá¥uº1
+_Fäü÷gsÿëÅ¥ýÆ&u`A¢ý`ý¿ÇYP¥õÌGŸ,;ÐÀÄ e%§äüÛV@©\±„èÿ:Ìfendstream
endobj
-1331 0 obj <<
+1336 0 obj <<
/Type /Page
-/Contents 1332 0 R
-/Resources 1330 0 R
+/Contents 1337 0 R
+/Resources 1335 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1302 0 R
-/Annots [ 1337 0 R 1338 0 R 1339 0 R 1340 0 R ]
->> endobj
-1337 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [219.3839 342.7466 281.1025 354.8062]
-/Subtype /Link
-/A << /S /GoTo /D (options) >>
->> endobj
-1338 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [401.2123 288.8914 470.1877 300.951]
-/Subtype /Link
-/A << /S /GoTo /D (dynamic_update_policies) >>
+/Parent 1307 0 R
+/Annots [ 1339 0 R 1340 0 R ]
>> endobj
1339 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [243.8464 235.0361 306.1963 247.0958]
+/Rect [97.8684 502.256 131.7211 513.6481]
/Subtype /Link
-/A << /S /GoTo /D (options) >>
+/A << /S /GoTo /D (man.rndc) >>
>> endobj
1340 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [368.2917 181.1809 436.8984 193.2405]
+/Rect [91.7912 414.0448 148.0099 423.2602]
/Subtype /Link
-/A << /S /GoTo /D (dynamic_update_policies) >>
+/A << /S /GoTo /D (controls_statement_definition_and_usage) >>
>> endobj
-1333 0 obj <<
-/D [1331 0 R /XYZ 56.6929 794.5015 null]
+1338 0 obj <<
+/D [1336 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1330 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F53 1328 0 R /F22 973 0 R /F14 976 0 R /F48 1253 0 R /F55 1336 0 R >>
+1335 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F22 977 0 R /F14 980 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1345 0 obj <<
-/Length 3160
+/Length 1558
/Filter /FlateDecode
>>
stream
-xÚÕZK“ã6¾÷¯ð-">$Šµ§Ùd&Û©Ú™dº÷U“9ȶl+‘¥Ž%wO§òã H‰zXž©ì%åƒ)
-$ø€b‹~l‘DA(´\(-ƒ(dÑbs¼ {x÷Ý ³4+G´ò©þöpóõ¡:Ð1;o®$“„-¶–ßüýÕ¯ßß®x.Ep»ŠâpùöÕ?^SÏ=¼Š¢å¿Å7ïÞ¾¹ûîŸï_Ý*¹|¸{÷öv¥B-aäõ±ï~xÝ»¿ýøðýÍë‡V
-_R
-á×›ÃÅþþ& „N¢Å3<„Óš/Ž72A$…p=ÅÍýÍí„Þ[3tJs‘H‚(ájBuœ{ªc‚I,’…Št .Œî¶/ezÌ7·+Éøòü¸M›¬¦‡ç¼(°%–eE=EUî³µ×ýŸnY²Ìvç:Û‚ò”VË»½i–ä·ªÌh¢CjçÞR˜jKi¹íF€Foæñ-b„±a‘ßüÓÎ,¹Úªã
-É+G±b,ÐQÄI°|‡t»ì”•‰&öÉ€'<²WM^•·+©e^ã¼Ìí3H÷h%Y´}F<$ú¹:ŸÊ´ ÞŸÂµIH²¶=¤ß-u6u’a È6 u‘zLXíÀ†[¾{⢒aÊÓsnxF›E˜Ã16hC°e6vC숴|¡Fö)¯›¼ÜÓS+)>8I±M’bkm{H¨cõ„f1ðJØ©*Œ¥Ô¤U·D+ʵL|£¡-ãv*TEýR‚=Ça¸ü°ÚYZ~´OdQäã ¸úDØ*‘ˆz‹p$‰Ò–hjš(ÐJÅ–`S¤u=1ˆÀÿ¢ès§yʳç)fD [ˆèãÇCõ
-¦
-Ì©·%©·ç"‚Ižôô{oô ½âÚ)þ“ßC£5|pæ‚í]u¢FJ„A·l¹!gšô=2p°o)Éq¤°Ç´n—°Më Žkf ÈŒp”?q.É&°EÓ´ŽïãÃý˜mrœÊ¸„ˆU7Eçî0¶uwolZÔµ†N
-˜é-ý>+ªU%b«h
-±˜ÅÈÆbÞS•oëé—Yf¦©\(gŒÃ×–îXm ¾nœeàËü謦B§Ú€êËÅIÀ8»ßød—¬¥2N“6õh]¸)„¾²®£¯Û÷.)ƒ„Möþ7¦>§¼q'LvzÊ,ê Oh󛺯÷VuCwR_Tä5LÅ׎'ŸlF}Ž
-¥øõœ^Šj?áà/cî?€I&{ª)…;Ÿ~žò$
-
-;Ù6'ÀÜØ£º¦s`®°
-R37µ1k˜Õl‹âeï^:®üU@óà~‰§yf‚—¬þëÔj0DJÇØè†R‘zZ7!õ@7E(ˆc™ÔýSsRc@À¥RŸ£±HC¾¹/£´Œ
-/'¥TpmkOÔ–”?ŸÒ¶‰¬™h"‘EÎæYÉÀ½!e¸fƒÙŒ :*ëh§ª‚X뢱‘Ÿ$_dkê’­qÈ6#²y‰Zª±Dýd’'X–}‘ÈÖ„L\ICm ßàçíæÉléé©
-ïÑäCà(üšã{d3Žï¨ˆÑ¢ùÇŸe sü!ßç€N{îsÞ%ûЙAß9~AÉ¢tÈ–ï­ƒ# 98
+xÚÝXKoÛF¾ëWðЃ„ë}?š“8‰ÔIm¥(#ÒŠtE:®Qä¿w–³¤(ŠnÜÔ(‚Bícfvvæ›Ç’E~,²ŠPáddœ$Š2­63]ÁÞ‹ 4qG©~XÎŽž 9â4×Ñòr Ëj-‹–é»ù³—Ço–'狘+:d+MçgÇ?žàÊl)5ÿ¹£xöúìùé‹·çÇ #çËÓ×g‹ØP'ó˼¯ßœìø.ï—¯f'ËþÛ2*ü~Ÿ½{O£.üjF‰pVE·0¡„9Ç£ÍL*A”¢[)f³ŸzƒÝ–uÊrJX¢,7¦“l`:Fa,ud”#ZpÑš®ºnòª¬±¦tþ§¿Oıָ(fŒ8¥xK—f—ÉMÑÄu¶ý”m‘œqC(üØÓ–Ns|ÌîÀtè·eºú ¦HÎAW~n7žs>ÐœbÛ’,×yÎø•R^dOp’_†ÿ²n’¢ÈRœ&5
+™‚GÁA´•x”5«#¯YUåå„Vm5äáÀÛê¦è)Šê‡Í:ÃÁªÚl’2ý~âø˜Yp”Õ
+F†8¾ór¿ ¤v@ªˆ3F‡ƒ½ŠhúmVTI:¡i‚`´XSJFJe™­œt‹½qz]mSp‹ÀŸÜÔYà^‡A™l¨ƒÆPøvÁì¼ÕÕÍ2ô’—ùwÜU9:¤¨VI±2„Ë&Y­ó2Xü6Ããp¶]ØùMYæåUØÍ›5Ž.+ï®~¬Ò´ŒUp
+E¶­ ÖUÝ<Åùgüƒxª÷èvQ†d!Ú #F°lè{V þ¯“óeØHÁP¹÷O;Åp±3úv*-%œs6ø(§
+&‰6|JQ"™¶ɪœ8ƒÉœ÷ã¡ÈÄ) †4iOåUô÷;4Zmx WD+f÷£ü¼¥3-ÂQÚð`eÁ(B ŒûÄt••GkA¸±2_#’¯¶ÉO¸Í ï§=P?ee)îpo…ñ~BŠdÊC  ÓZ”¹/K*MŒ%&g<È;¿=ᮺD ¨óðaó·“¢®ÐdBh"9ENš××Eâ•f<$&à>[Ô¿¾®ÊÔ›ôÐ’Œi€rgÉ>Tu‡ª…ë‡ØmL<ôÇ¥2k ,µ©V’t·0aF f |ŸöÒ{ÍèˆÝc©5ÑqÑdÛ2iòOx1U-þ—ÜÈ}‹¡ž>¹uaŠép
+lŠΧ°ÖòÅÉ„Šê!í=ÝZÀG|býæ:¤ˆ CøÔ¨Âi:¤ ècbŒ¦6ó„TVáÀM•æ—w§YH´Ž«‡˜]sÂ}´#iÒô•ôFë- uVRF„ ±P„1ª[6ßBòE ý´ŽùU™L‚ͧX ½“ؾfÛ&É[{³ùÛ³Ó_pT~˜ð¾ôÂzè0XW<=iW<ýv…Mò±Û½ÎV¹7à
+çɪíùž ]RãjšÕ«mþû&(Ôåè´½ªéÅ(22Õø-×Y<5¸Â
+ 48ûžÂ)(¼wà½AS
+²ð™ÏØ»O†Ù@ù¿
endobj
1344 0 obj <<
/Type /Page
/Contents 1345 0 R
/Resources 1343 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1302 0 R
+/Parent 1307 0 R
>> endobj
1346 0 obj <<
/D [1344 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1343 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F55 1336 0 R /F14 976 0 R /F41 1233 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-1349 0 obj <<
-/Length 3792
-/Filter /FlateDecode
->>
-stream
-xÚÝZmoä¶þî_a²¼<‘"%*)
-\ï.É¥ÍÝ5ç¶(’*¯d¯]i³ÒÚç4ýïá©ÕÚW(ŠÚDQ#¾ÌË3ÏPËÏøçç*cY!Šó¼L%\¯¶gÉù-<ûúŒ[™¥Z†R¿¿:{öUšŸ¬ÈDv~uŒ¥Y¢5?¿ª~X¤,e0B²xóü»WK¡’ÅûWß_(µø \ÌýÛw¯¾~‘ËÅÕë·oÞ_,ó¤‹ß<wå$žãÅÛ7_½þúÏã8®¾={uåwî”')náç³>$çløÛ³„¥…Vç÷p“0^â|{&UÊ”LS׳9{ö'?`ðÔ¼:§9xÌ2®A…‚iUÌÊäŠhHÎ2)FíJhWs¦ŠB{)Ôn?”áŸn•óœÉLñópÄ£y½ÔñÄBs!˜”™Œg~Ùô»Mù
-÷º¯W‡}ß´·G®›*ˆ¦\?>µ—:ž;v] ±™ƒE£É_¶»‰!7MoµÔYÿ|¨÷MÝϘ–'šºÐÖlm¹­«ãBäK-S+å,Û&¥·Ãæ!°’×-¢=m’ vRäÙ& ¤1‰“ÂÞ•›¦*‡¦WÊ’dñC×þÚÝÜ|°w´C¥"`PL‰Âmñ®©ïI˜1FâѬ‡Z$¹•þ0Ý ÈVˆœ?¾C/u¼Å8´2ÅŠDËx¯Úòz&çèxOתéÇΗoÞ¿õ‚Ú£B n%„[3þPp¦Sí
-¾* oª8%^Ãæu7¬­hV°÷‡ùdC½VaV­`ÑÍŠn®þðêo¸Že[ßvCSá‹'½Miˆú'½-”:ím^Ê{[Uoj‡
-Qû36’’¥iêǤ[æ0e
-Ér!òǕ᥎µã…
-ñ‰êS°z¦õ¸î½Ô±ò'HÕ Öf‘öŸW¥½’.DšÓ¤Xܯd ØiÖaM½¯û ½8´msÁí­…Q!4ã˜~ä¯Î³sØövK8˜e–þ|h¨aEpÎîVÊ#øwwaw¿¤’éÿ5”B:³u;â{f‚Ž¦7\
->qÀC&
-f=¸#ƒ†! ¦eˆcøhdcK©ÒÅ_×u;G’„å™þ„‚´Èx¸;œÂ‚ÌPîa—¾áCgVlß7†ÎBË D‘/6]Y¹½5-Á`]
-Ì"Mò86}¥MUbœ‚·]ÚDݹҼ Î-úiç}t9Ó…ÎÊ…ìj(¨=-os¨¤Œ9ǪÛì›ùpÌ©°ÀWTnw›9ðUŠeyâ@+ÊÛ‘â%g"—pàæp·a‘‚ö09”2|„ùiΤö5\ýѬ `;3wLM‡îÄ–7Í3‚wr
-ýT€«ÿ œÈUΠÖPOøš“:v¶¸ÈIR|*¡:ÕL™N{@ˆ„FCº«×4'yàýµÛ{[kHüŒmï°æf(+sãFñoMjiŒ„å–ö¨ÎŽ`>ÑAÛðL¼¶·ý3­FÜJR© J¬)›õtNÙðÄïJÛë×k^ÙÓÕ2`ßÿM©¹Z—MÛ“ûá}ãÆ:&cú[ºRÑ-3¸ôhfé6+kÔrm•Û:wE Ëþ::þYÕ$f¿ÄØš­'Q÷.B:”Õ)FˆsK<*´ÊXã¡Óä
-á`õ#¤:#v-sÚ‡ëpØ%É–}?Á~T98»ä¼S5+gzxÙѸ B‡¿ØYº†7“#q”
-ž§Âɱ1<†@Ûôk—€eM¸Úå„èÙµaÓzè¤Iβ@Çk?ÃʪÃ'Àn–îÕœ©“˜¢ZcCìŽë‡›0+ÅÖÖŒ'™ŠR2ÈG÷¥³½ÝØ.:Ž…† èD4§ô­Ý7v|•êTh¡•M!¦…ç(Óš4ã,áE\
-„›òŸ8ˆÆv<åׂc-ã(ë¡74I™*¸æø%~’€Í€Ð‚­NÉs@Âä[|J_–Yš,^·ÔU7æ#»‘[•}í^%bPtì,½AëÄ*tb•…Æþ½ìÁVÆvýÑfãxsÌi ¸ì-ýé45Öåô—
-·ÂbŒÂ"ä9æžR!4J7—÷ÒÜ—ïÅ¢™H5ë<ìvž{X’íÖh[Cðƒ"1•ˆÄÎ ƒý\ÏÇ%
-Ôâ°žK*a²ÊwÃÇe Sž3÷硦$ÀK{ê@„h ‰ƒXX.œ½EBAl½1gRðɯ]\hó‚›Ìn®-]Í6ßáyÔsÈ…ß?ÿŽºséØëüú "@æÀŒÆt´ù’~ê‹NËÛÞÞ5ƒc—ôûƒÔø^_n'd—嫤I:°SÇÔc_D ‡snN¥ýª›
-é¢ZUmÊD?ÜÞ•›ƒ•1 ڶƢÀÜ6ýÜ9§Á>OšùÜ1nÈvíÒhÁ;«tX9¥G˜åý7Ï—'—Šñ”=>9ÊÇÓÿ› h|öx
--NPy‹ÈÊ eà’>`‡ÿ@Í`s®ìHæHÐt_Luû¹õr–rÿû¨OÑH2°Ô®
-W¨â´DXÇSÝfëß묈ýPø.ÞÞ¯Íg]h\Þ
-ûbö‡X˜Ñ<—°|†ùŒ±àSN»XZ´^à”4æÀŸ“qòÛ™eä,—úø`5€Xùc´ßÍ‚c0ˆý€'üážE?ÆÁ„Œ 8O »°A ÞVxãl…#-¸¢Î ÛÀ@ø̶n`J»øì„ò1É„§‘òÍ«¾„ƒ›HùØÁã‹]ÓrFeK?CädÿE Ìýš<U >s‚”œ»eþÇ¿4€/s€A-NYç? ¥nQ&ÅÑÊyÂDš‰™¥ÿ âæWendstream
-endobj
-1348 0 obj <<
-/Type /Page
-/Contents 1349 0 R
-/Resources 1347 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1354 0 R
->> endobj
-1350 0 obj <<
-/D [1348 0 R /XYZ 56.6929 794.5015 null]
+126 0 obj <<
+/D [1344 0 R /XYZ 85.0394 490.579 null]
>> endobj
1347 0 obj <<
-/Font << /F37 1038 0 R /F48 1253 0 R /F22 973 0 R /F21 950 0 R /F55 1336 0 R /F53 1328 0 R /F41 1233 0 R /F11 1353 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-1357 0 obj <<
-/Length 3478
-/Filter /FlateDecode
->>
-stream
-xÚ­ksã¶ñ»…&Óò̉Á›dóéîz¹:^Ò;ç2yt:4EKœ£HG¤Îñtòß»‹@R‚l§íèƒðX,‹}ƒ|ÁàÇ™N˜ÌÕ"ÍU¢׋rwÁ˜{{ÁÌÊ­¦P¯®/¾üZ¦‹<É0‹ëÛ ®,aYÆ×럗¯ÿúò»ë7ï/WB³¥L.WÚ°å»—C#`JëåGñúÛw__½ýþýËËT-¯¯¾}w¹JY®`åÓk¿ýî͸îÃå?¯¿¹xsN1=)gðëÅÏÿd‹5ø› –È<Ó‹{è°„ç¹Xì.”–‰VRú‘æâÃÅ?Âɬ]㜖Y¢3‘FX'ø„u\ò$32[¤:OŒÒònß®ËËl½ìëM[·ê¬Ú¾*å]±/v4Ðvm…ǤbŠT‰D±T)Û%Ï–Õ®û\õ´¬hé¿ú­î‡€ý݇7¯%5ËmQ·vM Âr×¥GSô_ÛE‚-VܨD
-- •%Ê
-{=Åp Òz“°Q1Ð, 74Ž$áhAÝ~[¸9TUIýáâ<!¬h†
-Oä}mµ›qà_ßQ«éºOÔªÛ'R0¸†›“+ýT=Än”%)K3ý Ó %‘߃ÚTh*N·0à¤òRÓ?ô(.ëzÁoD’¦šûã=!_WÈËÖZ»WÕR‹ì4^]½û Éô£y:gßÍ¡nP6ÐV!V13¬dZà8.X1a•òô ¸m”’E;Ã'Í`jøäÁYjÜ|SµÕž (ß<Ðÿþ2[ZëÅNEƒ (ÍÒÉþ+äåÙ«WE„¸aNÎ-¢Ã#Kûr_ßÀþĵT&¹Ðù\-Ib¦ñ.Sæ còDÉÌ §¦ÉýfA÷×àWÓäÚgÊv‚÷ÿP•£Ö›õ =©N¤a|FÏI€ ž¢âR᜴æsÅç>ÚZoi¬‰Þ¡ãœ×- ~òÔ…”—
-°®þûzW7ÅÞ-ï<Žt·1[¦A…÷JÓ»j}Î"CÜú•‹¼’¹ ã‹èØ\úd÷®EŸLG<ì´€m”Ü™¨~
-S Uô}WÖè*íÝ8t&r9×dòT™™5YŠŒëiÆFDøO ©c‡›u[ۺ܀>ÐàHtvUÑ:ôéß>rhiyî€ììøÚFX
-l„U¡³gÜmν
-åìL( é(c†?u%)c‘+±»ÅRbÐÃ<eúÇÓx蜻œ
-Ñ’÷*`\MQÚtsFš-= HÍØ#b B)CœhÏ:+,Ôõ¦è’\½*nÏr´ßOÚ3– ±g°…»hÎï;y,ÐTF…P h6ÝìÍ.²©J!ó Ju6Û’:¤‡˜ÔT1—* !FýDnü°­}YΙ•ÖµÉrÏŒR¤¬g–wž·‘ž2>¾ƒVQ–ÕÝàÚí5‚Ø*MÁˆòé•2ÇѦrÎxæ ¨tYöx¶Cã0SV>Ãç6û/5c»+ÊÕn­ã÷‘‰s8уk÷Oç…&~@ÃDê()›æœ“È  ¿›¢¯VÆ!­Ú²s*ù‡À}¬Ö; ÞýÚ½Ÿi•9÷Ža!Ïrî4Ç´ü‘|#7RGB²1ïÉR4LúÓ8Æ=Nžso<‡ð9Íåã*š%Y®eœ"—µ´¸ƒ¥Ê*“þù=ᬰҀª”?3/ ÈL¨K[Ç%øÔq ç¸à—`.UÃÊ °e«Ë2¦jøÀ)äÙ-ÃâGúŒ 0KÇwÀfV®±aí6Mà!Âb!ó:kF3¦¯­06MçèL¦€wÎó‰Y3?ÃX3f
-ãìÏ´äÊfÐ
-…Ç r÷-Ðú½:Þú’×#«­NO7ÁW÷&&e lÛP¬¹?¸Ðlú€I³s&°J%ÉÆGv¡Ôÿ “a—Û¥£ù@u&Û@çp¤9¤p2Éñ §#³b%ŠPÚ?Ë M¾¢þïôGÏ&¸QÍÌ©[
->}´ Ï׶àÆêÁÛ^èåJ°ëÊ¥lZ®Çžä9¤;B„Ä.–ãŸIAû Måÿ!+WŒ”OI“éb½Î=7%ö¾Mh|þÏæªø>ˆd~îYRgÀ©coëÑg‘†Ú›+­oì§f¸ƒK sƒbú¹jkŸ¹ÁœK…èÓ€(b×£±^c¦µ½³(“¤Zªã/ `#úhvxèömÇ~]×kš¶_ˆ¸B®Ü÷ø‹‰uÝß5ök)û¢ž/\*ÚßuíúÌg
-ø‚š ¨‘(<KŒÌcÉÔìè§!WWâ®V
-#„! ÛÏ(äåcD,zé>Bª?ãwiœszp‹}/)u‚9F>>`!äøŸ¿¥?1ÅI–‰øW ’J‚Qx".)]ž’þ]Mïþendstream
-endobj
-1356 0 obj <<
-/Type /Page
-/Contents 1357 0 R
-/Resources 1355 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1354 0 R
-/Annots [ 1359 0 R ]
+/D [1344 0 R /XYZ 85.0394 463.2745 null]
>> endobj
-1359 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [120.1376 668.2829 176.3563 677.4983]
-/Subtype /Link
-/A << /S /GoTo /D (controls_statement_definition_and_usage) >>
+1348 0 obj <<
+/D [1344 0 R /XYZ 85.0394 433.7571 null]
>> endobj
-1358 0 obj <<
-/D [1356 0 R /XYZ 85.0394 794.5015 null]
+1349 0 obj <<
+/D [1344 0 R /XYZ 85.0394 421.802 null]
>> endobj
-1355 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R >>
+1343 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F48 1258 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1363 0 obj <<
-/Length 905
+1352 0 obj <<
+/Length 69
/Filter /FlateDecode
>>
stream
-xÚÍWKoÛF¾óWðHåvߣk8ŽDvcº(æ@“k‡0E¦¢ÜÔÿ¾C-—ZYtl¤Bè ]ržß~3œ%1†‰…DÒP+ÑÀDÄå*Âñ¼;È(“y¡,”ú%~~ÃTl‘TÆùm`K#¬5‰óêcÂC)XÀÉòäýYšQ“«³©Éoð·Ý_\ž}8IOòÅÅò*Í6<9}{r™{‰—mœ^,ß,ίwvÒOù»è,Ÿ²3%˜ )ü}ü„ã
-~aÄŒñWØ`DŒ¡ñ*â‚!ÁóOšè*úu2¼ÝªÎ"G0¢LÒè(  Ó cD¬„A’Q¶…î±{p¹•EëëT'íè“z¥ƒÛAqÝVeVvíí³bT
-*†$f|TÚtN´··xøâþGUúã
-iitàÝÛÇÀ!ÄûøcÚØÑl[¹EÛW]Uß>ÎxÓ
-aCÅh¤-V¶BCz3þ$ETJ/ZŒ–‹¦Aj„ #¤3Ž b
-ðΘ@„`5q–¦ÁxVßµEÓϸÂqF92²”NízSÔ[¼Ir½\üîVý¨
-ùÐ[÷|óy\ 錢vý—]¯;§±)îýÛ/¶¬
-R¸xãßÚÖ¦íâ­¿C– )×þpî릙•h$öŒ)»Õ
-˜‚žV³–ˆ¢b©(âP_¯¨f¶-|¡÷«ùû´|h߈Àéa°5.½Æ¾©Ì§”I‰¡UH½k!ˆ†"¥•Ž¥äPÌ‘ïjqþöúò)HD¤¤`qhñß9™œ‰rÿ%"Ciì…y:ð¿ßQd$§=žšÐ:%:±E5Ó a`«ïè¾ã8ëMWTOB©
-(ˆ¢·tã`!æˆ@2ÃÂ
-€Ü}>þW“c2˜kD£/0X¤À‡g0|íß?OáÀäÑ(|æ<…Ã8_Má²±¾UN_RO@ûw½yžcGËô‡ãØQ»$|±Õ03}›cÌ ¦%ñ[,óç)X<Å¢œ§Xæ@±£eú£PŒÀcE$Ìd0,ªýqü`,‡Qò‡K@&`~ÐÚð¹éÇ/vÆ×ÞvW(˜œ™ÖÏ´ª4 HPúp>`ËÑðƒ«Œ¿Ux± ø
+xÚ3T0
endobj
-1362 0 obj <<
+1351 0 obj <<
/Type /Page
-/Contents 1363 0 R
-/Resources 1361 0 R
+/Contents 1352 0 R
+/Resources 1350 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1354 0 R
>> endobj
-1364 0 obj <<
-/D [1362 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-126 0 obj <<
-/D [1362 0 R /XYZ 56.6929 741.6375 null]
->> endobj
-1365 0 obj <<
-/D [1362 0 R /XYZ 56.6929 714.333 null]
->> endobj
-1366 0 obj <<
-/D [1362 0 R /XYZ 56.6929 684.8157 null]
->> endobj
-1367 0 obj <<
-/D [1362 0 R /XYZ 56.6929 672.8605 null]
+1353 0 obj <<
+/D [1351 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1361 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R >>
-/ProcSet [ /PDF /Text ]
+1350 0 obj <<
+/ProcSet [ /PDF ]
>> endobj
-1371 0 obj <<
-/Length 2407
+1358 0 obj <<
+/Length 2408
/Filter /FlateDecode
>>
stream
-xÚ¥YKÛ8¾÷¯ðme RÄ·¸{ÚÍ ™:Øtïa03Z’»…±%Ç’“éüú­b‘²d«Ó ÄY,Ö‹U_±Ù*‡lU¨,V®Œ•™Ê™Z•û›|õ
- «©E¦
-nVé”Éîo^¿çlÅóLk®V÷Ûñ,mT¦ )V÷կɛGwêã:å*Oäú÷ûŸh›ÌLanËá›å’I¿áßÕW×–uE;ÞÞÞÑà}í†Ó±îGLfBj8h“å $C2cë”åyžÜvC³}
-[øÊfVsv‘I%éLŠ:¹ýtÿñý/4nzü5‰£Ï}]>º¶é÷ô9<º!¬ïvÝ·>¹Þ+‹ã¾>~­aa舸%‰‹º‰´;÷µ¾Úf’nK“xôC}ÁË¡b¨
-c™UŠ{U¾wmý äB%•\´¹J>¶4u\³"©ûC×ö5Í 7üu£eÏfb\g‚™AÞÁ:×æ”,ÓR˜@¶õ‡tûÈ×ÿDËà˜T\™¼Â‰-VÈ8üÖìv4*ëò¹°}¥÷nÀQ3­ÑzMô¢‘Rb5H0ó’Ò¹]h5¡×ñw\*OG2Z;ÐÄ™?|¸¶z6né<gÚfhÜø¸Ë“†£kû-Ù!‹®ä,c… ¨|ßatä&Ùw$}5í¶;îÝàeÀ ·éN 1ܨ@g.ÍKn69ÌÙ+béMoTu_›ÃY
-W6©BpÂ
-¢I[ÃäÚ91Àáh‰(ü3Ò§Ó ×6¹æ;sªœc®D*°Z̺rM yIˆ N(‚ϱEr¿þPé´1ò/¤P#sÈ”B‡®ìv¤™ÏKàÂþP—ÍoyΡBúÌ&´«z^šŸ>¿Cf­Î.Í2Fã™Ö Ê_n~ý=_U`ŸŸnòLØB­¾ÁGž¾Úß ­µJÆ™ÝÍÝÍGŽÂ
-‘éœéçyѾx…!íP¬Ò(]*8à1÷Ȩìve1¿Àª°6“¹¥;{;±±ÒÒ# –gJðèŠOëT³äþçÉ»KË
-SDôçÃÃ@x´»'¡w˜+ "1f¼ù¤È,Üì£ù™0Ž–ïé3€>5áwâ„K¤`Á.ä›&‘¿——0*«í* {ÿvÖœ¦º3±ž¶X“N'ÒqåZ±ÐïðÐï¼}W6%eüÿ*Ÿ/7?ã&mã&?ö%~ýìëá±C
-ƒ·¡Å/øx#}o›žž‹$ͳ"·± z_?ǘ«ŒÉoˆazèvM¹„0Ò(SØ@]î|›‹=Ój(íjØåQï5k€cy!£~ý€rP• Œâv^RöÐ÷]8ƒ
-×j ¤‡
-΄£Màõ¿|ŒÜHÖôA-08×I@t98ÔÌÁˆÏùMã혽B†·Ã³å `æp„²Þ"°q—o—^ÇãsÇM´^„ |UÀ1øXžÆÛŒØ<âr“ü–«üû¦GŒ—¼{÷Ö-m»ðhŽ|€Jä¹ùç_4’ÏŸï>~xEë·°•z…)AÃK,¹pÝ׶½ÿ¬&TdÍ9³à¤Õ‚w:|d…êäÛ£dZK&œÈªVŸ±*Œ£_KSÐ=5m8#<ÌÁ,–JÍ#D±”îI—€-`ñcóÝÓ|Ä—×Ç:—üK³›”Œ üs
-ý1àÖº@TÿyÀp.ª…aGØ…~æII¨L>óznvFš¥Â¦ˆBE D¨3SÏ>º^÷µµ^endstream
+xÚ¥YKÛ8¾÷¯ðme RHñ%îžvóBf€6Ý{ÌÌ–änalɱäd:¿~«X¤,Ùêô
+•1aåÊX™)ÆÕªÜß°Õ¬}¸áF*‘))|,¬¦J™*r³J§Lþsóú}ÎW9Ë´ÎÕê~;ž¥Êt!Åê¾ú5yóèC}\§¹b‰\ÿ~ÿm“™) Çm Ž°“\ú ÿ®¾º¶¬+ÚñööŽïk7œŽu?rà2Rçƒ6ã r_§œ1–ÜvC³}
+[ò•Í¬ÎuØ!D&•¤3ý)BèäöÓýÇ÷¿Ð¸éñ×$Ž>÷uùèÚ¦ßÓçð膰¾Ûußú@äz¯,Žûúøµ>†…¡#â–$
+,ê&ÒîÜ×új›Iº-MâÑõ/‡Š¡*œgV©Ü«ò½kë
+tÎ¥yÉÂf‚Á ‘½"–ÞÔ8ðÁAU÷å±9œðQ(–‚ˆe†óxzûÜ@&Æ ê&ü›ÉoÞÝŸS–á\°r¤$Z<>¬hðy’ÃFútºrØ,¯ø¢,wuyFgyÆ5¤˜ ‘Æ49=áÉôÇ‚Ä\*!5ò¼ p…`ƒÐ‘*' ÐkžŒÞÀ9ôÆŒ(„œ”Ѩ >Ò6+$dC2¾Ûõ]ú¬£ š´1L®Ž–ˆÂÿØ9#}:Ýpm“k¾3ç ªÁ9æJ¤«ÅL +ך—„¸à„"ø[$÷‹á•N#ÿB
+5’é@v :te·#Í|^ö‡ºl~c,‡
+é3›Ð
+¬RèyhB~úüþ ¸µ:»4Ëe<Ï´°UþróëïlU}~ºa™°…Z}ƒ–‡|µ¿AZk•Œ3»›»›ÿŽ!…"ÓŒëçyÑ>¼Âv¨ Vi”.9à1÷Ȩìve1¿Àª°6“ÌÒ½ØXié‘g™ytŧuªyrÿçÉ»KË
+®¬´VÑdìu=ÛÀO¼þ¸ÏWo;Ðh5Q*2N§œ½RšÍ’&
+Ò:WXòÂ$ß×2€¿ï@Pº6l€ M£M=aaÎe¦†@ÒAæ8.œÐ#ïWdW= qHj
+ÌÄzÚbM:H—(?Њ…~'ýÎÛ'peSRÆÿß¡Bðùró3nÒ6nòc_rà×ÑϾ; †%[ï%\«*ˆt¼­€b ¥v®Äè÷ë‘®ªwõ0ÎaI°¶
+Çø’59.úÆ¡aðã͉
+rg_ϙ͋imÂE©Î¹Ð‹ ÁĽ<9úÑYðIì9´)n+;âÎÉ\¸Þ–T’S0̸E -~‘7Ò÷¶éé¹HÒyV0 ª÷õsŒs•qá 1LÝ®)—&@e
+¨ËÏbcñgZ e ] »<ê½f pŒ2ê×(eP ¨ÜÎKÊú¾ gÀøç64Š8÷‚TUw™Y£¢îèVî áŽëh¨0I£[§¨ù®+ÝnIuÀø…±“úËò N?2¿Ö‰FÔŽãhfõqß ~ú”0ÛüGô“³@à*Ó
+°§)æ~úöØ”#áå@‘¨øûP·õÑ ñÆmžÛTl’y~]çøëïubN€8:§CHwu}Õ€0Ey"¤꥞(Ò§Ó íÈßyO²aOUE^‰dr¸-v&ÑuSˆ^P*d3ƒªfÂñ¿ªzpÍ®§[ÀÌÄüv©NˆIŒBŒ'§Þg0œÿ¹>njê”Âbß<´èe\¥#¿œê~èiÆÃa$ÛÔ4±wU\yx瀹ûŸßýòúÃÝMÏ[2\ß<Ñ/ÜÍté)ŽêP"©‚Ô8^Î\`¶š˜µàê¤P=M
+ÃRúu$ز3;{/Á7CUW¨Ò7”ÐÖ Í×1¿ ¿ ôY¾ @þIÇ-ô˜¹]®<ÖdÈf1á  #7s»¸ˆ/ÎÈ×Ó#ªnïšv)Eö×|¦¸¯ØªH>µ¥G/ÚB¨‚¯ÌC%×j ¤‡
+΄£Màõ¿|ŒÜHÖôA-08×I@t jæ`Äçü&‚ñvÌ^!ÃÛaˆÇÙò…0s8BYoظ˷K¯ãñ¹ã&Z/ ¾*à|,OãmFlq¹I~cŠ}?Ãô¨ƒñï’wïÞÀ:§¥mÍñƒ€P ÆÌ?×ø¢‘|þ|÷ñÃ+Z¿…­D@Ð+L ^bÉ…‹è¶¸¶…¤èýg5¡"kΙ'ݨ¬¸ÓÐá#+T'ßîØ%ÓZ2áDVµúŒUa-€üZš‚î©iÃáaf±Trh!Š¥œ p/Hºl‹›ïîœæ#¾Ü¸>Ö¹¸ä_šÝ¤$`\àŸSè°Ö¢úφk¬pQ- ;Â.$ð3OJBeò™7Ðs³3Ò,6 @*J B¹xöÑõú¸ÿª_µFendstream
endobj
-1370 0 obj <<
+1357 0 obj <<
/Type /Page
-/Contents 1371 0 R
-/Resources 1369 0 R
+/Contents 1358 0 R
+/Resources 1356 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1354 0 R
-/Annots [ 1375 0 R 1376 0 R 1384 0 R ]
+/Annots [ 1362 0 R 1363 0 R 1371 0 R ]
>> endobj
-1368 0 obj <<
+1355 0 obj <<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (/usr/local/share/db2latex/xsl/figures/note.pdf)
/PTEX.PageNumber 1
-/PTEX.InfoDict 1385 0 R
+/PTEX.InfoDict 1372 0 R
/Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000]
/BBox [0.00000000 0.00000000 27.00000000 27.00000000]
/Resources <<
/ProcSet [ /PDF ]
/ExtGState <<
-/R4 1386 0 R
+/R4 1373 0 R
>>>>
-/Length 1387 0 R
+/Length 1374 0 R
/Filter /FlateDecode
>>
stream
@@ -5119,12 +5018,12 @@ qª„Ñ«ò^ÿï>‹«>÷— .13×…Óƒ!¶3¢SËAÕ”ih¥Å¨Š^…(€<Îm䦽ªšÛÆlLÊâ³ò7Ù
n*Œ1½÷¨¾x¥Æˆpîâ‹&XîÃœ§³±è\íD¤ßä0}#XŒûž˜‹¸À>#^V°¡|2Îi‰9ÊÎr)`˜¢Xh¡Ò& „hb—H°Œe"Ãê
þrÓGçX5¾ûû8‡´ÕªOª«t–Ô³$Ây°‰—BÒ›ÀÄ5©/¨vp÷o`kA“ôr ±ñœÓ4N.4Žæ
endobj
-1385 0 obj
+1372 0 obj
<<
/Producer (AFPL Ghostscript 6.50)
>>
endobj
-1386 0 obj
+1373 0 obj
<<
/Type /ExtGState
/Name /R4
@@ -5134,123 +5033,123 @@ endobj
/SA true
>>
endobj
-1387 0 obj
+1374 0 obj
1049
endobj
-1375 0 obj <<
+1362 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [470.3398 467.2776 539.579 479.3373]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1376 0 obj <<
+1363 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [316.7164 455.3224 385.3363 467.3821]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1384 0 obj <<
+1371 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [304.6433 163.6578 373.3153 175.7175]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_policies) >>
>> endobj
-1372 0 obj <<
-/D [1370 0 R /XYZ 85.0394 794.5015 null]
+1359 0 obj <<
+/D [1357 0 R /XYZ 85.0394 794.5015 null]
>> endobj
130 0 obj <<
-/D [1370 0 R /XYZ 85.0394 769.5949 null]
+/D [1357 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1373 0 obj <<
-/D [1370 0 R /XYZ 85.0394 576.3463 null]
+1360 0 obj <<
+/D [1357 0 R /XYZ 85.0394 576.3463 null]
>> endobj
134 0 obj <<
-/D [1370 0 R /XYZ 85.0394 576.3463 null]
+/D [1357 0 R /XYZ 85.0394 576.3463 null]
>> endobj
-1374 0 obj <<
-/D [1370 0 R /XYZ 85.0394 533.5444 null]
+1361 0 obj <<
+/D [1357 0 R /XYZ 85.0394 533.5444 null]
>> endobj
138 0 obj <<
-/D [1370 0 R /XYZ 85.0394 299.6823 null]
+/D [1357 0 R /XYZ 85.0394 299.6823 null]
>> endobj
-1383 0 obj <<
-/D [1370 0 R /XYZ 85.0394 263.0631 null]
+1370 0 obj <<
+/D [1357 0 R /XYZ 85.0394 263.0631 null]
>> endobj
-1369 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F62 1379 0 R /F63 1382 0 R /F48 1253 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+1356 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F60 1366 0 R /F61 1369 0 R /F48 1258 0 R /F41 1238 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1392 0 obj <<
+1380 0 obj <<
/Length 3579
/Filter /FlateDecode
>>
stream
-xÚ¥ZIw㸾ûWèú½‡.ÉÉÓmg:/ñLlgy³ ’²8M‘.V{~}ªP”ÙÓ‡<ˆµ
-6ÏÐ÷׫Çlí ­;êÛ§«oîd²Éü,ñæiïÐJý MÃÍSñ“ùÒ¿
-÷ñþýÃí?n“È»ùûõV¨Àûñûû[*==ÜÜ?ÞÝ><Rõç@ÿ{÷
-ì´ †wÐn Ð—ÝKÙQù|(›‹n\¼ëª®C/§úÄœ¡?®BñTë!²”¥0“Kíþb™ ¼`ÍpÚÅɾömw4lj2:¨>ʦ IA3‘†Bùy(›¾jÒ(t4$MSIŒªŠdý_›zED ÊIdÔdZ
-ÞÔ¡k.7-÷î˜hYT¤dP>êf4ûF˜ò'&~&EjvM›Œ“Yý |®Œ‘BI×}K¥6Ï5ÊUGuÕÀ“1"*Æã ¿„œØ3Xúy{<Õå0ÕЇ¡gÚû‹Á¤ÏUXNqJB‡–ÊN4]+š9p$•5àLxöK<ƒBA¤±ëª\Á¢ætYèéý`Ø}¥Î<~¨Ð&ß°ÜÏõØ3±á y3
-îlgÛR¡¯Û3"s‡’^ƒ’š`í ˆIo¡dÎß™]PÙ“®ÿ6'É›=~lú¡ÔìXȈ™-R…¶¤W”µ~µôŒe›Eèk„
-ÒÝÐ#XXDË+Ó”Ç~ÐMn$‡Ú§´úË ÊĤ´ÄŸ#`\±TÙ¹ƒÆAâpìÌÚ<¯@ø…íº!$¤§pè…ZX ëõž¬ò¹±ÎüÆ3ç?´¡ †Šx†3h"µV|8uÇÆ+‘w\£qýaŠöÌ[îÌ;ÝŒvÁv곚3mPÙWêaq ¨Là/8ÐÁÝ5àŸNmGÜ4PE*+vcc"ôÌŸÙ” Âðƒ¥¶ýD%cL<‰‘ÍŒä¶Z÷<e&Žò\õïçÈÍ]ŒÙ;Ö\' jÖÇ6pgj¬R`¢Ö5ÎKëÝ—¯á„uuI³_­­·»p£}u¬:Må¬W`â8A%§0JÊ…ÛS;è3»a¯Ða“Tl?Ð:;eÁ¡’ôìÏ]ç¡L4Æ“cKëç…÷<jàÎP9‰z´¢#è`µaHf#Þ,ñŽ­sfõ5'€Ì܆͡9ô€?O¨y8´„n  •¶!§™xoœµ?sÂêb.âùböÙOƦ
-ˆG—2È,Ò6ü  ]ØÞG<Kšx¯íH…ƒ~Áí¥ìA¡åH4uåÛ­iôÌ…t
-±Ìd'b|çJæìÛÙ»ÃØÉëã¤é=b©í>ý°?UÞ‡ª×»zΦ
-j=§’úq’IÇ¥kn5 . '·JíË4¶°AmÞò\y0SS•:5×R*ô5ãOÀ!O ´ .–d¬‡Ò, üÔïÖ ¡¢ ¥hÆcD<Ž#Ô”-r–QjÎð
-´Úl8 <ëfXžŒ (Ñq–zxûȦÐOžüö^þ‡9žï Ä'“’G³¡ÄÝ?õ‘³ŽÞj¶š %&êÀ*½ñâ Wð]Gjä]$’cä„D"é€ FoŸH¬a™ú™®¼Àè™2i+ê‚ó1/=Ó’ Ü|ꊞW°Òâ“I¿| À)%í6N”+qì­xfß¹¥(wF$Œà ÃpbrÁÃÁÄ'¸M¾
-Gg\ªà 8"À`xbílgC‹›d¬.â)h¨Ký©§¢cDߣɑb ÃЯ¿Tš*%„$¼Âî`ªˆ ™qÄgylþ;
+xÚ¥ZIw㸾ûWèú½‡H‚LNžn;Óy‰gb;Ë›å
+…›
+|™¥ñæ •À³LlŽWQ,ý8’Ò¶ÔWWÿœ:½fê*#ÃÀ2+œá& ý,ŽÅ‚•qæ'RHf¥ða
+ÅS­s<†ÈR–4ÂL.µû‹5f&ð‚5wÀiG$ûÚ·ÝÑ'Êè8 út*›‚$ÍD
+åç¡lúªmHC¢ÐÑ4-V ª*’õmê= (w$yQ“iX˜MæXnWÞvÄýþÔ:{cÕ‚Ò,ØÀ«M]ö=UûS™WØO²D.lÃ4ö3DK· ½®*Š²AÅ ¿b'¦\ñ"¤™é|àíªFwÌO䱸»)xS‡v¬¹Ü´Ü»c¢eQ‘’Aù¨›ÑìaÊŸd¨üLŠÔìš6™¨Yý |®Œ‘BI×}K¥6Ï5ÊUGuÕÀ“1"*Æã ¿„œØ3Xúy{<Õå0ÕЇ¡gÚû‹Á¤ÏUXNIJB‡–ÊN4]+š9p$ckÀ™ðì—x…‚Hc×T¹‚EÍé²ÐÓûÁ°úJxü<P¡M¾a¸Ÿë±gbÃAógÜÙζ¥B_·gEæ%½%5ÁÚ3“ÞBÉœ¾3» ²']ÿmþN’7{üØôC© ر3[¤
+mI¯(kýjéË6‹Ð×¾aLßcÕŒCÙªNE&}º
+^ ®$§„/eY¤'løAº°½x–Ty¯íH…ƒ~Áí¥ìA¡åH4uåÛ­iôÌ…t
+±Ìd'b|çJæìÛÙ»ÃØÉëã¤é=b©í>ý°?½U¯wõ*œM;Ì@†4nÍ°@ûÄ.º ¾e}˜À57MÕ‚õ8uß•åï|?M¤›:ˆ|ð™‚'؈òÝ,ªpšr`‰Äéȸ/B'l›]¦{ˆ0°×ε{l% “¯Þƒ²LD<Èê9®Àa¸UÒ ïú®½L—D!¬{ ïž¼εnù·99g¬ <#CïaÝD¦’¥ rú¼"†Hùq¨¯ˆ!ñC1Ù¹IœÔ­..6Lú_\îžpwš¸-›I5·BE~áTÔñµþtèÄ%‚“Q
+f†4y=\± e»Ë“¦• òP)± KüÎYÔÇ|X`«Å~¢·^9Ú&ÒT:ks—‚{åήŒÍ”# ƒ}*ÞѽÉÉAqmÞ3Ò™ý•¹¿ãU¬aÒ{KÇ"x±¾›]ÉÈ;•
+€@CÒš÷£‰SddºvDÈFHΚ0ZH"Na3‚f†8°gši°ë4L Ð…¯”Qê«`ÊmVŸéê´Ýwíq[
+³b¦^PLZ€Æ*“ÑXl?¶k—Ž[€z׎‰ç—IUÞQO_–Tà|8Œ-û¼«N3ÊZÇöÎMÐif%Óaz¯¶FSÞŠ(Žý8άˆòš/—_]%V>„m6´äÊ[ò2ðÃ0¶ÚÚ€/o¬Dày@#’(» Œ"ŒA&ÃüxöÕXç±X—DbîjømÄ/µØüR•g“ÞŠ(Cm}µ«`ÍéŠ#™/’3.¦`ò°ÐŸLâDrÆ¿€`%Ýj¥E*Œ(ÊÏÃuèM=Ê&DÚšÂ"3•¿c?Nï F³à(ó㕈8Ö•áoD‰âoîdæp*›A,ìMÆ2¯36ŠüT‰t’ö0ž8¢šÝŸYk®à3œ†òYïU÷˜¥í5ÔAô¬›êwk+Ðj³á0ð¬›ay2B&h DsÄY~èáí#›B?xZðk8Ø{ùæx¾7¯$&%fCÊÝ?õ‘³ŽÞj¶š )u`•ÞxqÐ+ø®#5ò.”äY±ƒP’¨0B(x øDb•ËÔÏtåÆ@Ï”I[Qœyé™–Tpó©+z^ÁJ‹OZT$ýVø€SJ0Úm¢bWâØ[ñ̾=rKQî(ŒPŒàŠaX™\ðp0ñ .Æ_“¯ÂÑÄ—*xŽ°ØžØ_;ÛÇÙÐ’˜M2‰/â)h¨Ký©§¢cDߣɑb ÃЯ¿Tš*%„$¼Âî`ªˆ ™qÄgylþ;
endobj
-1391 0 obj <<
+1379 0 obj <<
/Type /Page
-/Contents 1392 0 R
-/Resources 1390 0 R
+/Contents 1380 0 R
+/Resources 1378 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1354 0 R
-/Annots [ 1396 0 R 1397 0 R ]
+/Annots [ 1387 0 R 1388 0 R ]
>> endobj
-1396 0 obj <<
+1387 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [464.1993 393.2115 511.2325 405.2711]
/Subtype /Link
/A << /S /GoTo /D (proposed_standards) >>
>> endobj
-1397 0 obj <<
+1388 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [55.6967 382.2725 105.4 393.3159]
/Subtype /Link
/A << /S /GoTo /D (proposed_standards) >>
>> endobj
-1393 0 obj <<
-/D [1391 0 R /XYZ 56.6929 794.5015 null]
+1381 0 obj <<
+/D [1379 0 R /XYZ 56.6929 794.5015 null]
>> endobj
142 0 obj <<
-/D [1391 0 R /XYZ 56.6929 769.5949 null]
+/D [1379 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-1394 0 obj <<
-/D [1391 0 R /XYZ 56.6929 749.4437 null]
+1382 0 obj <<
+/D [1379 0 R /XYZ 56.6929 749.4437 null]
>> endobj
146 0 obj <<
-/D [1391 0 R /XYZ 56.6929 458.7525 null]
+/D [1379 0 R /XYZ 56.6929 458.7525 null]
>> endobj
-1395 0 obj <<
-/D [1391 0 R /XYZ 56.6929 425.4132 null]
+1386 0 obj <<
+/D [1379 0 R /XYZ 56.6929 425.4132 null]
>> endobj
150 0 obj <<
-/D [1391 0 R /XYZ 56.6929 270.5184 null]
+/D [1379 0 R /XYZ 56.6929 270.5184 null]
>> endobj
-1398 0 obj <<
-/D [1391 0 R /XYZ 56.6929 234.9696 null]
+1389 0 obj <<
+/D [1379 0 R /XYZ 56.6929 234.9696 null]
>> endobj
-1390 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F55 1336 0 R /F48 1253 0 R /F39 1173 0 R >>
+1378 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F63 1385 0 R /F48 1258 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1402 0 obj <<
-/Length 3172
+1393 0 obj <<
+/Length 3173
/Filter /FlateDecode
>>
stream
@@ -5264,37 +5163,37 @@ xÚå]sãÆíÝ¿Bo¡3'v¿¹LŸ®9§¹Lr¹äÜ6Ó$3¥%Þ™=™TDÚ:ç×Xì’KŠ’ìfúÔуö°
3ƒ¾ý4ÆEýùa[î6—<yt/Q\Þ­†VÕ´ÍÚG,?Ö>:¸/íôö99»*Þ€góÊù×#·tÒ¾sõu¤CÞC—rò¤?Þ=ò<¹x¤½ú¼ßJÁŽ¼˜•qC7CKú&zÚvùÜy¤ÿ>×cRw‘‡Þ,EˆOÿÜj<3Ë9Íg]aä°‚ÜoŠÕǾuzDîÑÛ¤HÐM}Ή¶ÇZ«AdÌ8¥srík1n¼U»QCÿ¾K £í¥Ë2(ƒy‚¶Ý¶2–2Àöm}‡‚dÂu0н“>ph =”vÚyœyAéF*m_»îöLö“§ÖÈ’èxTùR>Ê0ÛSöP³O²wo?)5€}âá.Õ)®_ÞNne‰=<ï*XÆCUr|åóà!Q6`×ç 3†pª±î£¾‡ îÚ™KÑ~Bt¥v1º„Á…5ϼ~ÔY
åk~ðú1yAä! Qwìeë»7ÊùÅ/µ¾8ö–Y
CEÕ0´2ÂE¥ϦD1ÑÎÊNSí¡ÉNÒv+3&û-¤thÊYÈ6ÙÈ[NÚã3õˆÔ©6Lž¯ñefõj.õÌ‚NgÆ5þ1 J“f"³g4AÐ`€:¯ÁST# NÉÎk0&û¿Ôà™~ ÏŒ}Fùü”# ÌÇ-Æ㊧Q÷œ"#¨Š PçyŠj¤È)ÙyEÆdŸ®Èw>B8*+µ<øIYÅPÇeÕC•ÕIªƒ¬ÈÎÊjDöjè)MjÇðÞox8Ž”£igc¡ÜKùдΘ1ãóë!G>*ÿcYÛ“B 7?¿1gtAÐQ€:¯£ST#MÉÎë(&ûÿZ¸Â¯¡Ä™êb¨ Pç5xŠj¤Á)Ùy ÆdÏß2Ð(}’t^‹Z¤áeOÒ¢yvTù/µ¸XJ ˜³<Ÿ\ö²ÿD!SÔïË”ÿNKEݘôµ4þ+®SVŸ…Îb¦ü—|n¸÷Kÿv¯Âp´.ÛÕ®º¡¯3€ÔMó€_A=’¼iº2 *º0
-L…ÿ1NÌÑlyÙó¨G¯‰ÿ<©EFoc§wòæPdNŠ-Z|lîwçAQÙQ†Î_[–S“V «¤]púÒô1'mî>,hðcdÜ=ü2~àиñ¢ ÞÅ_ÁÉ”pã>3sp¿Ð9¦¸¢WÄÒ²Tkk¦oâð4©ßÇ‚?QÀqâw¬3|³þÕ?ü¹ìàØÔoÖŠy HfR+ò,0…g<tjýwµ‡¬ÿíp~endstream
+L…ÿ1NÌÑlyÙó¨G¯‰ÿ<©EFoc§wòæPdNŠ-Z|lîwçAQÙQ†Î_[–S“V «¤]púÒô1'mî>,hðcdÜ=ü2~àиñ¢ ÞÅ_ÁÉ”pã>3sp¿Ð9¦¸¢WÄÒ²Tkk¦oâð4©ßÇ‚?QÀqâw¬3|³þÕ?ü¹ìàØÔoÖŠy HfR+ò,0…gäzÊyÿ]í!ëÿ•p|endstream
endobj
-1401 0 obj <<
+1392 0 obj <<
/Type /Page
-/Contents 1402 0 R
-/Resources 1400 0 R
+/Contents 1393 0 R
+/Resources 1391 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1354 0 R
-/Annots [ 1405 0 R ]
+/Annots [ 1396 0 R ]
>> endobj
-1405 0 obj <<
+1396 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [417.8476 110.3446 466.5943 122.4042]
/Subtype /Link
/A << /S /GoTo /D (sample_configuration) >>
>> endobj
-1403 0 obj <<
-/D [1401 0 R /XYZ 85.0394 794.5015 null]
+1394 0 obj <<
+/D [1392 0 R /XYZ 85.0394 794.5015 null]
>> endobj
154 0 obj <<
-/D [1401 0 R /XYZ 85.0394 769.5949 null]
+/D [1392 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1404 0 obj <<
-/D [1401 0 R /XYZ 85.0394 749.3028 null]
+1395 0 obj <<
+/D [1392 0 R /XYZ 85.0394 749.3028 null]
>> endobj
-1400 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F14 976 0 R >>
+1391 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F14 980 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1408 0 obj <<
+1399 0 obj <<
/Length 735
/Filter /FlateDecode
>>
@@ -5302,23 +5201,23 @@ stream
xÚÅWMs›0½ó+˜œà Y€a|r§m¦“IcÚKšÅrÊ Gïɯ@ ܤNÓÉL‚–§ÝÕ{om›Hü`Óõ ÀtvÍ83y!Þ}4ð´QBctHÇf
:=øncŒ­éñþì µ¥z8œMí±c…ßNgsû<<2faÓiû4ѪÍKãì™ q¨#Aø®y#â ff8.…®C©Š¤ÆÜøÚ$l½­·jÙÁê =ÖÑãУ„ÖôDqj!+Y•Œ¯¢´Ëù Ŀш8“M0¨‚>Äíàã¤"Ct…FN7=»Õ¥ÿe’¯@².ÀE~1ÎÒÉnóuorTU ` ×%5B¨¶Ë0Ö‡%z™ó›ˆ/dÖ|•ÞMt¨ÑH:è2ïO®
Ư/t-lvWo{‡ Ý‚Zr*4ÐÂ'ºzªë"ÊÖ)“ÏQšæ7 äѪX2.c?‹V¹¢€‰%Ö‘ ÛºÑr%¶õÄÓÈYQò$.åêòŠñ»M_qÌ
--k²l úðÌ´“g.û‹F8‹¯x!>÷d[z!¼§Â@ëcýè4Í„Y” ÷B ]­:^#öŠ¤d²Û:Œól¯mGµ©s€ònÝ©¥¥v™¨†ö²Q¿ÈV9¹2ÏÔ$‰ <*“kÖ(–§We£@åÚ§meg@ûšÀ-Vy[ãm™ž­úÏZ-Š4RÜõ]u® /uy抺ԟLQŒú5´ã"=6ôeD·Òü_Æo¤ð¶Áï °Êù^7½M…É»ÍÒî³óêÑéÍÀKˆÅ» À¯d÷ÿ MÞMÝ5šº°ºûj.½¨cç+öÓÎRß'Íí™Ö홌}èø"ɦ©ªsì÷:Wwñ~ë¿ÈUendstream
+-k²l úðÌ´“g.û‹F8‹¯x!>÷d[z!¼§Â@ëcýè4Í„Y” ÷B ]­:^#öŠ¤d²Û:Œól¯mGµ©s€ònÝ©¥¥v™¨†ö²Q¿ÈV9¹2ÏÔ$‰ <*“kÖ(–§We£@åÚ§meg@ûšÀ-Vy[ãm™ž­úÏZ-Š4RÜõ]u® /uy抺ԟLQŒú5´ã"=6ôeD·Òü_Æo¤ð¶Áï °Êù^7½M…É»ÍÒî³óêÑéÍÀKˆÅ» À¯d÷ÿ MÞMÝ5šº°ºûj.½¨cç+öÓÎRß'Íí™Ö홌}èø"ɦ©ªsìõ:Wwñ~ë¿ǸUendstream
endobj
-1407 0 obj <<
+1398 0 obj <<
/Type /Page
-/Contents 1408 0 R
-/Resources 1406 0 R
+/Contents 1399 0 R
+/Resources 1397 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1410 0 R
+/Parent 1354 0 R
>> endobj
-1409 0 obj <<
-/D [1407 0 R /XYZ 56.6929 794.5015 null]
+1400 0 obj <<
+/D [1398 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1406 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R >>
+1397 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1413 0 obj <<
+1403 0 obj <<
/Length 1364
/Filter /FlateDecode
>>
@@ -5328,29 +5227,29 @@ R/JýÄŠïÛ@‰2/ü@ƒrý¥—]#jŠø‹Ø­P}Õ6ÄØ´ª&?AFÉîNvDçmó1ý‚±|ò‰Iæ¸ï± ü@c";1cóª!
¼¼Ý>y¤üÉÑ~¿3«·°Ádg ²¬Fžl—d¤l[màâ'ËúQv­ÎÚŽ
غ–›ÅØ‹cQRtù†p9³e±•cg<îgþω¶’8/À¸ÃC/cߤú|4ºƒ…Ë{¸·XRÖxB[bµ© úü8ž£ AmÚ®G2š¯‡ªÄí[3+û¾jÖô1ìh\-àâ„õ'r“`‚è‡nÁÓ¹4&0+èžÉ$˜€Äɘ8Õ ð®ú½qÓpŸÝ¼¾òˆ¼ém°Rå]u‹6ÍóhÖㆡG,=k.7C'È02‘SaVÞ˺>álDo1!(bú *˜ˆ‚¸%Ö6EU"·-N7F_)€{j+•ªÉë¡ <L·ÁN/ju‹¥Rš;iýÚ#´ñ·Ü›E¢)ˆÔyqU­Ó ¼ûªßEIOb¸ùÂíG>H$¸ZmEWÕ{úTÃnu‡Š’˜JXó5TZ`¼‘&”ECނωC.·Û¡©rI(‘ Æ2Obƒ™vTPGÐÊƃ^O•úp±ê«r¯Ÿ O­'®(e&½úª€=Yæ΄$lg% .À•ñù[}
ÑKL æ—Ä£´ïéãÓ©
-ñ¦lÌ.Ù´C]çÚ¦§‚7nœ¿\ê}Ÿ¤fß'Ùƒzä’£4>U¹„J9$iè‰}óÆ5 ÃÆž9ò'+eÆF z{ãq’W°»Š8ƒê&' €n¿ëÛu'vre‚íÙD¾-Dv¸ºüò“ôá &^¦¾ýµ°ØKý,B˜yvêùáíú­ëÿ¨6Eendstream
+ñ¦lÌ.Ù´C]çÚ¦§‚7nœ¿\ê}Ÿ¤fß'Ùƒzä’£4>U¹„J9$iè‰}óÆ5 ÃÆž9ò'+eÆF z{ãq’W°»Š8ƒê&' €n¿ëÛu'vre‚íÙD¾-Dv¸ºüò“ôá &^¦¾ýµ°ØKý,B˜yrêùáíú­ëÿP6Cendstream
endobj
-1412 0 obj <<
+1402 0 obj <<
/Type /Page
-/Contents 1413 0 R
-/Resources 1411 0 R
+/Contents 1403 0 R
+/Resources 1401 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1410 0 R
+/Parent 1354 0 R
>> endobj
-1414 0 obj <<
-/D [1412 0 R /XYZ 85.0394 794.5015 null]
+1404 0 obj <<
+/D [1402 0 R /XYZ 85.0394 794.5015 null]
>> endobj
158 0 obj <<
-/D [1412 0 R /XYZ 85.0394 223.4026 null]
+/D [1402 0 R /XYZ 85.0394 223.4026 null]
>> endobj
-1415 0 obj <<
-/D [1412 0 R /XYZ 85.0394 185.2496 null]
+1405 0 obj <<
+/D [1402 0 R /XYZ 85.0394 185.2496 null]
>> endobj
-1411 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F21 950 0 R >>
+1401 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1418 0 obj <<
+1408 0 obj <<
/Length 2265
/Filter /FlateDecode
>>
@@ -5360,53 +5259,53 @@ xÚ¥Y[wÛ6~÷¯ÐéK©“%
Nƽ“š2:Š`
„®ìNgx8»u+–ª‹8¶3й=¨©¶Õ;w"ßU„¨Ø~ŠŽRâ×êçSîˆ(•AHÅ
€u¾}¤1¡
-/ ‚3ÉÝýsÑÿdiÙendstream
+/À“3ÉÝýsÑÿeKiàendstream
endobj
-1417 0 obj <<
+1407 0 obj <<
/Type /Page
-/Contents 1418 0 R
-/Resources 1416 0 R
+/Contents 1408 0 R
+/Resources 1406 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1410 0 R
+/Parent 1415 0 R
>> endobj
-1419 0 obj <<
-/D [1417 0 R /XYZ 56.6929 794.5015 null]
+1409 0 obj <<
+/D [1407 0 R /XYZ 56.6929 794.5015 null]
>> endobj
162 0 obj <<
-/D [1417 0 R /XYZ 56.6929 726.8027 null]
+/D [1407 0 R /XYZ 56.6929 726.8027 null]
>> endobj
-1420 0 obj <<
-/D [1417 0 R /XYZ 56.6929 697.6944 null]
+1410 0 obj <<
+/D [1407 0 R /XYZ 56.6929 697.6944 null]
>> endobj
166 0 obj <<
-/D [1417 0 R /XYZ 56.6929 648.8841 null]
+/D [1407 0 R /XYZ 56.6929 648.8841 null]
>> endobj
-1421 0 obj <<
-/D [1417 0 R /XYZ 56.6929 624.769 null]
+1411 0 obj <<
+/D [1407 0 R /XYZ 56.6929 624.769 null]
>> endobj
170 0 obj <<
-/D [1417 0 R /XYZ 56.6929 472.4047 null]
+/D [1407 0 R /XYZ 56.6929 472.4047 null]
>> endobj
-1422 0 obj <<
-/D [1417 0 R /XYZ 56.6929 448.2896 null]
+1412 0 obj <<
+/D [1407 0 R /XYZ 56.6929 448.2896 null]
>> endobj
174 0 obj <<
-/D [1417 0 R /XYZ 56.6929 356.0575 null]
+/D [1407 0 R /XYZ 56.6929 356.0575 null]
>> endobj
-1423 0 obj <<
-/D [1417 0 R /XYZ 56.6929 324.2991 null]
+1413 0 obj <<
+/D [1407 0 R /XYZ 56.6929 324.2991 null]
>> endobj
178 0 obj <<
-/D [1417 0 R /XYZ 56.6929 275.4888 null]
+/D [1407 0 R /XYZ 56.6929 275.4888 null]
>> endobj
-1424 0 obj <<
-/D [1417 0 R /XYZ 56.6929 246.3805 null]
+1414 0 obj <<
+/D [1407 0 R /XYZ 56.6929 246.3805 null]
>> endobj
-1416 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F39 1173 0 R /F48 1253 0 R >>
+1406 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F39 1178 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1427 0 obj <<
+1418 0 obj <<
/Length 2935
/Filter /FlateDecode
>>
@@ -5425,55 +5324,55 @@ u?ðÉÉ“L†‡ÚÙÈ(ÃÃѾaÄG8|3ô{.ºc¢xzá¡^>A_¯¸Á»{Ê=˜oj$¼›
Ò*­†'Qg Höî‰kÌŸ­òZ–ç’ìäò¥`E˜ C;^PttÝÏ5-[k`N.0§Å`¸ã%’—!‘¦
7[døÙ/ÏŽl©\˜G¨Ð½7Þf«ù[Hï4?ÝW‹÷Õf³¥ëèSª¯¨÷•g±¥§Q:xçÙ: ú}‚XÒäfàªâ‹ì]pÇ4 8A„òípc´Œ®W±é×íþ¹³h„k
ò-?ÎCño _iòvËõT‚du¹|Hyž¿ª1¾ð¤ Ká$î´ô‘…»‚H½R”hcð|æB±­=„” Wào8¦Í9}‚Aìie:l5œÑJ"eò£Ðú™›g 1O•Ñ/žÝ©tôÎç'ù‘‘ÉŽŒLîo*ÔØ»ù¤eø{”Ljeñðflðe]åÉø
-Ÿˆ_–œœž/Ëâ÷âñÌCysI/6ÝÑW‰}wüɶ¬6Uï?J„@>Žù콟㿇­ ™+Šü¥n÷ì UôÜ¿ ,$ÐÖN½G¨!Mÿ¿ÿypø«…K#›eÏ<lÀýŠ2“§ž)„Òèc·¿(œ²þ?G°±endstream
+Ÿˆ_–œœž/Ëâ÷âñÌCysI/6ÝÑW‰}wüɶ¬6Uï?J„@>Žù콟㿇­ ™+Šü¥n÷ì UôÜ¿ ,$ÐÖN½G¨!Mÿ¿ÿypø«…K#›eÏ<lÀýŠ2“§ž)„RçÇœQ8eýz°¸endstream
endobj
-1426 0 obj <<
+1417 0 obj <<
/Type /Page
-/Contents 1427 0 R
-/Resources 1425 0 R
+/Contents 1418 0 R
+/Resources 1416 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1410 0 R
-/Annots [ 1431 0 R ]
+/Parent 1415 0 R
+/Annots [ 1422 0 R ]
>> endobj
-1431 0 obj <<
+1422 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [101.3082 379.428 169.9802 391.3282]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_policies) >>
>> endobj
-1428 0 obj <<
-/D [1426 0 R /XYZ 85.0394 794.5015 null]
+1419 0 obj <<
+/D [1417 0 R /XYZ 85.0394 794.5015 null]
>> endobj
182 0 obj <<
-/D [1426 0 R /XYZ 85.0394 769.5949 null]
+/D [1417 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1429 0 obj <<
-/D [1426 0 R /XYZ 85.0394 749.2913 null]
+1420 0 obj <<
+/D [1417 0 R /XYZ 85.0394 749.2913 null]
>> endobj
186 0 obj <<
-/D [1426 0 R /XYZ 85.0394 546.785 null]
+/D [1417 0 R /XYZ 85.0394 546.785 null]
>> endobj
-1430 0 obj <<
-/D [1426 0 R /XYZ 85.0394 519.0032 null]
+1421 0 obj <<
+/D [1417 0 R /XYZ 85.0394 519.0032 null]
>> endobj
190 0 obj <<
-/D [1426 0 R /XYZ 85.0394 364.477 null]
+/D [1417 0 R /XYZ 85.0394 364.477 null]
>> endobj
-1432 0 obj <<
-/D [1426 0 R /XYZ 85.0394 339.5007 null]
+1423 0 obj <<
+/D [1417 0 R /XYZ 85.0394 339.5007 null]
>> endobj
194 0 obj <<
-/D [1426 0 R /XYZ 85.0394 175.6792 null]
+/D [1417 0 R /XYZ 85.0394 175.6792 null]
>> endobj
-1433 0 obj <<
-/D [1426 0 R /XYZ 85.0394 143.0963 null]
+1424 0 obj <<
+/D [1417 0 R /XYZ 85.0394 143.0963 null]
>> endobj
-1425 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F39 1173 0 R /F14 976 0 R >>
+1416 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F39 1178 0 R /F14 980 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1436 0 obj <<
+1427 0 obj <<
/Length 3227
/Filter /FlateDecode
>>
@@ -5490,41 +5389,41 @@ vDw’§Eá£ÐÕ&â,
Þƒv‹è—•ýXªÐãgÛ9üø½.ôV©\çæòK¡7= Ü£áÌ(3"”S¿üýÝÍúƒ·’…w†/h;
ü&„!èmù¤ãÈñÂøÀbÔYA‰ñN@ÞÊ+9ô»ßÛ®¶|
/\øŽó8«úÁjÜ(,ÿñÃ=½•8 «þXÒЙv¦òsð \}6 óiÁ@È»Ÿ¾û¥ü%Èã;VÅ —A.T¥föµ4ó$N井¯™QqfÂWCd
-<Å^Ÿ"ßX=³°ŸDáS¢“+(}€¦þº7ILç©ð¯¿`yZÐ÷+/a´~¨EJG:š3&<¯§væa´üP„ÁNr9M|zvÜÎî!}Ì3-%Üeàñ³3×>e~æfC‚™Šd¹Õt0øè?ü¶ÏŸ,|(þ̯;”Žñ'+¿Å!}þ¿ùqúÉKšÇʹþ£™›85° å>µÉg”ûŸˆ<'ý¿w€=endstream
+<Å^Ÿ"ßX=³°ŸDáS¢“+(}€¦þº7ILç©ð¯¿`yZÐ÷+/a´~¨EJG:š3&<¯§væa´üP„ÁNr9M|zvÜÎî!}Ì3-%Üeàñ³3×>e~æfC‚™Šd¹Õt0øè?ü¶ÏŸ,|(þ̯;”Žñ'+¿Å!}þ¿ùqúÉKšÇʹþ£™›85° å>µ‰g”ûŸˆ<'ý¿w(=
endobj
-1435 0 obj <<
+1426 0 obj <<
/Type /Page
-/Contents 1436 0 R
-/Resources 1434 0 R
+/Contents 1427 0 R
+/Resources 1425 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1410 0 R
+/Parent 1415 0 R
>> endobj
-1437 0 obj <<
-/D [1435 0 R /XYZ 56.6929 794.5015 null]
+1428 0 obj <<
+/D [1426 0 R /XYZ 56.6929 794.5015 null]
>> endobj
198 0 obj <<
-/D [1435 0 R /XYZ 56.6929 678.9507 null]
+/D [1426 0 R /XYZ 56.6929 678.9507 null]
>> endobj
-1438 0 obj <<
-/D [1435 0 R /XYZ 56.6929 644.5195 null]
+1429 0 obj <<
+/D [1426 0 R /XYZ 56.6929 644.5195 null]
>> endobj
202 0 obj <<
-/D [1435 0 R /XYZ 56.6929 514.5361 null]
+/D [1426 0 R /XYZ 56.6929 514.5361 null]
>> endobj
-1439 0 obj <<
-/D [1435 0 R /XYZ 56.6929 481.3387 null]
+1430 0 obj <<
+/D [1426 0 R /XYZ 56.6929 481.3387 null]
>> endobj
206 0 obj <<
-/D [1435 0 R /XYZ 56.6929 279.5586 null]
+/D [1426 0 R /XYZ 56.6929 279.5586 null]
>> endobj
-1440 0 obj <<
-/D [1435 0 R /XYZ 56.6929 251.1623 null]
+1431 0 obj <<
+/D [1426 0 R /XYZ 56.6929 251.1623 null]
>> endobj
-1434 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F39 1173 0 R /F41 1233 0 R /F48 1253 0 R >>
+1425 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F39 1178 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1443 0 obj <<
+1434 0 obj <<
/Length 3255
/Filter /FlateDecode
>>
@@ -5539,35 +5438,35 @@ xÚ¥]sã¶ñݿ“éLèö„
=º§u|ü¤ 3ìt¹§v½g¸”Óþ=!ãö"È‘ÞæK<‹Ã—xöôÃÐS_hŒ•HÙäMõóÅN·ô\–s7ôîSmìÃÄ»êDºvZl\Û8Ájô:笉oùìP ³2ñ
dlVÕïóU9†ãÂ3ê
¢èêuÏ$º¾Zrôô“‹‘ÛÚ–GÁbB„½žþ0séÄaeø¨(üTŽ=þ(W>€²Úí”hKæ½ý·VvU_º… /Ú21NÅÝP¶fèi²‘æŶ‹U O~šœXŠ0;탆þ[Œ˜É±•%…ŠŽÁ8zjÛtÿ¯=&JEÊ“¨ò…ÂFXŠiºH#M¬?Ú '›ÑÄ­-ºí7üdžض³ôÌvÆ;‚á{¨©<- >Ÿ⪩†*¯öÂ8¥ž<>{÷ñ‡è±û×ßTs½þúO×ß²ûîû§vírHû››õ7zUß.¿Êïïžû‘Žþ÷gæO?Ò· ÿï¿ÿUBÐYÎÿ{Hc54©#
-™êSÊý‘ÎIÿݳÊZendstream
+™ªSÊý‘ÎIÿÝ[ÊXendstream
endobj
-1442 0 obj <<
+1433 0 obj <<
/Type /Page
-/Contents 1443 0 R
-/Resources 1441 0 R
+/Contents 1434 0 R
+/Resources 1432 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1410 0 R
+/Parent 1415 0 R
>> endobj
-1444 0 obj <<
-/D [1442 0 R /XYZ 85.0394 794.5015 null]
+1435 0 obj <<
+/D [1433 0 R /XYZ 85.0394 794.5015 null]
>> endobj
210 0 obj <<
-/D [1442 0 R /XYZ 85.0394 671.4386 null]
+/D [1433 0 R /XYZ 85.0394 671.4386 null]
>> endobj
-1445 0 obj <<
-/D [1442 0 R /XYZ 85.0394 641.1061 null]
+1436 0 obj <<
+/D [1433 0 R /XYZ 85.0394 641.1061 null]
>> endobj
214 0 obj <<
-/D [1442 0 R /XYZ 85.0394 444.8166 null]
+/D [1433 0 R /XYZ 85.0394 444.8166 null]
>> endobj
-1446 0 obj <<
-/D [1442 0 R /XYZ 85.0394 417.1342 null]
+1437 0 obj <<
+/D [1433 0 R /XYZ 85.0394 417.1342 null]
>> endobj
-1441 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F48 1253 0 R >>
+1432 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1449 0 obj <<
+1440 0 obj <<
/Length 1913
/Filter /FlateDecode
>>
@@ -5577,76 +5476,75 @@ xÚ­W[“ªH~ï_aÌËê:B](.qbPlñ.
5kó}p‡Ö¡š¤ølV…×Âh,:ž7Úëp[·Úq¯½Q %s½†ÂŽÃÞ¼ª`=Aí,ÔŽ'›
)ì Dš&›ÉèhvTGiél'#Ó9šEÌJ{œxŠBФ›,=ÇÑ;ÆŽozÛÂ>˜ž4H¼6ÞŠÖo‹þòYbc"ò¥ß~½Úò‹ö·«åßÝj¹4Ã0…÷lx<:«šZËàQp©süV„øÁšXoßï³/ìµB»9ê¢Qò½¼8þ¿šE!b$‰pų(*P¥@­+—T×cù”ø¬êû$/
8îcbE裋ё•G”
-iÇ!€D.÷upsõÎ)1„§#.e¤#0l)ð;ÇÆ –uú•›_Cu T„b ¹3¥mj€“$œ3½¬ï®~Á}ƒmïPI‰¨C¥ŸžŠk¯šïNñèe §ÊEíC‘†FÌG§Ám>©!A*GëÛ¯X>ym²sûw›ªn¤À¿Y9ÕŸìþ1ßq*”óÙ$'YñCSRA¤|Ë+Úƒ1GÊí0ßß[ôFà@ùä¯Î]ÓGί_@ÄQtÊ·^à<<P…”£ õ_Œ~9Ž—$Jbé%~.«nùK$ž¦Õ÷çÒÏåüK¢òôò#Òk¢þøâäéý„€tw|æ9·ø"ñãÁy[¿Öõíû=ú›·;ÿ°Âû‚žL\"m>NTà=àts…ÿ
+iÇ!€D.÷upsõÎ)1„§#.e¤#0l)ð;ÇÆ –uú•›_Cu T„b ¹3¥mj€“$œ3½¬ï®~Á}ƒmïPI‰¨C¥ŸžŠk¯šïNñàe §ÊEíC‘†FÌG§Ám>©!A*GëÛ¯X>ym²sûw›ªn¤À¿Y9ÕŸìþ1ßq*”óÙ$'YñCSRA¤|Ë+Úƒ1GÊí0ßß[ôFà@ùä¯Î]ÓGί_@ÄQtÊ·^à<<P…”£ õ_Œ~9Ž—$Jbé%~.«nùK$ž¦Õ÷çÒÏåüK¢òôò#Òk¢þøâäéý„€tw|æ9·ø"ñãÁy[¿Öõíû=ú›·;ÿ°Âû‚žL\"m>NTà=àts…ÿ
endobj
-1448 0 obj <<
+1439 0 obj <<
/Type /Page
-/Contents 1449 0 R
-/Resources 1447 0 R
+/Contents 1440 0 R
+/Resources 1438 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1451 0 R
+/Parent 1415 0 R
>> endobj
-1450 0 obj <<
-/D [1448 0 R /XYZ 56.6929 794.5015 null]
+1441 0 obj <<
+/D [1439 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1447 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F62 1379 0 R >>
-/XObject << /Im2 1368 0 R >>
+1438 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F60 1366 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1454 0 obj <<
-/Length 2465
+1444 0 obj <<
+/Length 2466
/Filter /FlateDecode
>>
stream
xÚ¥kÛ6òûþ
¡Àò¡VDQÔ£p7›t›ë¦Íº=¤M?heÚÖU–\KÞ­s¸ÿÞÎP¢¥w@°Àj8g†ó"-¼þ„—© ”yì¥y¨P(¯Ü]…Þæ^] ¦™[¢¹KõõòêÙK™zy'Qâ-ׯ,³LxËÕ/þõ7‹ï—7ogóH…~Ìæ* ýÅ‹ŸfBqw}ó‚¦^ÜÝðòf1KcùãÛ›û™LR«r^D÷7×_òŠww‹ïn¯iðó›»›{žXÜ1ÏÅË™Èü7ßGK{ûêîöîÕì×å·W7ËAM×"”¨ãïW¿üz+°È·Wa óLyO0‘ç‘·»Š• T,¥ÅÔW÷W? Y³tÊ´JfÊ¢t¶Q4e[•‰Œ¤±mWm½b­;]¨®¦ñ‡¶ÑO۪ܸ.ªš ¾¥ïcQW«¢×̦hV¼¨ª™’¸öÇCÃöƒãTÊÿé%ZuqûÏs~ý–(ëJ7}€f]ç" D–§Fð·ºÛ·MgäËbWœ`é2EÜ
-„YT»ã•ôAžçST¬Ç”ekÖ²}_¨zöÀQVë­ÛöX³§m‹Gv™­›Ko>§
-–Ë¢t&BÿØ™Qâ—mó> #”§ ÅSÕoiÖh‰(âd‘³¦GQ‘à G($NUM+«¶)êúDóµ^3ƒc3Ÿ
-JÒJ¥”‰‹j«!á( ê÷0‹BÿD0Í«õ‰³"ÔÚǪ ŠÁ¸JÙê Üó³swPšŸá?Ic8Ïö°êP«/'³&Mš±W
-ë‹ï£(¶Å×DXbO?´¦u±þ
-^!õ™l¹a°iY+×j£6χؙlN(…)¬^U%„+f˜0£Äh[‰F“ãmƒ{C6‰eä¿Uø=ª
->!­W"Êš°‰=æ:à>Ø Mgs&Š„6gIiÌÀ˜ØÚCèÛ‹bŠCÇäŽþSnDh*.«jœ§Ðt'Òs+úgv Ø‘¨<ɽùx;ø¼.æ¼ñP"kt$<2N"÷.'9ô‚, —,8Þ0¼¼dšbW•|ÉÂ+Åå=aqì[ha-Í=T ìÇ6ƦD8Ú6T EÑ¢£B…a åàF€7
-BB'TÅÄû÷‡ZÓ¬ñ@À–Û¢Ù0® ÔÊʃTcavlr ׳¶ØåhkÂFSœ|(ÊßµZ„wÒôŸòÛ©Ëߊ
-îpc4ô ú@0–O‚Z#yé+`À¦n/ ÛK膓<·‡>Î붫Q?ôæÜ?aw>¦§ggÜôù©@ŠŒÊæ5¸JIMUdõ„sòò³¬¸Ä“}
-cT‘öí/.v“;8¢[#‰'¤Ñum:ùÄ_4SÞ5ö¦É¸|~ààu“®˜;¹Þ­/½jª¾*˜Mǽ!-¢¡ÔÝ_¶4éÐÐD¶?u[Òág
-&‚©~þïfirÜØ Y-ÜdÅ*òkHè´æSÙd2(þFq×t,ì„›ýƒHú¾&@¿O=€‚yð×…‰ŸÂÁŸý#Æx«
+„YT»ã•ôAžçST¬Ç”ekÖ²}_¨zöÀQVë­ÛöX³§m‹Gv™­›Ko>§
+‰SUÓÃʪmŠº>Ñ|­×ÌàØ̧‚’4‚R)eâߢÚjH8
+¨:Â=Ì¢Ð?LE`ój}⬵ö±*ˆb0®R¶:(÷üìÜ”ægøOÒγ=¬:ÔêËɬIG“fì
+«WU áŠ&Ì(±ÚVb„Ñä8GÛàÞMbùïC~*@OÔˆÏ }}‹ý6By‚OH땈²&Âl"D¹¸vCSçÙœ‰"¡ÍYR30¦¶öúöâć˜âÐ1¹£ÿ”[
+°i…ÛKÂöºá$Ïía‚óºmàjÔ½9÷OØéÄéÙ7}~*"£²yF'®RRSY=á\'¤¼¼€
+¥ÜdÆl™]Ãtè9¶o0ª$#g{1ÎíÅpÝè7ݸùé¯<—ú;rÚ9h‹'Lž$@ µ†N ¥ƒöíÝ,|ãznÒZ <ßìN|ï‹r¼ÿoõc.^…@ŠùŠŸ[Jè¯Oæ!ÐfÚíuY¡Qôj`ó±—É0â,>sî
+>&w›ÓžW튮ׇÉf•rÑ|߂ÞˆºnË¢~>u¹[W5sü‚3Û3G þbr3¶;Ûü“Œxñ|R«ÿ>Ÿ°,“¦çf»5U]òí®Û¯ï_†Ëil§¤ÿ3MŘ¥_õçæ ÍûP Šâ
+fÓqoH‹¨A(u÷—-M:44‘íOÝ–tøÙ€‚‰`ªŸÿ»…Yš76CV 7Y±Šü:mÅ°éT6™ Š¿QÜ5 ;áfÿ ’¾¯ ðïS `üuaâg…p0ägÿˆ1Þ*@%™eÑôï2L@a8-
+u‰ä¥äï‹þ'µÐº¥endstream
endobj
-1453 0 obj <<
+1443 0 obj <<
/Type /Page
-/Contents 1454 0 R
-/Resources 1452 0 R
+/Contents 1444 0 R
+/Resources 1442 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1451 0 R
+/Parent 1415 0 R
>> endobj
-1455 0 obj <<
-/D [1453 0 R /XYZ 85.0394 794.5015 null]
+1445 0 obj <<
+/D [1443 0 R /XYZ 85.0394 794.5015 null]
>> endobj
218 0 obj <<
-/D [1453 0 R /XYZ 85.0394 486.5796 null]
+/D [1443 0 R /XYZ 85.0394 486.5796 null]
>> endobj
-1459 0 obj <<
-/D [1453 0 R /XYZ 85.0394 454.3582 null]
+1449 0 obj <<
+/D [1443 0 R /XYZ 85.0394 454.3582 null]
>> endobj
222 0 obj <<
-/D [1453 0 R /XYZ 85.0394 412.0822 null]
+/D [1443 0 R /XYZ 85.0394 412.0822 null]
>> endobj
-1460 0 obj <<
-/D [1453 0 R /XYZ 85.0394 381.7503 null]
+1450 0 obj <<
+/D [1443 0 R /XYZ 85.0394 381.7503 null]
>> endobj
226 0 obj <<
-/D [1453 0 R /XYZ 85.0394 150.1125 null]
+/D [1443 0 R /XYZ 85.0394 150.1125 null]
>> endobj
-1461 0 obj <<
-/D [1453 0 R /XYZ 85.0394 122.4306 null]
+1451 0 obj <<
+/D [1443 0 R /XYZ 85.0394 122.4306 null]
>> endobj
-1452 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F65 1458 0 R /F21 950 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+1442 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F65 1448 0 R /F21 954 0 R /F41 1238 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1464 0 obj <<
-/Length 3336
+1454 0 obj <<
+/Length 3337
/Filter /FlateDecode
>>
stream
@@ -5660,44 +5558,44 @@ xÚÝksÛ6ò»…¾ÜTžV4ð…ë]gÇqÝ$ÎÃr’¾>P"eñB‘²IÙq~ýíb|‰I;Ó~¸¹É8\.–‹Åû„ÄÄ…bâN ¥ž„
š¦t—þpö®%@!ŽÝ¦/jA( âJwŠ54T ‰P¾@uÝ“Äx`Œ–m¢jÚ: lM.çXɆ¶‚ö…}ÛýZÓÍ­Ëáb)§¿febíJQ/ 7%"
$ˆDÑ2ˆ¨"THz\ØýK(;(§…Ál}8Z’aÃÖÓ¶Úpƒ–.€ÒXðÜ+CQ<€EÓéÔè¦ …xÓˆƒç6NRû1VÎÈŸV{£ dXH!9Ÿ„á¦NhQF@OC÷åGÒr êÒöf#f‹±ž-E ÐÕŠ‹!¬ƒ¬)U๊ïî2S¦Àp¹Ç—§ýé“GNÒu¼Ïku›Ì@ØÌ@fÒÔHNpõ‘8Ûª
ç3úd, ù«À¥'8¿=ìÇ÷cÅÕó
-|*=„CÎcm "Ƚ›™û€™˜š¤Ý&íBjsÙ¾ó2Nð(Í |¥w÷q>À<åxl²2êsîH“„(³køº?eÛý–p¦4…§ôhŽÕWzàµãk!û+_Œ×ÚAØO.LG˜…‘ ÓÆÜ5yŽUZ媑ãI%ÿ(§Džb*Û€6{O`ã¦È øÝÊÝÕàÊÁ±9a|¡29è8K—µ…'¼ì襢úÙ±˜’uÒ· }Q—§wsák…v<²NÁ‚ ÎÓÄt‚D˧¥c¿ Ð’1ͽˆ²í¥ÙhÅÜ»1íªLM«‡Ê~ã!`„TíE㹨¡#uãÈù¸
+|*=„CÎcm "Ƚ›™û€™˜š¤Ý&íBjsÙ¾ó2Nð(Í |¥w÷q>À<åxl²2êsîH“„(³køº?eÛý–p¦4…§ôhŽÕWzàµãk!û+_Œ×ÚAØO.LG˜…‘ ÓÆÜ5yŽUZ媑ãI%ÿ(§Džb*Û€6{O`ã¦È øÝÊÝÕàÊÁ±9a|¡29è8K—µ…'¼ì襢úÙ±˜’uÒ· }Q—§wsák…v<²NÁ‚ ÎÓÄt‚D˧¥c¿ Ð’1ͽˆ²í¥ÙhÅÜ»1íªLM«‡Ê~ã!`„TíE㹨¡#uãÈù¸
endobj
-1463 0 obj <<
+1453 0 obj <<
/Type /Page
-/Contents 1464 0 R
-/Resources 1462 0 R
+/Contents 1454 0 R
+/Resources 1452 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1451 0 R
-/Annots [ 1467 0 R 1468 0 R ]
+/Parent 1462 0 R
+/Annots [ 1460 0 R 1461 0 R ]
>> endobj
-1467 0 obj <<
+1460 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [411.5778 302.2913 489.9929 314.351]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-keygen) >>
>> endobj
-1468 0 obj <<
+1461 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [55.6967 291.0037 134.1116 302.3958]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-settime) >>
>> endobj
-1465 0 obj <<
-/D [1463 0 R /XYZ 56.6929 794.5015 null]
+1455 0 obj <<
+/D [1453 0 R /XYZ 56.6929 794.5015 null]
>> endobj
230 0 obj <<
-/D [1463 0 R /XYZ 56.6929 436.3593 null]
+/D [1453 0 R /XYZ 56.6929 436.3593 null]
>> endobj
-1466 0 obj <<
-/D [1463 0 R /XYZ 56.6929 405.7905 null]
+1456 0 obj <<
+/D [1453 0 R /XYZ 56.6929 405.7905 null]
>> endobj
-1462 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F11 1353 0 R >>
+1452 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1473 0 obj <<
+1467 0 obj <<
/Length 2453
/Filter /FlateDecode
>>
@@ -5710,47 +5608,47 @@ uÝ#ÁÕ=.†vîaAœ‚’a
JzÊ$ðžê³‹Ÿ†#iË×dpʽ.)_Ä‘b•}°F‹ü4ŽŸ(Iúøó„pÐ=I¥f,Œ¥a¾måínfî;q©©Ĕ綇èú*IÔØ@fJÝRú:HÆ:t¨%õrW`æ
¹¡kÄ®õm)mikÝ @lTÅoJ¥N1Ê)F9Å`ízG#D 늵âjrŒìßÑå·
û½·##Ö9LÛ„Ô—ÖS5ù~,ˆ>"†âÔ”ÂMß+‡ª{B’[jœäeŒñ~‰’Š‹w_òÌr #d²bûDôµÒÐCDk:õêLž}Íé]¦£¦ª÷8 ^1]qô>òâ±WéxÛ#—b“ѸAD
-ªvpùŽ2þû‰
+ªvpùŽ2þû‰
endobj
-1472 0 obj <<
+1466 0 obj <<
/Type /Page
-/Contents 1473 0 R
-/Resources 1471 0 R
+/Contents 1467 0 R
+/Resources 1465 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1451 0 R
+/Parent 1462 0 R
>> endobj
-1474 0 obj <<
-/D [1472 0 R /XYZ 85.0394 794.5015 null]
+1468 0 obj <<
+/D [1466 0 R /XYZ 85.0394 794.5015 null]
>> endobj
234 0 obj <<
-/D [1472 0 R /XYZ 85.0394 769.5949 null]
+/D [1466 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1475 0 obj <<
-/D [1472 0 R /XYZ 85.0394 749.2278 null]
+1469 0 obj <<
+/D [1466 0 R /XYZ 85.0394 749.2278 null]
>> endobj
238 0 obj <<
-/D [1472 0 R /XYZ 85.0394 398.6362 null]
+/D [1466 0 R /XYZ 85.0394 398.6362 null]
>> endobj
-1476 0 obj <<
-/D [1472 0 R /XYZ 85.0394 370.8109 null]
+1470 0 obj <<
+/D [1466 0 R /XYZ 85.0394 370.8109 null]
>> endobj
242 0 obj <<
-/D [1472 0 R /XYZ 85.0394 321.6035 null]
+/D [1466 0 R /XYZ 85.0394 321.6035 null]
>> endobj
-1477 0 obj <<
-/D [1472 0 R /XYZ 85.0394 293.6228 null]
+1471 0 obj <<
+/D [1466 0 R /XYZ 85.0394 293.6228 null]
>> endobj
246 0 obj <<
-/D [1472 0 R /XYZ 85.0394 120.47 null]
+/D [1466 0 R /XYZ 85.0394 120.47 null]
>> endobj
-1478 0 obj <<
-/D [1472 0 R /XYZ 85.0394 92.4893 null]
+1472 0 obj <<
+/D [1466 0 R /XYZ 85.0394 92.4893 null]
>> endobj
-1471 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1465 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1481 0 obj <<
+1475 0 obj <<
/Length 2247
/Filter /FlateDecode
>>
@@ -5764,59 +5662,59 @@ BŸM >pxJPÄS<±)í—GÒ¼02;éÁlˆ{:fimÓ?гS’µÓønš€¦!Þf—–£‚×<|È‹Üλ -L–a–iÅ™£
çÖ–¦ìèã“¢Õðå”Wœ"Mâ½´ ƒöª,
æ¾`•‹š)}š#¶jΞÀ­yÄ©hû¡U‘y·f»…0Þ†,DzÃX'£²]ÞÈÑAD¡@uˆql×Hv§Çü+ÖF-â:P€kí¿מ§Xë‹Í–¶Byúâ0kÏÓ®,àì°+Æè@–EI*.’ÞaªrcgÍ
눔$À‚’`Q—‹o$„R±#‡òXóvÙfSsøÎë¦Ãêñ㎞X úNÏ9¯Fæ‚uú^ƒ7ªB FõÌ*ŽI¸fs;¢ îìQÄ (-4Ôj(ä^ß©ïí­ñxapoèì‹]Íï¡OcOQâô#PäXÒu
-¶áãÍúã§õHz]Àp2D«ö…ïKw<, ¿@hñ#UJ§äØ 9n E)»…ý¼ËcH,4}¾Ù\Œœ,i¯7Ýœ'@ñõƒ;©Æò2z±åg¼X£—ì3xʶmÑ#^KB‘¨¸[êÇ|uKiç³ÖS¨Ù¾¦àÃóêŽ`ðEóY¦ã+±cÂÅ7Ö#‡-`ÒVg€;Ñi}B'h-E¤UØOåƒùJgÙs†öÔËÎPR‹H*ý=wø°?:od%½J*V?9ˆ¸v_à÷H÷ö2°I’M$ƒUYö¥Ú¦ÈÌ“ÉNéžøíU–â#݇Aß—¸©)~ØÖT°ó™©²½%$‰} ¨ˆ‹QÄï}+EÛÊÙ=[ÊVgn àV]%ËÚÕHÙ[ Šº´€®ñéÇÐñÒÿ:øçÄÈ¿²)=û?ö¿#Ž;qìÿ½áE±ðcPÂF¡ý^<°ÜýY24ý–æÆendstream
+¶áãÍúã§õHz]Àp2D«ö…ïKw<, ¿@hñ#UJ§äØ 9n E)»…ý¼ËcH,4}¾Ù\Œœ,i¯7Ýœ'@ñõƒ;©Æò2z±åg¼X£—ì3xʶmÑ#^KB‘¨¸[êÇ|uKiç³ÖS¨Ù¾¦àÃóêŽ`ðEóY¦ã+±cÂÅ7Ö#‡-`ÒVg€;Ñi}B'h-E¤UØOåƒùJgÙs†öÔËÎPR‹H*ý=wø°?:od%½J*V?9ˆ¸v_à÷H÷ö2°I’M$ƒUYö¥Ú¦ÈÌ“ÉNéžøíU–â#݇Aß—¸©)~ØÖT°ó™©²½%$‰} ¨ˆ‹QÄï}+EÛÊÙ=[ÊVgn àV]%ËÚÕHÙ[ Šº´€®ñéÇÐñÒÿ:øçÄÈ¿²)=û?ö¿#Ž;qìÿ½áE±ðcPÂF¡ý^8°ÜýY24ý>æÄendstream
endobj
-1480 0 obj <<
+1474 0 obj <<
/Type /Page
-/Contents 1481 0 R
-/Resources 1479 0 R
+/Contents 1475 0 R
+/Resources 1473 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1451 0 R
+/Parent 1462 0 R
>> endobj
-1482 0 obj <<
-/D [1480 0 R /XYZ 56.6929 794.5015 null]
+1476 0 obj <<
+/D [1474 0 R /XYZ 56.6929 794.5015 null]
>> endobj
250 0 obj <<
-/D [1480 0 R /XYZ 56.6929 687.5192 null]
+/D [1474 0 R /XYZ 56.6929 687.5192 null]
>> endobj
-1483 0 obj <<
-/D [1480 0 R /XYZ 56.6929 659.2346 null]
+1477 0 obj <<
+/D [1474 0 R /XYZ 56.6929 659.2346 null]
>> endobj
254 0 obj <<
-/D [1480 0 R /XYZ 56.6929 590.6286 null]
+/D [1474 0 R /XYZ 56.6929 590.6286 null]
>> endobj
-1484 0 obj <<
-/D [1480 0 R /XYZ 56.6929 559.3791 null]
+1478 0 obj <<
+/D [1474 0 R /XYZ 56.6929 559.3791 null]
>> endobj
258 0 obj <<
-/D [1480 0 R /XYZ 56.6929 493.738 null]
+/D [1474 0 R /XYZ 56.6929 493.738 null]
>> endobj
-1485 0 obj <<
-/D [1480 0 R /XYZ 56.6929 462.4885 null]
+1479 0 obj <<
+/D [1474 0 R /XYZ 56.6929 462.4885 null]
>> endobj
262 0 obj <<
-/D [1480 0 R /XYZ 56.6929 408.8026 null]
+/D [1474 0 R /XYZ 56.6929 408.8026 null]
>> endobj
-1486 0 obj <<
-/D [1480 0 R /XYZ 56.6929 377.553 null]
+1480 0 obj <<
+/D [1474 0 R /XYZ 56.6929 377.553 null]
>> endobj
266 0 obj <<
-/D [1480 0 R /XYZ 56.6929 258.7201 null]
+/D [1474 0 R /XYZ 56.6929 258.7201 null]
>> endobj
-1487 0 obj <<
-/D [1480 0 R /XYZ 56.6929 227.4706 null]
+1481 0 obj <<
+/D [1474 0 R /XYZ 56.6929 227.4706 null]
>> endobj
270 0 obj <<
-/D [1480 0 R /XYZ 56.6929 161.8295 null]
+/D [1474 0 R /XYZ 56.6929 161.8295 null]
>> endobj
-1488 0 obj <<
-/D [1480 0 R /XYZ 56.6929 133.5449 null]
+1482 0 obj <<
+/D [1474 0 R /XYZ 56.6929 133.5449 null]
>> endobj
-1479 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F41 1233 0 R >>
+1473 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1491 0 obj <<
+1485 0 obj <<
/Length 3154
/Filter /FlateDecode
>>
@@ -5839,136 +5737,129 @@ Zµ¼‚Ì^õØ Mè?ºŽç+ £c×nÓj'£¢7^A8aQƒ PÞd
ŒÖŽóð1já¼Î+êºO¨¼qÆ-ù ù,ˆ›óˆ6ÎâvœgRˆgìý_&žÔ‡†{&ƒ¬€G8'Ï) J’;í¤›ðR.vØ^¬ZJ´´ª¯ÞÈ> #÷OÃÊ…ÒòÑ”© ¾Côj@•Þ(U`Í~äìÉPä†ÓF£$…
{öFç¦5” 
üB¢‡9#PÊa3@m RæÏÝJæIÜ™• åû}™(q¶È(ïFB
-†O¨´.9·¡Lzâg'ðnºh$õ©P%,£•u™-¡A_6á¸{èENÏL¼8+û’ˆÒÍ¿oN¥PýR_/6"?‡='Šë’å²òp5q¸avèrÃþÁc
+†O¨´.9·¡Lzâg'ðnºh$õ©P%,£•u™-¡A_6á¸{èENÏL¼8+û’ˆÒÍ¿oN¥PýR_/6"?‡='Šë’å²òp5q¸avèrÃþÁc
endobj
-1490 0 obj <<
+1484 0 obj <<
/Type /Page
-/Contents 1491 0 R
-/Resources 1489 0 R
+/Contents 1485 0 R
+/Resources 1483 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1451 0 R
-/Annots [ 1495 0 R ]
+/Parent 1462 0 R
+/Annots [ 1489 0 R ]
>> endobj
-1495 0 obj <<
+1489 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [408.1244 623.7385 469.3244 635.7981]
/Subtype /Link
/A << /S /GoTo /D (managed-keys) >>
>> endobj
-1492 0 obj <<
-/D [1490 0 R /XYZ 85.0394 794.5015 null]
+1486 0 obj <<
+/D [1484 0 R /XYZ 85.0394 794.5015 null]
>> endobj
274 0 obj <<
-/D [1490 0 R /XYZ 85.0394 769.5949 null]
+/D [1484 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1493 0 obj <<
-/D [1490 0 R /XYZ 85.0394 744.1913 null]
+1487 0 obj <<
+/D [1484 0 R /XYZ 85.0394 744.1913 null]
>> endobj
278 0 obj <<
-/D [1490 0 R /XYZ 85.0394 684.3648 null]
+/D [1484 0 R /XYZ 85.0394 684.3648 null]
>> endobj
-1494 0 obj <<
-/D [1490 0 R /XYZ 85.0394 655.3895 null]
+1488 0 obj <<
+/D [1484 0 R /XYZ 85.0394 655.3895 null]
>> endobj
282 0 obj <<
-/D [1490 0 R /XYZ 85.0394 606.8822 null]
+/D [1484 0 R /XYZ 85.0394 606.8822 null]
>> endobj
-1496 0 obj <<
-/D [1490 0 R /XYZ 85.0394 580.8718 null]
+1490 0 obj <<
+/D [1484 0 R /XYZ 85.0394 580.8718 null]
>> endobj
-1489 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1483 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1500 0 obj <<
+1494 0 obj <<
/Length 2887
/Filter /FlateDecode
>>
stream
-xÚ¥]oÛ8ò=¿ÂÀPˆQÔgï)›f¯Ùîµ¹:½Ãa»´Lۺʒ+ÉqÝ_3œ¡$;Jv"@4‡œá|ÒbâÁŸ˜„‘¥~:‰ÓÀ =N²í…7YÃÜ?.ÓÌ,ÑlHõóÃÅÕ/2ž¤nùÑäa5à•¸^’ˆÉÃòw'p…p§ÀÂsîßÝ̧3?ôœŸ„ à³z7§2vþ{ÿ0‰óáÝàxvþéþþƒ™}˜ÂÞ¡ïܼ½¾¸ýHÓó½~ó啕~sû†¦Þ¼ç~¹½žÆóðéãí|úÇï·\CÙ…'Q¨¯¿ÿáM– ‚_/<W¦I89ÀÀsEšú“íEJ7 ¤´˜âb~ñ¯Žá`Ö,Õ¥ð\_Fþˆ2}1+˜j3L]?‰ýN›Ó™ð¼çµYwmõ%ïµØìw»ªnQzØÃ\˜7™ù©+ã04Ì™cà3G
-Õ®ªz;£a^.õNÿ²%Äõý@DÛ´Sál4ÁYU¶fê@éP0¶4 IYÕŠ°áSè«Y-:Û×y{¤Ñ¶Zî s8ÖãÛù?›^‡ U»Ñ5Y¯£žªÍ`©óL7nw´Ä ¼(6Gûùî=Zj;)~"'ohø¥¬%¡ÚŠP‡ªþB˜CÞn×*Bá1_Og2
-ãðÙ7Æú
-|(u69³±_EŸ†ó˜ÙØù¢Võ‘·\à=£¤À"lÇœœèÕØÍ`ÆØlVm-]z\ */[]¯T¦ o.Ðdw€0 1çiå‰2: 3f dËc©¶y¦Œ«áDQ©%Ê„“ Æõ~
-*s½ïŠÔœ¹wãÔÝMgUMÚÈìÊM•gÚÖ_Ö%±n+Ÿ»‘s³}ý\›„¡ 5ôr‹4¤2U½é=Û£/TÁgOÄç›ÆÀO$þË›Z¢§›žÔ‰pÃ4 O7ýÔ°"^Q*q¡â0u6f%°úWDÈ¥éΔñPlìmÔ£&Üx¹}^xáYážÆüK[Rƒ%DnÕpñGÍ€àb0\쪫cMÎîB+ÐdŠ Œ`sq‰ñO@R¬á¶(É.cœ  4¶cy˜wÎ,ð”#ÆoË¡QsÒâðÏÌm@õ‚¹Yª?5·—6íÍí|ÓqsnJæÇΫ&_—³ª,ŽhVq×Ôı5+À±Y®·!@/5.6ê‡)sU€]íËŒM°»:ßB dê8˜4fhÓíu¬bn+€ o+
-ÛrTHåiÍV
-R[dEuq‡)ÏMÝ„@.d#G¸žë1®0dPÊùqŸûþŽã´÷Ö‘UÞ©šÌFV:>!™pÔê<³“l OC¡3ˆ åÄÕ³}®×YIÃ芾+¨Ÿ«Ã4õMã !÷ÀäÆ ´éÀPúZO¶hÔVSë_LÞÕ’›îw½®Ë01{£Ög3¼Ån{é_zx>Ôna0þð ۦ•qò/Zç/íŠSV}i! ß@7Hòƒ7®È‡Õ"šøaàFG/Èï/Za$žJn(>Lg‘ÀçüÈwnÏ<½Ø'¾Cå ÍÖ“¯Ðb¦’ˆ°µWA\ÝmýÉ›
-š d²ŒgCÎF¨hX¹¤‰ T°¿„F ºÊ
-%Ì¢fÀXªå[Ž¾Î+[M¥‡™5”!?Ó@š9äÒ%>´×ÕT„¿³˜wYšØï–ÊT´ˆ4=áÍ |!×ø`í4*ª4‰Ÿfzïµ5oRëÑ÷A#'å‘äfNBY0`Žé”SèõöÛæ $ÈßÚFft|í`:p^#º¸²Î@³NÃŒ‰0“AÉU ðyâ®A„?À¤Édà?æbèÌa
-uù¬ÿ¡èÇÀ©×z© ÇksK&
+xÚ¥]oÛ8ò=¿ÂÀPˆQßê=¥iö6Û½6W§w8l÷–i[Yr%9®ûëo†3”hWÉ.PˆÈápÈηÅă?1‰b7Îül’d¡y"šäÛ o²†µ\Æ™¤™õæáâêç ™dnûñäaeÑJ]/MÅäaù»ºB¸S á9÷ïnæÓ™yÎOBÐà³y7§Aâü÷þa*Rçû;€ñêüÓýý½ú0…³#ß¹ùåúþáö#-‡L÷úí¿§BçúýÍí[ZzûžOúùözš„Îç·óé¿^Ü>ô|Ù¼ /@¦¾\üþ‡7Y‚~½ðÜ K£É&ž+²ÌŸl/Â(p£0 ¤¼˜_ü«'h­ê­£²žë±?"L_LDè!,ÚÒŒ2×O¿—æt&<ïyi6Ç]W?ƒÛýnW7rgøÖƒy“™³, 5q¦úLHñ~¿(‹œæïÔ‘t̺‘»†μ“ÕR6øˆËž
+ß&KõÙóüJµ4•ôÙ•²[ÕÍvFÓ¢Zª‚UG€ëû;
+¥¤Î¼.e£Ù2çkãÞP°à`½Ó׃µkxÀÛ{ƒ:í JuÈêLvÌ7jIZá`¹íêF®™‰Vá™ëéà¿U‹BVý­¨ö_/Çn ·>{íÿL£•²>0Ê\5Oæý}Ï \¶*°\CU›U‚G‰›u{«mT£¾ì‹¶€k?c’±ëGqD÷SÀq(àÅiðv‚FâKÕù~ FÈË+ZKàúh`ÖŠ\Ôûάµ,Ë¢Zƒ,Ã(@Ѳ,¾ /Ìx/JOd»ÛÏƤº
+¤3NÁs€»:ÉƘJÿŠ9±"Ùé2ƒy³|RϵÏÓN@<K;£SiòiФ½‘-§~T Nu©.€ú,VGìÞ³N.9½­ˆ‹[´y\ '°eI@6máK ±óô &· >&U7/…ÚÐKÿDÝ,¬ÔÍ`ý©º½tè n燎«›}(©[’8¯Úb]Íêª<¢Z%}I“$F­
+ðÉ·žÑÊ­¢Ò¾½ë%/\îz}‘k±U#`»fÐ~6ìû±pÓ(ˆþR+Zø.DÚp¼ WI7NâÚÚ´ÏZ<4;NI ù†HRW$ÉI¦iõ½bß Oü0uc? ÷|o5¹¢8ˆ(<7
+|¸¹Æø0Å;ü±ïÜžKhz‰ŸL|/tÔ’ÜÉ— ˆ1̲€¬±æu\ÝmýÉÛ8šXLÂ3›²f*ö¬|&K]À‚óýÀ £4œ vŒ)¢"  OS?rH“¹W!­3{±¤!Ú­†˜%Ó8¢—\ “hxƒÖ_ ~Z‹3RµÇÑ@¯5,Ck(t¤CpšP7W…öýY
+àì· QÆœöjxXYkžÔ IÐM¸w#v ¨æ;(Í— IÑš…w¦¡aŒ¿ÏdéĶŽ384í(ƒÔ}6üôcîÀ¶áÄMPäÑôÝ ‰(›yÔ„~c'e™.³(McÉ(+Â3pNŸõ­˜Lpã!ëÉ%w—:‚ ÔˆÉi4Õï€Ëx4,]²Ïì¨Ì©éˆ†œrìJiÚCO§â°ãî4éÛ@yó|«gvÞúK)ÓÏÃ\p¬ôaÑIsñõˆƒYûšÜ,øדßÏMRöÄ‹¡kýnmºn÷úêêp8¸ÊUm[ºu³¾jë}“«+͈¾ÛÉÆ]ÿÅÂ>åök×HÓ‘éÅ»B>Û^ "7 1Vyzóv?üû¬U9'n¦Ï´LÀà!"
endobj
-1499 0 obj <<
+1493 0 obj <<
/Type /Page
-/Contents 1500 0 R
-/Resources 1498 0 R
+/Contents 1494 0 R
+/Resources 1492 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1504 0 R
+/Parent 1462 0 R
>> endobj
-1501 0 obj <<
-/D [1499 0 R /XYZ 56.6929 794.5015 null]
+1495 0 obj <<
+/D [1493 0 R /XYZ 56.6929 794.5015 null]
>> endobj
286 0 obj <<
-/D [1499 0 R /XYZ 56.6929 769.5949 null]
+/D [1493 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-1502 0 obj <<
-/D [1499 0 R /XYZ 56.6929 744.5025 null]
+1496 0 obj <<
+/D [1493 0 R /XYZ 56.6929 744.3049 null]
>> endobj
290 0 obj <<
-/D [1499 0 R /XYZ 56.6929 659.1833 null]
+/D [1493 0 R /XYZ 56.6929 657.1551 null]
>> endobj
-1503 0 obj <<
-/D [1499 0 R /XYZ 56.6929 628.6281 null]
+1497 0 obj <<
+/D [1493 0 R /XYZ 56.6929 625.9811 null]
>> endobj
-1498 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F14 976 0 R /F62 1379 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+1492 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F14 980 0 R /F60 1366 0 R /F41 1238 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1507 0 obj <<
+1500 0 obj <<
/Length 2097
/Filter /FlateDecode
>>
stream
xÚ¥X[oã¶~ϯЬ D oº´Ù$»M·'›³ñž¢èöA–i[ˆ,y-9‰ûëÏCÊ’£´iF¢g8ä ¿¹PÌ£ðc^*RéÅ©$!e¡—¯O¨·Þûfe'ô¥ÞNOÎÞ‰ØKIñÈ›.zºB“„yÓùoþÅç·Ó«O“€‡Ô—d„õÏ/ÿ7aŒùç7W—Ⱥ¼¹CâÝÕù$–þôó§+‰ÓÃ4ÆìÌÛVî;ÆøBCzñi"bÿ×Ûé„%þÇ×0f¹wŸoo?îtòûô§“«igWßvF…6êëÉo¿So.øé„‘&¡÷/”°4åÞúD†‚„R7RžÜü·SØãš©c¾ EB„Ç#ΔlÌ™2&Q£3ÿ5 "Jý6Û"ñÇÓ‰z£ª¦)JR’4ÈòmïÙ;Î{Z©J8ºóͦܣ›Ú•Bb“µù
ÉÅV{³^I¼½¾±g–âÈ©Reú7®9°d¸¦5Á.£É`Ã,13Ǿ0!µn/f$àG@D†ÜèüefE5OÏàÿÙæ>o;*
-pÍ@ F¢4J_…ÆIš†r`o gE‚(œGA—%ÝŒ¡ªCä…¡ŠFXàX;,¼”’˜AÄE,!·Üô
-Ÿ²õ¦T øˆSî?Z©|U×¥ÛŸôðÅ ëÈ€¼Ûº¼k¶zˆŒÙòË$å¾-*…1P»F¹‚S4HnDÍÊJæu¥c}¹sž8*SÄ&Âãª$ —6¯˜~`…RòvWXähÝÁ˜ªXo
-âùÕ-Ô^‡¸¡Ýn.ªÝÓx%æ!‘"²8ÕÊç¨ 0ß)ÓƒÚú™ácU,Wºpk±FåÙšw¯öH4m½Í–
-¥æê¡ÈÕ©N1P'w-Š @5ß
-Hqh0 ;Ïx(ìö?ËfÆA Ñ
-–`’Ñ,¿@Ù´r:æbçÀMi’±&õ™êçQ9ƒ-¿º¿Ì7¶Ï4ÓÉû‹ („“¦&@„ÈY@ÿÙ9ØÿªžZYßÌwƒúä‘ʲ¢Lr›C`³ŠØI>fÆ@CK«uë“ö1xôzã==©Ë|ð¢»èJ°Ç`˜‰Š#yPÜ-ÏmŒ‘;—Ž+•«¦AkC¬.1Â&Ü)føèìp0·3³³ xûüÁZp»\uNfºÍ®XšÑyÞ*Kt×é‘Š~†>Yw‡ùº+hÜ<|ÍæÕÔÔø_ïšv`ˆµbs˜J^ÙñûÏÈ‰Ø ä좮Ô=…¥>Ï`©*µ-ríGs­Zw”ÞìèWª ØÜ3€ªl­~øËHjì¶ËúÊ¥Î}?tIñ¥IݶjQ<¯=”³ ·]´æ eØk
-áÅ@+…¦Qò%ípÝŒ©ä}åf^«
-ÚÝL3Am£X¨»› í²±ËÚÌ Ù£o/Â4}åVKkbYá
-Ø?Z¾ëAÁ=P3GkÛn3<@i_‹µ«‹¬iUçßÌz1«l¦‡ñ¨4t‡0ìöšUæ®83×ânƒþFØé›Ñºv]ß‹º¾jP’²þ-hØYcÀ¼<%Ñël<ÿÏedýán‘ß\ÉÆ>½ :1öµ”v߸¾ùÛìá«‚Œ!Ç%|<u‘„§±Û”6J<ûŽÒ}Ä}¾õÿã}Ó{endstream
+pÍ@ F¢4J_…ÆIš†r`o gE‚(œGA—%ÝŒ¡ªCä…¡ŠFXàX;,¼”’˜AÄE,!·Üô
+ÀdÖjJ":õ–&¿PÊK…üu6Ôß#£ª[$fvR^¯a^1›pê»E»r«X±/œK£_(µk‹²h­ÞºÂgV–«tS€#„
+õa¥j ¡'~³oZµn&,ô!Á Pøë„Iò»më—J©9RmÏ¢jZ½˜yyó ³EbRàÑ‘Ê`&
+‹­ ;SëíQA<¿ºEâƒÚë7´ÛíÏEµ{¯Ä<$RDX§Z™à•æ;ezP;B?3|¬ŠåJn-Ö¨¼3[óîÕ‰¦­·ÙR¡Ô\=¹:Õ)êä®E¨æ€ê¡ Öü‡bnõ­,ô³þ*ùv¿iëå6Û¬Š|ìl³<‡Ž`kŽè*û×z èæò¬ÒdÝl»ÝãX½sÌb#¦Ó&èp­+L)M
+8êÄLKÒB†º×HûuHÚÆ\[µ¨wÕ\„0QêÂdä½¹—rݲn‡90›Ï2N?X™Yý ^ß’òÒ’Þ]œ#F‡ é]]¢ù³–4êµÔ( ¬Ú}£î œ.²Ãî‚ÚRA»[‚i&¨­qkuw¤]6vY›™!›`ôíE˜²¯ÜjiM,+\ûGËw=(¸jæhmÛm†(ík±v5`‘5­êü›Y/f•ÍôÐ"•†î†Ý^³ÊÜgæúCÜmÐßh
endobj
-1506 0 obj <<
+1499 0 obj <<
/Type /Page
-/Contents 1507 0 R
-/Resources 1505 0 R
+/Contents 1500 0 R
+/Resources 1498 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1504 0 R
+/Parent 1462 0 R
>> endobj
-1508 0 obj <<
-/D [1506 0 R /XYZ 85.0394 794.5015 null]
+1501 0 obj <<
+/D [1499 0 R /XYZ 85.0394 794.5015 null]
>> endobj
294 0 obj <<
-/D [1506 0 R /XYZ 85.0394 491.3865 null]
+/D [1499 0 R /XYZ 85.0394 491.3865 null]
>> endobj
-1509 0 obj <<
-/D [1506 0 R /XYZ 85.0394 466.1094 null]
+1502 0 obj <<
+/D [1499 0 R /XYZ 85.0394 466.1094 null]
>> endobj
298 0 obj <<
-/D [1506 0 R /XYZ 85.0394 166.668 null]
+/D [1499 0 R /XYZ 85.0394 166.668 null]
>> endobj
-1510 0 obj <<
-/D [1506 0 R /XYZ 85.0394 141.3909 null]
+1503 0 obj <<
+/D [1499 0 R /XYZ 85.0394 141.3909 null]
>> endobj
-1505 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F62 1379 0 R /F21 950 0 R >>
-/XObject << /Im2 1368 0 R >>
+1498 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F60 1366 0 R /F21 954 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1513 0 obj <<
+1506 0 obj <<
/Length 2160
/Filter /FlateDecode
>>
@@ -5987,30 +5878,30 @@ màHÙ@æ:ò¤Ûw¸”Ũi
ÆîUz>Ð êPÏl"¼w++ÃÊ´74 KÈté~«]WÌ.íoã~wà¦Yí
›Z€óC¯dŽb S\iS Dˆ Ð…C OÖÏ®_¢Ï/†…uÃÕ€i W}EC¨Ðe2 Ú7 uãœ;
Üç0TIE'H8¿SŸè®#¦@Á\Â÷‚CcG£›•Ò×~S-s„Tƒ}¡>> áG³ËÛŒVƒ¿¶¹TŠéÈ]ræB&ÓR±Pë /^Ö:ÃëÞsØÐC±Ò, æìôYþí^úùøÚ  âX7ƒ2‚¸ˆAˆU
-Wò+ÍÝkóתÿ
-ú*sendstream
+Wü+ÍÝkóתÿ
+¢*qendstream
endobj
-1512 0 obj <<
+1505 0 obj <<
/Type /Page
-/Contents 1513 0 R
-/Resources 1511 0 R
+/Contents 1506 0 R
+/Resources 1504 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1504 0 R
+/Parent 1509 0 R
>> endobj
-1514 0 obj <<
-/D [1512 0 R /XYZ 56.6929 794.5015 null]
+1507 0 obj <<
+/D [1505 0 R /XYZ 56.6929 794.5015 null]
>> endobj
302 0 obj <<
-/D [1512 0 R /XYZ 56.6929 655.8524 null]
+/D [1505 0 R /XYZ 56.6929 655.8524 null]
>> endobj
-1515 0 obj <<
-/D [1512 0 R /XYZ 56.6929 630.3608 null]
+1508 0 obj <<
+/D [1505 0 R /XYZ 56.6929 630.3608 null]
>> endobj
-1511 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+1504 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1518 0 obj <<
+1512 0 obj <<
/Length 1877
/Filter /FlateDecode
>>
@@ -6028,54 +5919,54 @@ bqÙÅÿ`Ï\mÓ}Q¿ˆóÙuÀ,ö·ÃžÿKàµq÷)Ýg›×i¹Š‚Ï‹¿˜{±àƒ!ô_†
Ä€²ü‰SÆ<eºù~±nr㼬ëi“âûIâ öÚã¿·}œá­#H@aéC> 
ó :<)Ðr8&žs„ˆ(ép7
!M£v…´*4ïUÓäV„2Üò¦'s~{µ09Õ½ ‡Ü÷âˆÃýSßIÿsî¾'“$¾ »-G·Ë’®¹g[À!)O’õ£ÁíÍíD
-6ð?VUÅ„Ô(&<¶‡U^1%bYTE™n‰¦7©xgFB£E™®‚;RÚ䆨q¨°¯ˆDRÌÍ¥Ÿ £Ûfšûï!JžÛI/‘ør¡g“|éÀÜV„¬N•?ÑÞÈÄâÛ@ØP-¦‚‘”ººÄðG*YDmÅ
+6ð?VUÅ„Ô(&<¶‡U^1%bYTE™n‰¦7©xgFB£E™®‚;RÚ䆨q¨°¯ˆDRÌÍ¥Ÿ £Ûfšûï!JžÛI/‘ør¡g“|éÀÜV„¬N•?ÑÞÈÄâÛ@ØP-¦‚‘”ººÄðG*YDmÅ
endobj
-1517 0 obj <<
+1511 0 obj <<
/Type /Page
-/Contents 1518 0 R
-/Resources 1516 0 R
+/Contents 1512 0 R
+/Resources 1510 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1504 0 R
+/Parent 1509 0 R
>> endobj
-1519 0 obj <<
-/D [1517 0 R /XYZ 85.0394 794.5015 null]
+1513 0 obj <<
+/D [1511 0 R /XYZ 85.0394 794.5015 null]
>> endobj
306 0 obj <<
-/D [1517 0 R /XYZ 85.0394 769.5949 null]
+/D [1511 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1520 0 obj <<
-/D [1517 0 R /XYZ 85.0394 749.1709 null]
+1514 0 obj <<
+/D [1511 0 R /XYZ 85.0394 749.1709 null]
>> endobj
310 0 obj <<
-/D [1517 0 R /XYZ 85.0394 714.4776 null]
+/D [1511 0 R /XYZ 85.0394 714.4776 null]
>> endobj
-1521 0 obj <<
-/D [1517 0 R /XYZ 85.0394 688.8412 null]
+1515 0 obj <<
+/D [1511 0 R /XYZ 85.0394 688.8412 null]
>> endobj
314 0 obj <<
-/D [1517 0 R /XYZ 85.0394 535.7123 null]
+/D [1511 0 R /XYZ 85.0394 535.7123 null]
>> endobj
-1522 0 obj <<
-/D [1517 0 R /XYZ 85.0394 507.2665 null]
+1516 0 obj <<
+/D [1511 0 R /XYZ 85.0394 507.2665 null]
>> endobj
318 0 obj <<
-/D [1517 0 R /XYZ 85.0394 332.8138 null]
+/D [1511 0 R /XYZ 85.0394 332.8138 null]
>> endobj
-1523 0 obj <<
-/D [1517 0 R /XYZ 85.0394 307.1774 null]
+1517 0 obj <<
+/D [1511 0 R /XYZ 85.0394 307.1774 null]
>> endobj
322 0 obj <<
-/D [1517 0 R /XYZ 85.0394 163.8619 null]
+/D [1511 0 R /XYZ 85.0394 163.8619 null]
>> endobj
-1524 0 obj <<
-/D [1517 0 R /XYZ 85.0394 138.0002 null]
+1518 0 obj <<
+/D [1511 0 R /XYZ 85.0394 138.0002 null]
>> endobj
-1516 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1510 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1527 0 obj <<
-/Length 2117
+1521 0 obj <<
+/Length 2116
/Filter /FlateDecode
>>
stream
@@ -6084,30 +5975,30 @@ xÚ­XmoÛHþž_aàXùP)šÑ{€ý6î5›^ëMÜ]m±­q¬‹,ù,Ù©{¸ÿ~ä#˶úìÁÄáÌpHùc1pá'A脉L
©mºÎÓi¡hÔTô­Wj–ÏwÌ\ðì*m‡ëöSÝËut܃2 ½´ZÌÁVÛN7³O(h ×uá†òòþHð«»²˜®@ŠŒœ(¾–ò2_×Í3ÚðÈ—›šM¬›Õ‘ðõ0†@iò%{=TÛúv¥Ê»»×4HËŒˆ<(òéÜ«jÎÒ’ˆ) *ª4SÙÙç‹Cû<áÄ2Öæý4´Áa–ú¼ªÖ ѯ¯þ|}ýüöòöýŸãËÉ«_Î!†ÏW³ZˆóM½>‡£/~úÏѪÿö{²sÒ …:†˜j6t0L™}9q£v+ºjô{è[yC9ZJ+-´ã€Sª™ªët½£aÃì}Œ…œ“HÕ,¥lÔZ̦¥õQJ™Îy©¤YÌóB±‹|¶Ðià†ÝTúnñ:<OZy9¯ÖK> é´Ò ãyœýÀc35=¯˜ØÔ<;ÝÑ—î7ê»GÖZ‡¢a§Á±>­ëùÑql È,V¶Uº'Z|?r‚0ˆÀb4ôœAÀpÙ TÁ0NȨsB¶ñš”<7gŸÆˆH"G†PSH>'x¡/tívõwBøfô~<ºí ã^õ¾ºdÙd¡ô½$Éi·HWÓÂœ˜ò.H<B¨­¾7˜&(u*àlZîˆhªª %Í"å­à”ÚðX, Ø3¢òrVl2d€ñÀ˜î5Q*Ûjw¯ÊÛC¸[íœ
Ärì ^ÀâŠl>æÇNEâ‰Â2U7ëjקtL¡/¿'Ï,ÈʺV3´u¾®–E:UEÐ$pD,å*ÉBëü¾üRõFuäCO’øOøõ áöbs#Ø
î‘rÑsBᇈDý çROÝÓ„F]¬ ÔTK¢ËÍrª˜êh¨®J¬¹ÏöeéÔ j­ÉeºTY%žë$‰ò*‡,à® ŽBÌo'ŽL½&ÒÂ8wMyƒ0/«GæÞ¦ ¯ ZIYBðfMTΛ)m\í
-¿Ï¯ß\•L=Hí`z¸Xb™ QÞ…m]k ºu[Ös×›&/òNúVVé2)=m,vCžÐyŽ“œç0iòÜç<‡I~ó¥Ë6,bÏÑNæiôD¥8§YJ+Óúh+ìÐU£ÚŠÀ ë1 e©ÏZ´SªæI
+¿Ï¯ß\•L=Hí`z¸Xb™ QÞ…m]k ºu[Ös×›&/òNúVVé2)=m,vCžÐyŽ“œç0iòÜç<‡I~ó¥Ë6,bÏÑNæiôD¥8§YJ+Óúh+ìÐU£ÚŠÀ ë1 e©ÏZ´SªæI
endobj
-1526 0 obj <<
+1520 0 obj <<
/Type /Page
-/Contents 1527 0 R
-/Resources 1525 0 R
+/Contents 1521 0 R
+/Resources 1519 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1504 0 R
+/Parent 1509 0 R
>> endobj
-1528 0 obj <<
-/D [1526 0 R /XYZ 56.6929 794.5015 null]
+1522 0 obj <<
+/D [1520 0 R /XYZ 56.6929 794.5015 null]
>> endobj
326 0 obj <<
-/D [1526 0 R /XYZ 56.6929 725.1329 null]
+/D [1520 0 R /XYZ 56.6929 725.1329 null]
>> endobj
-1529 0 obj <<
-/D [1526 0 R /XYZ 56.6929 694.9784 null]
+1523 0 obj <<
+/D [1520 0 R /XYZ 56.6929 694.9784 null]
>> endobj
-1525 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R >>
+1519 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1533 0 obj <<
-/Length 2294
+1527 0 obj <<
+/Length 2293
/Filter /FlateDecode
>>
stream
@@ -6118,41 +6009,41 @@ J#ó¢V7ôù~C¢yQÑTäT˜ÅÓmÃä\TìO6ƒ(
‡0h‹P
ì«ÌJòÍ%xÇf,=ÇWñª8¨A怃¹LÆuà´¨æ"áš"㺩ÊkÐyÝ×}y‘<IèºFÄc lº.oxÃÊ@í·ÌW$1W])(éËÖ~y¾cèv,Û.UrK‡Óª,ÓõZµü#ýBæÄ/ÅiíǧÙ«ØÙ— 5<t¤?q\pŠ÷Mo\ŽA¿p™Ý‚foEýz5ÄyN`…Π•ÒOó{²V凔ÊY¾£B {9ÄejrÓê:ÂÄÁe:U¤óÖŽÒêYÂ}XèksqÇ*´¡cŸµ<çwè–7TeþB?í
ÂqgUÑRú-IFÎá©!65Dò¤6_ögQžÔjÚ¢ ”ÑËöÊ”‘§SÖ²LQɪÆ^½Ú4GŠ5`å
-Òë?IQ¡8aX¯Šîí’ðéÙ¨ªÏ^Úbõ¥aë!¦ë°4X¹ëžNÆÓ¥gá øÈÓ·Ýaÿû¡ýô ¸"2 ñ,$m.P´F¡›¥wny÷"iú
+Òë?IQ¡8aX¯Šîí’ðéÙ¨ªÏ^Úbõ¥aë!¦ë°4X¹ëžNÆÓ¥gá øÈÓ·Ýaÿû¡ýô ¸"2 ñ,$m.P´F¡›¥<·¼{‘¿4ý?´z{•endstream
endobj
-1532 0 obj <<
+1526 0 obj <<
/Type /Page
-/Contents 1533 0 R
-/Resources 1531 0 R
+/Contents 1527 0 R
+/Resources 1525 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1504 0 R
+/Parent 1509 0 R
>> endobj
-1534 0 obj <<
-/D [1532 0 R /XYZ 85.0394 794.5015 null]
+1528 0 obj <<
+/D [1526 0 R /XYZ 85.0394 794.5015 null]
>> endobj
330 0 obj <<
-/D [1532 0 R /XYZ 85.0394 519.9229 null]
+/D [1526 0 R /XYZ 85.0394 519.9229 null]
>> endobj
-1535 0 obj <<
-/D [1532 0 R /XYZ 85.0394 488.8874 null]
+1529 0 obj <<
+/D [1526 0 R /XYZ 85.0394 488.8874 null]
>> endobj
334 0 obj <<
-/D [1532 0 R /XYZ 85.0394 326.6298 null]
+/D [1526 0 R /XYZ 85.0394 326.6298 null]
>> endobj
-1536 0 obj <<
-/D [1532 0 R /XYZ 85.0394 298.4037 null]
+1530 0 obj <<
+/D [1526 0 R /XYZ 85.0394 298.4037 null]
>> endobj
-1531 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F11 1353 0 R >>
+1525 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1539 0 obj <<
+1533 0 obj <<
/Length 2424
/Filter /FlateDecode
>>
stream
xÚ¥Y[Sä¶~çWø!UÇSÅ(ºY¶yc¯!•°`“‡lÌXÎzìٱ̈́üúÓ­–=cÈ©Z¨B-©ÕjõåSˈ€Ã¯"ÃL*Ó N5‹¸ˆ‚Õæ„÷0÷ñDxžeÏ´s½¹=ùñƒŠƒ”¥Fšàv=’•0ž$"¸Íÿ5’-@/®~3‹¥ŒxxóùêêÓõBÅá- \\RûæâòQéb)„à*|ûÓùÕíûkÕ^Ôù»ß0ž_¾}ï¼»¼!âÃûóE¬ÃÛÏ×ïoÞþ|òþv8Êø¸ Ïñíä?yé>áL¥Iì¡Ã™HSlNt¤X¤•êGÊ“›“ÿG³néœùž¥N˜ ãÿÙÌ–¦‘žß–ËD±„ó²,ZÇA–'ûÇ¢Þ5F2Gñà])!XEÝ ³*&ˆ•dIœçÞßÑÂŽ3e‘ÑaMCHpÇq¾X^»¿àe#‹–áÇ©‡`Ë80IÂb°*|+¤Bkå˜Æ´;ýÁ*nàÇ‹
-ÞÕpÆ`tÌ^ðr,ÙÓÈQCìWÄ<f&–‘;ÃU™­Šê~±T2 ÛKÄO7¿þg×P÷
+ÞÕpÆ`tÌ^ðr,ÙÓðQCìWÄ<f&–‘;ÃU™­Šê~±T2 ÛKÄO7¿þg×P÷
ƒ‰¢¢6óüv¡xøwK½/œËÒ3¶…—±ÉªÊîz×=Qggóne'
4vÕ³ˆÂ¢õ|Y¾D‹b€ ®ƒ<.dfU›ÝÃRiâ°^SÛ5î\Hfµp,FÔÇ ûÀ."ôR§ûvÿµD=-$ëÎ/„Û“zmMmîÛ;»ÆãÕ;¯Ðª®Ð4÷ý@«£sš|ÚÚêææX“ù°õE[’Ùç!›F—6)“IšãXÿ¾ôÁDRùs€€ïKîãŒäq,)¡™ÒFŽ×HÅbÄ•pÁ„œ#à>ö€Ûm·õ®¥Ž³ÛlYÜ'X^&©rb=3™±Yweù„¤øpÒšÈÊ’Nˆ›$´UKœà}‹N®lîeÔ»MC2\@Âר*ÛX¢\ì ä<'_”UùìÌaÉAHY×_»mÃæÒãÂ[f_8ÝÊʦ&ªk¬¿£kŽv³ µž{“}õìß:»+úéýƒõFß-’°«*Ê:è×~<«¦»¬²mvWziÍSÓÚÍAù˜¥îNù5¤Œ”
­¹Ïœb9 ø#Ÿb/é=ã)5ÞmÚ Ô•óPçðCtU“\0ßRq^xKÓJETn· ɳg­õ:8°B‚숻¬ýfv‡Ó¹¼'G›4\•„Ó²)rKÍÙÐY;S
@@ -6160,17 +6051,17 @@ xÚ¥Y[Sä¶~çWø!UÇSÅ(ºY¶yc¯!•°`“‡lÌXÎzìٱ̈́üúÓ­–=cÈ©Z¨B-©ÕjõåSˈ€Ã¯"ÃL*Ó N5‹¸
lÝì페A ²îŒèyÏÉ‘ç0ÀW+»õyæ€y³ƒíÖn;èÑÈ<å;:ôÏMŸN“ð<Jx” XxPn™~ÚÒÔ(UŒœìÊPœ! RLÃ0hŸmQWYI3_¤ÔUqi‹1!ÈÑéÀ$§QÂ(âÁøªt¾*JµA5T±5,Ûm³˜V0ŠÔ3æõ¬DŽ€›)f<âzâwWÊpo]hÅj¡cQ—ù(žLíq^?WWh…m”ŽÔ-àâ®­Ä*Qª#m1â8üä6uû£_À¨ ©çðF½S€JiÂ;ÅYt¬>šþ®¨²Ýñ•Ù-?œYDÌY'òa¾€¥<è›(üZÕûŠH 㥶M»ƒ ĬÄB>%X¸ëZ!Säë­(ô‰%¤$ªæ7x €ÇZ¿÷ªÞlKÛZ¦hŠMQ¸u&ƒÅÈ3Ù‡ðŒöÕ&ü5«œfÛmY€+½‰a„‚q0±‘}ÜSµ&ên‰è*ðRÓz<îÄá`’ Nä!øaß¾-ýä Ñ†òמz“÷ÒÝ}<s,ân»Ð:u—'¶– ó»ÅšÚ{€a 3ƒõ…gÝf»¶XueÖºÂLèå¸"Ó •RCA6ÑTA¸y4„ÜN,5„jHùÇÀÌ…7Å»Á¼@;ó6¯Ô£rBe÷Xؽï­=ê>ØpÉ=n‰Gjq,RVmGv>^ûBtê×Z;­¹UÄ™N ßà ÌŒ†B5K“»{ÿj»=—þåxAÿ #ßT.Zàî³¢/ªÎ™dâÙ
~È:ûw†€}JÑbâ”%Iœ:µ~øt}ñ?>,c
­€EâØ¡îÕíµ§ðá„Ãkˆa =ÃqvöNm÷xá€øŸƒ™
-…ÈñÝÿÄ8|pÔ1SXRÍ–:ðÄRGõJ¹†y¦¹
+…ÈñÝÿÄ8|pÔ1SXRÍ–:ðÄRGõJ¹†~¦¹
endobj
-1538 0 obj <<
+1532 0 obj <<
/Type /Page
-/Contents 1539 0 R
-/Resources 1537 0 R
+/Contents 1533 0 R
+/Resources 1531 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1545 0 R
-/Annots [ 1542 0 R ]
+/Parent 1509 0 R
+/Annots [ 1536 0 R ]
>> endobj
-1530 0 obj <<
+1524 0 obj <<
/Type /XObject
/Subtype /Form
/FormType 1
@@ -6190,104 +6081,106 @@ xÚm”In1 EOPw¨u€$ÅIg0²Êľÿ6¤¤êV5 oʯÅésÀóή¯ƒÖ×O²Î Ž¢‘ÿ¨#h8Çùø:„5?ù
6\>RgÈbÏWÖ¹j[†›
WŒÏ¢®{6;»²þFÃÇñ÷ø]š¨)Õ/Ô¬Mu;pk;Ì©Ëdh<åE–ñ¬AÏw³ð¬±±Nê¦ó¡Ä½t•‹ùD„™Â²]°Ä(‡;„ ·åŽ°Š­r²ÂÙÄLûˆ T¥Í¡誋ŠŽt’¹w_ =Î]ˆ‹=¦uSä÷—ä"ï±yl±‡µÃ-ËkHsŠöreOÚ³êvg›<7ºt,‡Ýe—;ãÒèЭ/I…B÷&ê(ýê³ö󻉨YÙ¹Ç,çkRÔšÚ'^ m" ^˜h±ÎW9AVªy­Â©/fýÆ"•œãûFy-Sng \Çdª¼˜©Æ¥†Í}B©•µŒÎ$âw1.¶&Øíþ²C¶O–ÃVç X×9g¹E{îÇ< •ãóP)!ÍZÜÅŸLÞª~ÑÔ'¯UâXLµüc“ÅXsЖõÚ¯½˜Ó’~òBL–§èªÆ¹O¦ºNZ_[Èü.øšŠû*]3QôçÇñ!Ö-žendstream
endobj
-1542 0 obj <<
+1536 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [349.4919 431.1147 408.4801 441.8991]
/Subtype /Link
/A << /S /GoTo /D (ipv6addresses) >>
>> endobj
-1540 0 obj <<
-/D [1538 0 R /XYZ 56.6929 794.5015 null]
+1534 0 obj <<
+/D [1532 0 R /XYZ 56.6929 794.5015 null]
>> endobj
338 0 obj <<
-/D [1538 0 R /XYZ 56.6929 640.7425 null]
+/D [1532 0 R /XYZ 56.6929 640.7425 null]
>> endobj
-1541 0 obj <<
-/D [1538 0 R /XYZ 56.6929 609.2714 null]
+1535 0 obj <<
+/D [1532 0 R /XYZ 56.6929 609.2714 null]
>> endobj
342 0 obj <<
-/D [1538 0 R /XYZ 56.6929 416.9256 null]
+/D [1532 0 R /XYZ 56.6929 416.9256 null]
>> endobj
-1543 0 obj <<
-/D [1538 0 R /XYZ 56.6929 388.3459 null]
+1537 0 obj <<
+/D [1532 0 R /XYZ 56.6929 388.3459 null]
>> endobj
346 0 obj <<
-/D [1538 0 R /XYZ 56.6929 261.2322 null]
+/D [1532 0 R /XYZ 56.6929 261.2322 null]
>> endobj
-1544 0 obj <<
-/D [1538 0 R /XYZ 56.6929 232.6525 null]
+1538 0 obj <<
+/D [1532 0 R /XYZ 56.6929 232.6525 null]
>> endobj
-1537 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F21 950 0 R /F39 1173 0 R /F41 1233 0 R >>
-/XObject << /Im3 1530 0 R >>
+1531 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F21 954 0 R /F39 1178 0 R /F41 1238 0 R >>
+/XObject << /Im3 1524 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1549 0 obj <<
+1542 0 obj <<
/Length 1913
/Filter /FlateDecode
>>
stream
-xÚXQÛ8~ï¯È£h\K²-û±½Ù[tqW,º³O×{Ple"Ô¶²‘=¹ù÷GŠ’gœn ¦)Š¢Hê#e¶ÉàÇ6U‘f¢Î7²ÎÓ"cŦéße›gûõ 2y!Ò"^VF·…¨Ò¢âr³½Vòéé݇r¶áYZ–¼Ø<íçµJY¥µÈëÍSûŸäuõéaË‹,)þûôMËSYI†Ó2X¢HeU~ÂÓA“ð§Ï_‰ªéñ/ó|Ïÿ‰ñU;Û½€ò¨•å©ÈK´–"•eFf){ز,Ë.úï« Ã»“:½Ý|S§uÉË šWi)kA?ÔYrR­T×½ÂBu™¨ã±3B¦#ÎA½h¤d²Óz ^g†ïº%úlÆ+b¸qÚuz`U2›GÉ</?Ô¦è¡u×sšéä ­[&_þ  Múd´ÃÍávKë¢à~;£¥ý+zt¶Q‘jfx¦—AõÁNŸÐ*™'é¬OB@Æ ¾Ï¿¿”[«Û¡ÑHÉÄ £·Î¶Sƒ»ÇÑAŸi°±ý±Óÿ3ã+ €°¥‘ñ ‰5»cB÷ïHíÜû‡-¤sâ¦æ@•#™½í:{ö{@öÇ`XsPfpAth×¼òøåã¿ýò*úÕúg‹‹qÁý<–‰3ýÔjÐvr4¡³öût¤Q»'x%'jžHŽò¬¶ ;tÚ¥`WÆ!míô| ñÞºq©Î{‰+ç­ì⌎À˜ü@-ÔÛݾŸÇ\­¢Qz9Ð[Ko6Ó­sfש˜>íèõΖY5^ÎKH"ŸêƒBªßK*ÂV{lÀM÷6ÚŒìF D¨ÎY¢Bž¼˜6ÈÜ&ò0§ ¤RP¦†³àwöÆ'çSʯ†m¿3ƒº(Ä@]wWس§åqç5¿w^‹2ÀUôþV¼UÒ諃Å«d:Ê )‰@ žyà ÕR<NÓØ^? ˆnšÄ‚¼qË 1¿!çÓ39Kþ|ü}»SNû=ÔѼÑ6¶ƒ LDCêäçùµ«üüån‘s­§ÐdE7Žž­q£š‘Æ÷4«§1ïS$ÈÔ t « ‹È~êB{lEâÚšôNiʳ”—¢
-¥‰‡ÒôuŽÊå¤,‹Ò#ÅõgjÄö rˆ&‚à€qéR¹q)p
-q¿–D"­Y• ‘¹ÈjmËêÿ@CH®FlM‘e‡Hakâˆ4A~ŒJ
-í,7 >ßš§’ß&µšF;Ønn 1ûpݵÃÚÈuc0žº½¹§T?
-¯“Ä `ÄЖœè•
-Hg‘…žEÎJŸ°ÕËûkŽ½.{²úöúâ-Tšz§mØÀ"'©3V‡+úJZ•ø?Õ“²Û¦t¾¦¿  ,çóýÃì(êTÊ¢ºîUÞýò4KŒ_E‘â÷Ƶ¯Qd{‘¡O‹“‘ä
+xÚX_Û8ï§È£h\KòßÇöfoÑÅ]±èÎ>]ïA±•‰P[ÊFöäæÛ)JNœqºE€˜¦(Š"©)³M?¶©‹4M¾©š<-2VlÚá]¶y†±_ß± “"-r!àeet[ˆ:-j^m¶×J>=½ûðOÎ6<KË’›§ý¼VYÕi#òfóÔý'ùÇAGuzØò"KŠ‡ÿ>ýFÓò´ª+†Ó2X¢H«&«ý„§ƒ"áOŸ¿<ÕÐã_úù0žþã«r¶åQ+ËS‘—<h-EZ•™Q¤ìa˲,»è¿¯. ïNòôtóM“6%/ƒj^§eÕ2ø¡É’“ìô¨­‘}ÿ
+ 5e"Ç^·™Ž8ù¢ª’R†x½6ßUGôY—Äpã´#êôÀêd6&’y^~<È1LQ¦s×sÚéä4­[&_þ  MꤕÃÍávK›¢à~;£¥ýKzô¶•=‘­lÚ<Ó‹‘Cð£S'´ªÊ“tÖWA@Æ ¾Ï¿¿”[«[Ó*¤ªD›Ñ[g»©ÅÝã¨QglípìÕÿôøJ lid<(bÍî˜Ð½Ä;’ÆV9÷þa 霸©=ÐDéHfoûÞžýý1Ö¤6.ˆšnÍ+_>þûØ/¯£_­v¸Üσá*qz˜úQe'Gzk¿OGµ{âWr¢æ‰ä(Ï꺰C§\
+veÒÖNϬ—ê¼g¸rÞÊ.ÎèŒÈ¢h¡Á¾¨îý<æBh%ÒËÞ:z³á˜èáhÓ»>HÅôÑhÇ L8[Ú,²j¼œ—D>Õ/…T¿—T„ ¬ñØ€0š&îm´Ù­4DÈÞY¢Bž¼è.ÈÜ&ò0§5¤RP¦†³à÷öÆ'çSʯ†í°ÓF^b ®Æû+ìY‰Óò¸ó†_Ž;oDHàJz+ÞI©!úê`Dñ:™Œ¡£ Q’â™ÞR-ÅãT!pº
+M&PÄqíèÙi7jÓŽ4¾§YyŸ"A¦͠ì‚d,"û©ì±‰kkÒ;¥)ÏR^Š:”&JÓ×9*—“²,Jן©IW؃È!6Š‚O
+q¿–D"mX• ‘¹ÈjmËúÿ@CH®2#¶¦È²&RØš8"u£
+:åô³¡&Ä«»Û†ý5é˜âB€û}Ye¡ødÉ °]B楖x¬†Í@”üizT(þ¶Úxe訳vTn3o-òÁa^¨ª1ü8Háã=ô6³¶µ{Ó‘¡š»hW”P·Šj‰v¢æwЮ„Z[Š´»ƒhM 5ƒ© º¡s?‡+ì
+ïp,'èñ+)jä‘jåQúk ©ï¯‘ÙYºÝÕ¡Eâ¦Á§âÛð´â·I-§Ñ;ÀÍÍ$b®»Ö¬Ý‰ÜQµ㩺›{JýÐà4;,ÿ‰f`¨º ‡W$‚7€Úù«1[Ë/¥nÆÏX «Eš Q S£»»·ž;šWïP{“øÄDN)ój=u”ö¬ÊùßC;»òÕ]Û Ñ_;Œ`ÝÄF
+q…7ÉGb†N0bèKNôJ… $ȳÈBÏ"g¥O Øêåýµ G’^—=Ys{}ñJE½Ó6l`‘“TÈ‹«Ã}%­JüŠÆ‹ŸêIÙmS:_Óß Р*çóýÃì(š´ªŠúºWy÷ËÓü-1~!EŠß×¾6F‘íE†>5.NF¸áb¢¸]mþpùv¹ÿ`Vjendstream
endobj
-1548 0 obj <<
+1541 0 obj <<
/Type /Page
-/Contents 1549 0 R
-/Resources 1547 0 R
+/Contents 1542 0 R
+/Resources 1540 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1545 0 R
+/Parent 1509 0 R
>> endobj
-1550 0 obj <<
-/D [1548 0 R /XYZ 85.0394 794.5015 null]
+1543 0 obj <<
+/D [1541 0 R /XYZ 85.0394 794.5015 null]
>> endobj
350 0 obj <<
-/D [1548 0 R /XYZ 85.0394 769.5949 null]
+/D [1541 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1551 0 obj <<
-/D [1548 0 R /XYZ 85.0394 576.7004 null]
+1544 0 obj <<
+/D [1541 0 R /XYZ 85.0394 576.7004 null]
>> endobj
354 0 obj <<
-/D [1548 0 R /XYZ 85.0394 576.7004 null]
+/D [1541 0 R /XYZ 85.0394 576.7004 null]
>> endobj
-1552 0 obj <<
-/D [1548 0 R /XYZ 85.0394 544.8207 null]
+1545 0 obj <<
+/D [1541 0 R /XYZ 85.0394 544.8207 null]
>> endobj
358 0 obj <<
-/D [1548 0 R /XYZ 85.0394 403.9445 null]
+/D [1541 0 R /XYZ 85.0394 403.9445 null]
>> endobj
-1553 0 obj <<
-/D [1548 0 R /XYZ 85.0394 368.2811 null]
+1546 0 obj <<
+/D [1541 0 R /XYZ 85.0394 368.2811 null]
>> endobj
-1547 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1540 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1556 0 obj <<
+1549 0 obj <<
/Length 69
/Filter /FlateDecode
>>
stream
xÚ3T0
endobj
-1555 0 obj <<
+1548 0 obj <<
/Type /Page
-/Contents 1556 0 R
-/Resources 1554 0 R
+/Contents 1549 0 R
+/Resources 1547 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1545 0 R
+/Parent 1551 0 R
>> endobj
-1557 0 obj <<
-/D [1555 0 R /XYZ 56.6929 794.5015 null]
+1550 0 obj <<
+/D [1548 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1554 0 obj <<
+1547 0 obj <<
/ProcSet [ /PDF ]
>> endobj
-1560 0 obj <<
+1554 0 obj <<
/Length 3198
/Filter /FlateDecode
>>
@@ -6298,49 +6191,49 @@ xÚÍË’ã¶ñ>_¡K*šªŒ7ÍiýØd}p{o¶«Â‘8#ÖJ¤,R;ž|}ºÑ
q@ÏÉÉ
»[ƒbä]Ža «”ç±|4šÄ­¸0^áZ×ÆJ}Èõû^¸áràj/+ì´næ«Ý¢Â‡bÚ†=ßLdNŸAo4V”3‘SY’Q@÷Å Ô bœQf¢»‡Ê´pû‰“<r[Uœ+üx[-ÈF!âuQç¸RÔ·¬Á5p!‹k rac´ </ÚuY7'‘LyVx[ìa_ËÆÙe.šIHÌ•çöƒ¸e÷L†x&µþ¶» Æa—»~K[•ÚLŸ—u8`€áç:ìíÂ`Ø7†‘¸1©ãღ#h¾ýá'G2ÞÐØ#ÆCìT¿—ëYnË“¶'‘Rg JBº+–Œñ…õU׳ýzñ
ÖgM± q^Pב"Ü*ïJ¬}9ÊôÅ9u•½Ma®¨«„¬ÖbP„sÉ dKFè±2dw£CF:ñPïBFã!¤C‘Ÿ·(9˜p@Ê@èë‹òˆq6F™‰xT¨âTD_ZÈœW¡¸8öõëýGz<i=Ô°…¼¦BNƒñø¸ˆ=º†s/ÞÎß0^pw$Vóz]®®;¼¿‡ä‚6žq)^i·¥‘ºé«' Ìaüs¹Ú…ÞðøÉþð…`¤1ô¦«6å¶ì ÞÆÚ×åüÜ/Rü‹ý‘êb:ÅÅ#¡.³©k @;“‚®*kÌÌkå7V°
-*3ëÛk
+*3ëÛk
endobj
-1559 0 obj <<
+1553 0 obj <<
/Type /Page
-/Contents 1560 0 R
-/Resources 1558 0 R
+/Contents 1554 0 R
+/Resources 1552 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1545 0 R
-/Annots [ 1566 0 R ]
+/Parent 1551 0 R
+/Annots [ 1560 0 R ]
>> endobj
-1566 0 obj <<
+1560 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [356.2946 363.7923 412.5133 376.6291]
/Subtype /Link
/A << /S /GoTo /D (address_match_lists) >>
>> endobj
-1561 0 obj <<
-/D [1559 0 R /XYZ 85.0394 794.5015 null]
+1555 0 obj <<
+/D [1553 0 R /XYZ 85.0394 794.5015 null]
>> endobj
362 0 obj <<
-/D [1559 0 R /XYZ 85.0394 769.5949 null]
+/D [1553 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1562 0 obj <<
-/D [1559 0 R /XYZ 85.0394 576.7004 null]
+1556 0 obj <<
+/D [1553 0 R /XYZ 85.0394 576.7004 null]
>> endobj
366 0 obj <<
-/D [1559 0 R /XYZ 85.0394 479.565 null]
+/D [1553 0 R /XYZ 85.0394 479.565 null]
>> endobj
-1563 0 obj <<
-/D [1559 0 R /XYZ 85.0394 441.8891 null]
+1557 0 obj <<
+/D [1553 0 R /XYZ 85.0394 441.8891 null]
>> endobj
-1564 0 obj <<
-/D [1559 0 R /XYZ 85.0394 424.9629 null]
+1558 0 obj <<
+/D [1553 0 R /XYZ 85.0394 424.9629 null]
>> endobj
-1565 0 obj <<
-/D [1559 0 R /XYZ 85.0394 413.0077 null]
+1559 0 obj <<
+/D [1553 0 R /XYZ 85.0394 413.0077 null]
>> endobj
-1558 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1552 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1570 0 obj <<
+1564 0 obj <<
/Length 4323
/Filter /FlateDecode
>>
@@ -6363,23 +6256,23 @@ X1z}¦;g¯®d)±›JÚý&¬Ý¢ìt5ÎÆk'¹Ðb}Ò¯DkoÛmbFA÷#cã.R[ÏU[Ó³­îkš/Ñ“¡ÎŠ_ëMšÝï
;§¢N¡¡ Š¸óú^£t¥§Ÿw±+=CˆÇ¯ôŒð#ã5D6
t…U.†_ñ ‚±ÖVt„àj]
‰¹gÚ¨lo(kth…gÚÊliÒYìûˆ‚ApzÚRŒï4E£ÑM¼¿íEü€iª@žOEÛàIÑ¢Ðm¶õ‘ëâJ©ƒZË8lgƇŒå}µhTꀗ3åªõ!–ð ÔiÑ̲@¥ðöó ¤ù}ºr”<âÔèNÉ êqPY Ìóþ&¿(O8½>Å[Þ4
-z_ °<^„V—£ÎT‚˜P{ÐQ:÷ôžBò#ºLtèùî™P¥³¯ñsÔƒoFyè?amÕךºbhûºíµâŪãšo S.uOo÷%öÙO»á7Ž»½O»ÿo¿ê“Sàoxf"jˆ¡E~~ði¸À̽Æoq|éûqÞ ý›¿Vß}˯S~p9aÏà{¬DZ#¬xi”|K/À<+ÛÏ þ¿x¯õendstream
+z_ °<^„V—£ÎT‚˜P{ÐQ:÷ôžBò#ºLtèùî™P¥³¯ñsÔƒoFyè?amÕךºbhûºíµâŪãšo S.uOo÷%öÙO»á7Ž»½O»ÿo¿ê“Sàoxf"jˆ¡E~~ði¸À̽Æoq|éûqÞ ý›¿Vß}˯S~p9aÏà{¬DZ#,då¾¥`ž•íg Pÿ_yâüendstream
endobj
-1569 0 obj <<
+1563 0 obj <<
/Type /Page
-/Contents 1570 0 R
-/Resources 1568 0 R
+/Contents 1564 0 R
+/Resources 1562 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1545 0 R
+/Parent 1551 0 R
>> endobj
-1571 0 obj <<
-/D [1569 0 R /XYZ 56.6929 794.5015 null]
+1565 0 obj <<
+/D [1563 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1568 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F11 1353 0 R >>
+1562 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1574 0 obj <<
+1568 0 obj <<
/Length 3057
/Filter /FlateDecode
>>
@@ -6397,97 +6290,99 @@ l˜MôÆ'AŠ¿ÇqÙ„{ûÁZaß P"ÌGÊ–©Di82:—T¡Ëµ>¤[n¤,ÍÆTË–èŽýaeìL-±sòÙ‡@*Z¢\k?’h[
‰¿Ò
„€Ø*YjøÓÐÓq½xùz¬Ê• ¹Øjp '!Ø“
°³cŠ$ØÎçîƒišd;qî®+rw«Q÷å iû½à­Œ+h=óàâCxÇ þª`P‰8KBÿùÙ}|~Y¯û’hø'ƒcß›ù[¦v “ñ •/-‰£K%WÒ
-ÂÛmãn}ãÔ†H‰— *–³«³ Ûa”4ÒΞ8·M65-m¾Á%sßPÛŸÓ÷Þne¯( ›îõ Û^7Àó¶bg˜Xðt(¤€ðòœŸß}wNy©n&¯W¦,ŸmLãoQÑœ_T$ð¯1_Kÿ÷?pŸ1(ÀÒpús‚‚­ž†Yâ&…Ö软ˆþ¯:ûSÿ+/yÑendstream
+ÂÛmãn}ãÔ†H‰— *–³«³ Ûa”4ÒΞ8·M65-m¾Á%sßPÛŸÓ÷Þne¯( ›îõ Û^7Àó¶bg˜Xðt(¤€ðòœŸß}wNy©n&¯W¦,ŸmLãoQÑœ_T$ð¯1_Kÿ÷?pŸ1(ÀÒpús‚‚­ž†Yâ&…Ö¨lwæþ¯:ûSÿ,byØendstream
endobj
-1573 0 obj <<
+1567 0 obj <<
/Type /Page
-/Contents 1574 0 R
-/Resources 1572 0 R
+/Contents 1568 0 R
+/Resources 1566 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1545 0 R
+/Parent 1551 0 R
>> endobj
-1575 0 obj <<
-/D [1573 0 R /XYZ 85.0394 794.5015 null]
+1569 0 obj <<
+/D [1567 0 R /XYZ 85.0394 794.5015 null]
>> endobj
370 0 obj <<
-/D [1573 0 R /XYZ 85.0394 769.5949 null]
+/D [1567 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1567 0 obj <<
-/D [1573 0 R /XYZ 85.0394 752.0459 null]
+1561 0 obj <<
+/D [1567 0 R /XYZ 85.0394 752.0459 null]
>> endobj
374 0 obj <<
-/D [1573 0 R /XYZ 85.0394 752.0459 null]
+/D [1567 0 R /XYZ 85.0394 752.0459 null]
>> endobj
-1576 0 obj <<
-/D [1573 0 R /XYZ 85.0394 723.5337 null]
+1570 0 obj <<
+/D [1567 0 R /XYZ 85.0394 723.5337 null]
>> endobj
378 0 obj <<
-/D [1573 0 R /XYZ 85.0394 642.6584 null]
+/D [1567 0 R /XYZ 85.0394 642.6584 null]
>> endobj
-1577 0 obj <<
-/D [1573 0 R /XYZ 85.0394 613.9312 null]
+1571 0 obj <<
+/D [1567 0 R /XYZ 85.0394 613.9312 null]
>> endobj
382 0 obj <<
-/D [1573 0 R /XYZ 85.0394 133.1977 null]
->> endobj
-1578 0 obj <<
-/D [1573 0 R /XYZ 85.0394 104.7573 null]
+/D [1567 0 R /XYZ 85.0394 133.1977 null]
>> endobj
1572 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F22 973 0 R /F14 976 0 R /F39 1173 0 R >>
+/D [1567 0 R /XYZ 85.0394 104.7573 null]
+>> endobj
+1566 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R /F14 980 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1581 0 obj <<
+1575 0 obj <<
/Length 1991
/Filter /FlateDecode
>>
stream
xÚÅXmsã¶þ®_Á™ûPébÁ
Dűô›Ñb+ž¶]±íhà±ìVÔÙ­o÷ØPÏrUl‹eg¶- œ¾¦þ_¸æmU´«hk‚ƒ>A\Ö¨Èfˆe¼>¥‹
-æR¦L¨ N#2gYFÕªdl*ƒ ZÎGt 90˜fí¤ Íb+8~Ã4ká|†¤&/+BªÞyØæ@Žñ|èU{#›ÕS;ßwS2x¹,*L‡‰M2˜ã vÁ¦EèôIi›±Ï-âžšÅÒÆxÓ¶ÔR¶Pð¾Œö; EiúVÅ'ÇÛÔŽ¨š‡aÎv¡a3äH´äË¢M±\ ½>»úlBI+L6vK4†hik&KÁ]²D<J–_“„ŽÏþ“Ô2Òb‹ŸÝ«Îˆ)¼ØƒÓZm÷O¨e>™Ú/ªÙ=¬ÜÜnÃm”¼/üBRÛlͧ²ÙµÏ£uä†!—æú=žèÃ@ñ;CsQS:¯jvŽƒªÏG³béßÅmï a¸Žl6œ ˜J §qwj}®L p‘!\y½[ßa³’ˇڭª?ž†NI2æ,‡îƒCQsà³Ænm܇#CøùpaQ´ûgP¼¸³'Ùç¿÷ûWÿ·õ?öúW/pú±ë¶Ì8KE"¾ê¾-$Ës­ÆïÛ°ÐL²4çê8Íã€åH?cjx×9ì°Ôép-—ýA\ ‘,†ÕG2IY,$Uú¿1¡p`„9:·¡ 8ÛÈé­ý¿1½îi9½:´Há)x™”póKsk«è7°B.”Š-SH[í«ØŽÓëu½m@Ç(PÓÏCd«ftž1àùJ0¡娿τ‚݇”£øP0‘¶ÅEÑ-„ˆÖ¬ËeSá5›˜þñÝŸ( ¨”Û„3ƒ¨£¤Cs7ïP@MxáäùêhyvXëìhKߧ™´kqàGÔì*,ãZÙD€—³‚šÿš í
-2´èî‰]xBH&Žáì²¾‡«/vž.ˆÀ`oFÐáÄ 7]«¶»AÑE³3óÑR?E*É™Ìò,
-ýôe®A¦ó|x·zY`îG“–© ¹„b±JdøÊ%tîÌsÿLè^7ÎÇž.Kú¹Úëu±=R]3–¤yì£OB˜¹w rú<~HbìlËÖÖM`±…¾v›|=MÜ‹
+æR¦L¨ N#2gYFÕªdl*ƒ ZÎGt 90˜fí¤ Íb+8~Ã4ká|†¤&/+BªÞyØæ@Žñ|èU{#›ÕS;ßwS2x¹,*L‡‰M2˜ã vÁ¦EèôIi›±Ï-âžšÅÒÆxÓ¶ÔR¶Pð¾Œö; EiúVÅ'ÇÛÔŽ¨š‡aÎv¡a3äH´äË¢M±\ ½>»úlBI+L6vK4†hik&KÁ]²D<J–_“„ŽÏþ“Ô2Òb‹ŸÝ«Îˆ)¼ØƒÓZm÷O¨e>™Ú/ªÙ=¬ÜÜnÃm”¼/üBRÛlͧ²ÙµÏ£uä†!—æú=žèÃ@ñ;CsQS:¯jvŽƒªÏG³béßÅmï a¸Žl6œ ˜J §qwj}®L p‘!\y½[ßa³’ˇڭª?ž†NI2æ,‡îƒCQsà³Ænm܇#CøùpaQ´ûgP¼¸³'Ùç¿÷ûWÿ·õ?öúW/pú±ë¶Ì8KE"¾ê¾-$Ës­ÆïÛ°ÐL²4çê8Íã€åH?cjx×9ì°Ôép-—ýA\ ‘,†ÕG2IY,$Uú¿1¡p`„9:·¡ 8ÛÈé­ý¿1½îi9½:´Há)x™”póKsk«è7°B.”Š-SH[í«ØŽÓëu½m@Ç(PÓÏCd«fÂGÏ3\ _ &´¢õ÷™P°ûr
+&Ò¶¸(º…Ñšu¹l*¼&`sÂ?¾û¥•r›pfu”thnã¦â
+¨©/œ<_-Ïkméû4“vm#üˆ‚š]…e\+›ðrVPó_3¡]A†Ý=± O© ÀÄ‘@#œ]Ö÷2põ¥ÑγÑìÍ:œ˜á¦kÕv7(ºhvf>ZêÇ¢H%9“YžE¡Ÿ¾Ìõ1Ètž€ïïV/ ÌýhÒ2•á#—P,V‰ _¹„ÎÀyîŸ ÝëÆùØóÀeéO?WÛb½.¶GªkÆ’4}ôI3÷î
+ ùþ†Jow|1÷ßÆg–2ÎÓ(…›™ÔêkB)Î!”˜j<”à` …D
+Ñ+ÕØ«2ï+Ô‹ß°‡ÐUPà²L†up0™Â™/X3ÄBK*þ¬äûÇnÇ,ýw«Ï%¹endstream
endobj
-1580 0 obj <<
+1574 0 obj <<
/Type /Page
-/Contents 1581 0 R
-/Resources 1579 0 R
+/Contents 1575 0 R
+/Resources 1573 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1588 0 R
+/Parent 1551 0 R
>> endobj
-1582 0 obj <<
-/D [1580 0 R /XYZ 56.6929 794.5015 null]
+1576 0 obj <<
+/D [1574 0 R /XYZ 56.6929 794.5015 null]
>> endobj
386 0 obj <<
-/D [1580 0 R /XYZ 56.6929 769.5949 null]
+/D [1574 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-1583 0 obj <<
-/D [1580 0 R /XYZ 56.6929 749.9737 null]
+1577 0 obj <<
+/D [1574 0 R /XYZ 56.6929 749.9737 null]
>> endobj
390 0 obj <<
-/D [1580 0 R /XYZ 56.6929 670.1208 null]
+/D [1574 0 R /XYZ 56.6929 670.1208 null]
>> endobj
-1584 0 obj <<
-/D [1580 0 R /XYZ 56.6929 644.0935 null]
+1578 0 obj <<
+/D [1574 0 R /XYZ 56.6929 644.0935 null]
>> endobj
394 0 obj <<
-/D [1580 0 R /XYZ 56.6929 176.1924 null]
+/D [1574 0 R /XYZ 56.6929 176.1924 null]
>> endobj
-1585 0 obj <<
-/D [1580 0 R /XYZ 56.6929 144.3484 null]
+1579 0 obj <<
+/D [1574 0 R /XYZ 56.6929 144.3484 null]
>> endobj
-1586 0 obj <<
-/D [1580 0 R /XYZ 56.6929 85.5791 null]
+1580 0 obj <<
+/D [1574 0 R /XYZ 56.6929 85.5791 null]
>> endobj
-1587 0 obj <<
-/D [1580 0 R /XYZ 56.6929 73.6239 null]
+1581 0 obj <<
+/D [1574 0 R /XYZ 56.6929 73.6239 null]
>> endobj
-1579 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F22 973 0 R /F62 1379 0 R >>
-/XObject << /Im3 1530 0 R >>
+1573 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R /F60 1366 0 R >>
+/XObject << /Im3 1524 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1591 0 obj <<
+1584 0 obj <<
/Length 2555
/Filter /FlateDecode
>>
@@ -6500,41 +6395,41 @@ xÚÍZ_sã6ϧð[™šÇÿ"Û§t7»—Înº—¤Om§£ØJ¬[YÊYò¦éÍ}÷J–ÙNwf'¦@¢
ŸtåçÖN
Ö"¶«EÍÊR¦«²·Ãl—Œó.¬mãÎC‹ÇŠv4®Z< áhφëvÖE¶tiɬ·àÒÊ0! 8ÆwãÍ„EÁ97AÞe»¡xe´L‹4OÝÿ^¼mÑÌk¡»+‰%I„!ôôßhÛ¨·ng3(÷ëßÃmÆï¡
„GÌÔHøß÷C{Ðà96æsü ¹çƒÞÒÉË×0¸»
-Ô›JÙ  ¤l^¡©NA8‡›ù&’I H]¬ê(ã:RÚ˜=#ò}Þ̇
+Ô›JÙ  ¤l^¡©NA8‡›ù&’I H]¬ê(ã:RÚ˜=#ò}Þ̇
endobj
-1590 0 obj <<
+1583 0 obj <<
/Type /Page
-/Contents 1591 0 R
-/Resources 1589 0 R
+/Contents 1584 0 R
+/Resources 1582 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1588 0 R
+/Parent 1551 0 R
>> endobj
-1592 0 obj <<
-/D [1590 0 R /XYZ 85.0394 794.5015 null]
+1585 0 obj <<
+/D [1583 0 R /XYZ 85.0394 794.5015 null]
>> endobj
398 0 obj <<
-/D [1590 0 R /XYZ 85.0394 433.214 null]
+/D [1583 0 R /XYZ 85.0394 433.214 null]
>> endobj
-1593 0 obj <<
-/D [1590 0 R /XYZ 85.0394 408.8744 null]
+1586 0 obj <<
+/D [1583 0 R /XYZ 85.0394 408.8744 null]
>> endobj
402 0 obj <<
-/D [1590 0 R /XYZ 85.0394 340.1059 null]
->> endobj
-1594 0 obj <<
-/D [1590 0 R /XYZ 85.0394 309.992 null]
+/D [1583 0 R /XYZ 85.0394 340.1059 null]
>> endobj
-1595 0 obj <<
-/D [1590 0 R /XYZ 85.0394 232.654 null]
+1587 0 obj <<
+/D [1583 0 R /XYZ 85.0394 309.992 null]
>> endobj
-1596 0 obj <<
-/D [1590 0 R /XYZ 85.0394 220.6988 null]
+1588 0 obj <<
+/D [1583 0 R /XYZ 85.0394 232.654 null]
>> endobj
1589 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+/D [1583 0 R /XYZ 85.0394 220.6988 null]
+>> endobj
+1582 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1599 0 obj <<
+1592 0 obj <<
/Length 4374
/Filter /FlateDecode
>>
@@ -6551,131 +6446,130 @@ q ‚½–JLk*)5KÉã6ºJfÂwóL V¤K*z\R)|IESIEÏüpõwêXµÛ²n¨u¨¯èi}¥ðõŠ zR\p#¨4Œ]œ[‡
:õÆöº÷üɈAýØ»s£‹´Øõú5¥›_54¤w ì[–]uIð9Ò,7]KãÖî$ÆÈSàIÙŒÊ<ë†1¯aà"BêcÑLóåí7¦Nr~³÷«¶réªoZ—îôžÊ”Ês,({¦( /ŠPrŒ”¦A¦†Ùg Ò=1U4d¯ Ü{®]@â¨åÊ·¬ý2\‹/C*+]”v_n2p9Ü#á<K,¡œt¸4q>Q€+7ãk™Ç‡ñ'ÇMR¬HžuøUÕ'=K1.ËbÞDÎ/­íø­J¢(T¨oCƒÊÝbŽsL¿à°z4îÁe=:?H’ñ’Nf­zò±-tÞìëM~:£Ë:áÀû–¤Ÿ%Eß<(Þ„o:š.ôAbù´”!5Q<¸k—áÈÌ÷Aìf¬k0‡ˆ(‰/P>w¸0¼õµ(S‡ÒXµzêââê¼8>8Hì5l žj?GoŠ¡V} ÛÇD¯Kê=ÈÓŸxSñÃBSWMξáaW6]¸[f,¥…ÐNÕOpdÐåwžÌ¥?É\ãQ…Ë“`ôªöÓ’OçSè2ažq)íÔ?­ê»º§ÃI˜òݸ0ô±¹ö‡™Æûê\6­Ã™ ¼lÁá—wáÃ8¦_ï}“ã›wø@Ï Ož£è¬òüéGn7î<ÂZW=ß–Ÿ‰-\‡w×B-øì©Nß·]W߸2—ðP[h:|ÇwÃD ö†0IAºý¦@»¡Ÿä$ôP?ƒµ§¾Ôîv14ì”èV
ë/ˆALçœ/ ;ztà~‹çò $‚|„Ç«líî³_jp¼X.eÒØzG \‚¾•©Š½Ë´Y؃ôÔ`k¹.ÆS;‘–Ä¿^Òk7ßâ Ä#µ¹‚ Œ¢Ä‡¤/CEE”c×Â!€3ˆàÿŸo±
"}9Dˆˆ¬jw>@³zæÛ‡†âëÛ gxß©[ñ>l^€7à&¥èÞvñ¬«^
-µp¬"©â¥€.LðÃÀë”za¨°IšLž¤éïÜ%ó~ضþ딶fÒæÅ8 JrU†ÿ6–(æñÖä‹ÿ;m¨v‡”œŸ¨ij“@)d\Ê#Îÿ±³þ?tâbendstream
+µp¬"©â¥€.LðÃÀë”za¨°IšLž¤éïÜ%ó~ضþ딶fÒæÅ8 JrU†ÿ6–(æñÖä‹ÿ;m¨v‡”œŸ¨ij“@)d\Õ/㿱³þ?â`endstream
endobj
-1598 0 obj <<
+1591 0 obj <<
/Type /Page
-/Contents 1599 0 R
-/Resources 1597 0 R
+/Contents 1592 0 R
+/Resources 1590 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1588 0 R
-/Annots [ 1602 0 R 1603 0 R ]
+/Parent 1597 0 R
+/Annots [ 1595 0 R 1596 0 R ]
>> endobj
-1602 0 obj <<
+1595 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [55.6967 314.0348 256.3816 326.0944]
/Subtype /Link
/A << /S /GoTo /D (rndc) >>
>> endobj
-1603 0 obj <<
+1596 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [268.5158 314.0348 332.4306 326.0944]
/Subtype /Link
/A << /S /GoTo /D (admin_tools) >>
>> endobj
-1600 0 obj <<
-/D [1598 0 R /XYZ 56.6929 794.5015 null]
+1593 0 obj <<
+/D [1591 0 R /XYZ 56.6929 794.5015 null]
>> endobj
406 0 obj <<
-/D [1598 0 R /XYZ 56.6929 769.5949 null]
+/D [1591 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-1601 0 obj <<
-/D [1598 0 R /XYZ 56.6929 752.2372 null]
+1594 0 obj <<
+/D [1591 0 R /XYZ 56.6929 752.2372 null]
>> endobj
410 0 obj <<
-/D [1598 0 R /XYZ 56.6929 610.516 null]
+/D [1591 0 R /XYZ 56.6929 610.516 null]
>> endobj
-1360 0 obj <<
-/D [1598 0 R /XYZ 56.6929 579.8656 null]
+1342 0 obj <<
+/D [1591 0 R /XYZ 56.6929 579.8656 null]
>> endobj
-1597 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F22 973 0 R /F48 1253 0 R /F14 976 0 R >>
+1590 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R /F48 1258 0 R /F14 980 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1607 0 obj <<
+1601 0 obj <<
/Length 2364
/Filter /FlateDecode
>>
stream
-xÚµ]sã¶ñÝ¿BòLˆÃA€sO—‹}uÚ8©OyºÜÜÐ$,qÂE¤ìªmþ{X"EÊvëéè `±Ø]ìVlAáÇZ*âp¡âHÊä"-/èb kŸ.˜Ç :¤`ˆõýêâݵP‹˜Ä«‡-M¨Öl±Ê¾,?þåÃ/««»Ë€KºŒÈe #ºüþæöœ‰ñóñçÛë›O¿Þ}¸Táruóó-Nß]]_Ý]Ý~¼º ˜– ösOá̆뛿]!ôéîÃO?}¸»üºúñâjÕË2”—QaùãâËWºÈ@ì/(±–‹'PÂâ˜/Ê‹P
-"C!º™ââóÅß{‚ƒU·uNRh"5W3
-älÁ‰¥ä# ʘD‚ §A+´PJ—y•ûÌ ˆŸÛ¤5¥©Z/ñ.)Ëdg%~w²ÁÅÐ .¤r{"P|È S%¥yûÆüÀF!‰ÒT÷œD¯àäó¥¼ÊÛ¼®p&©2~m’µñGñó,®6¦ççˆÄbB9 y(Æ”˜ˆH†^3`NHØÖ˜]Ûà Ýš­Is˵±ŒŠhiáÂ/&í ö¶Î;rO³»dzip[;Ë85‰ÀoãÜ3mª´ÞW­?7#–\TÈ×L/‚þŸS¤¯aG&#5ÃŽVˇ$Í‹ÜÎY¾täÕ+IVæUÞ´»Ä[
-$hOÇb¬§]Ž4E.…ë®Kƒ3휽߷8YÕ-ÎÔp讘*µ¼†sܬùGRn óŒ8E¾Ñ£~,¸¤"ÕÞYìüv—?"~7‡K¶l:^¿7ñ6eÅ¢<P;é“ûÂ{_]„îýU€õl„ÀèÁb Z’WzºòžnY|S¼q"¤ô-Ïþ—“ Û0<º±¤X×pi›1ÁŽàŠÞu˜Iw¦¢'tQsž‹q¡"JD½àúÁÿ_áSp~{o³§O ŽTb&@@òYfȘu$;LðÓl¼5e~ Jsc¿Ë‰igß
-oó°
-,Oµ9ïÐ4$K3„@§¼àÐ~0Ü0ãJº¯th ¢…6° ÈOºÃz‰‹ µc˜´,”ûÆgÐ{_”t ËgϤ=)_Ðß
-RœØŸˆNlt¤
-´k®„á‘+ÝNŽÏ‹Œ+Y]&¹ßïËE€öUþÇÞ¸ºF¦ª68`ÅÍ£ñŒ±¥sM¾¼iq]€ûŽžum,ÒÁãcyÎQá…¤]YäëØ/¥„2>÷r²q #Dšô¡K ±éÞ‚Íëq;ãOÅÙzµ`_¾î'L¸7÷AªS‘S? £—eÈKãñˤM7>¸€è‘ͤÃ2¶È‘ex 9V´^op;~™^uéIúT`Xß$×î©p®`/Œv•¤@kÀ±ØSö¢jÕ[Y¬ŽE|7öåÐLÅ(é—_tk[(+ѹõñ¹pêܸ(Ž}KH¦o÷mO0RœqíH«ÁÁç][‚*Xÿ5†”YuÛ¾hÆ[ ÁÅ\§ÞŒ®YÑà\·Á@é’·‡wÉ<6õˆ#Ú© \ªªå-ÜUæ÷í·ÛÚöD¦O¹ Á­(ßÚ¦LÒ ÌäŒDð–Òœª>XMIB±'ûºÁQ‚
-›!%Q±/‘Ò'¤8gˆE·8½š/.£³ÄäKLèYÎ kF}Yêýä„P…ò„ždü,½.ú‡#Ù]ÉT=+C‹!ØÙX]Æâ<+˜Ç,BØh6®W#Eߧp ÞŒOøfÄôíŠ4Œ0í“»XÚQ¹/©Ú—÷.À‚«¨å1DçýóÕ‘Í]ü‚õ-Îsq%5Xƾ);¯²Ã Ø·°{CÖdFÙ1ÔÇLðS 4ѶbD‰®6´"ÈÍg¢Vy,ê3¶.NB–`‰ `¶¥½=buô‚ÁiÀ¶3Ý‹)ÔEŸÙrXI-1˪¯5f£ö‚[¨ý5øu_ä.Æo¥Ãœ](õ„ ¸£öP×lqGÛ*Ñ·ÄÚ¾Žô ‰¯6“ÆQˆÛ<Í:D”ñµ ±Ø÷…Šz½öæü¿7Åz"ÇfSP­Ú †Ò~AŒ¾]0|Ãrm@Àïùµ}Š[ým“vƒ»Ï6áü¹PY4iuþjáãg_y™»K𸠡¯sêé7ù?Íúf“ÛpS0+’?°94 Å!üÍ÷¤s'v»ÚÌìvÏ Tû¢8Šð~ÈóÑÉ`lýÕŽ:JmÏ9MŠ‘~àÔz¬±§dWõ6Ð^ÃNÓMÙ³}„9©—êѶÌÜï=!Ï•oQ .G¨¸ù<Š8ÔøÜqžä¼¥ l*
+xÚµ]sã¶ñÝ¿BòLˆÃAsO—‹}uÚ8©OyºÜÜP$,qÂE¤ìªmþ{Xâ—,·žŽ¸
+à·qî˜ÖeRÊÆ›C.Êg„‡,\xݾ¤H)^ÃŽ"Lj†P-ã$Ë33gø
+§X‰Ó"+³ºÙÇÎ`±zĵ¤*j7‡þ"*»FŒõ¿;½/²¦ÉÊ͈<ʧÝJµGHÐ^‰¡ž÷Ò¹®»*4Î4[X¬qv}hp²¬œ©àÐ} 1ÇWjy çØYý¸Øåú;qŠ|Y¢'ý"pIyŠ+³˜ùÝ>{Dü®×lY·¼ÄnoìlʈE[y0 ¶ÒÇëÜy_UæG„ÖÀx6B`ôO`1-É+=]9O7,¾)ÞXRú–¥ÿËÊƉLÜXœo*¸´m˜`GpE@ÌZ'{ÝLѼ]ÔÜŸçbœ¯ˆA'xxAðÿWx㜟GÎÛÌéSB€#•˜ |–)2fÉ cüÔ[gM©ƒÒìØí²bàÑÚ7
+â¯a@Q0ž—uÚá{ý Sy¦t:ÅJÂOz `¡}ò­vX—¸˜Pkµê2c”¨@Å…„ Á^Êh!Q .æ%ßœÀgb&›Q™Ä%U’öÆn Ã)Äñ¦ÚáL®ŸìÝüÇ’?“á`²+'ÌG*‘,usñŒL9ˆäªê)ÓÏs
+YÐÞX*ÈY<’Ë¿êc'¤ÚsöF öæí#‡-~ gøy=uÊRDø\]ÒxäÓ‰Æk¤Ž*`­ñ qgÀ
+4k¶„á-íNŽÏƒŒ+iUÄ™ÛïÊE€eöÇAÛºF¦Ê&{<bÅ̓ጱ¥uM¾¼kp]€uKϸ6é`‡Œñ¡¿¼ä¨p‰BÒ¶,ru쌗RBŸ{9™8†"‰»Ð€%ÈX·oÁz‚Žõ¸™q§âlÕZ°/Ût &Ü›¹ ժȪ‹…AˆKSä¥vøEÜ$[\@ôÀdÒ~›gÈ2¼„,+a¸ÞàvÜ2 ¼:ªÂ=’±À°¾Ÿ4®­µ.q®`'Lh+I3Ö€e±£ìD Uge‘:ñíØ•C3<£¤[¾èÖ¦PV¢uëÓsaìܸ(ŽyKH¦o÷mGÐëSœqí@©ÞÁç][‚*X÷5ú”u›¾hÆ[õÁÅl§ÞŒ¶YQã\»ACé’5Çwñ<6qˆ%Úª \ªªå=ÜUêöv»ÊôD¦O9/òÁ­(ÞÚ¶ˆ¯HåŒDð–
+9U]°š’„bOvuƒ¥/6CJ
+¢¢P\"ŽHqîÏ n÷pz5_\g‰Éÿ–˜g9ƒ¬te©ó“9 ò刞dü,½6º‡#9xmÉTˆpVúC°³±ºŽ(Ä x–0YÚ‡°Qom¯FŠ®Oaœ!žp͈é»i-`Ú%w±4=¢âP Ry(Ö6À‚­¨å)DgÝóÕ’Ílü‚õÎ{sq%ÑXF®)Y¯2ÃØ7°{M6dFÙÔÇLð±…z!ѶbD‰¶64"ÈÍg¢V
endobj
-1606 0 obj <<
+1600 0 obj <<
/Type /Page
-/Contents 1607 0 R
-/Resources 1605 0 R
+/Contents 1601 0 R
+/Resources 1599 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1588 0 R
-/Annots [ 1613 0 R 1614 0 R 1615 0 R ]
+/Parent 1597 0 R
+/Annots [ 1607 0 R 1608 0 R 1609 0 R ]
>> endobj
-1613 0 obj <<
+1607 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [406.6264 463.8552 456.8481 475.9148]
/Subtype /Link
/A << /S /GoTo /D (tsig) >>
>> endobj
-1614 0 obj <<
+1608 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [140.5805 452.5676 196.7992 463.9596]
/Subtype /Link
/A << /S /GoTo /D (controls_statement_definition_and_usage) >>
>> endobj
-1615 0 obj <<
+1609 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [103.6195 409.8565 159.8382 421.9162]
/Subtype /Link
/A << /S /GoTo /D (controls_statement_definition_and_usage) >>
>> endobj
-1608 0 obj <<
-/D [1606 0 R /XYZ 85.0394 794.5015 null]
+1602 0 obj <<
+/D [1600 0 R /XYZ 85.0394 794.5015 null]
>> endobj
414 0 obj <<
-/D [1606 0 R /XYZ 85.0394 769.5949 null]
+/D [1600 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1609 0 obj <<
-/D [1606 0 R /XYZ 85.0394 752.3146 null]
+1603 0 obj <<
+/D [1600 0 R /XYZ 85.0394 752.3146 null]
>> endobj
418 0 obj <<
-/D [1606 0 R /XYZ 85.0394 717.6455 null]
+/D [1600 0 R /XYZ 85.0394 717.6455 null]
>> endobj
-1610 0 obj <<
-/D [1606 0 R /XYZ 85.0394 688.3332 null]
+1604 0 obj <<
+/D [1600 0 R /XYZ 85.0394 688.3332 null]
>> endobj
422 0 obj <<
-/D [1606 0 R /XYZ 85.0394 619.0499 null]
+/D [1600 0 R /XYZ 85.0394 619.0499 null]
>> endobj
-1611 0 obj <<
-/D [1606 0 R /XYZ 85.0394 591.4512 null]
+1605 0 obj <<
+/D [1600 0 R /XYZ 85.0394 591.4512 null]
>> endobj
426 0 obj <<
-/D [1606 0 R /XYZ 85.0394 513.0222 null]
+/D [1600 0 R /XYZ 85.0394 513.0222 null]
>> endobj
-1612 0 obj <<
-/D [1606 0 R /XYZ 85.0394 482.614 null]
+1606 0 obj <<
+/D [1600 0 R /XYZ 85.0394 482.614 null]
>> endobj
430 0 obj <<
-/D [1606 0 R /XYZ 85.0394 275.2452 null]
+/D [1600 0 R /XYZ 85.0394 275.2452 null]
>> endobj
-1616 0 obj <<
-/D [1606 0 R /XYZ 85.0394 247.6465 null]
+1610 0 obj <<
+/D [1600 0 R /XYZ 85.0394 247.6465 null]
>> endobj
-1605 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F22 973 0 R /F53 1328 0 R >>
+1599 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1619 0 obj <<
+1613 0 obj <<
/Length 3170
/Filter /FlateDecode
>>
@@ -6691,119 +6585,125 @@ v‰ªÙ¶sÁ&OrYÄ`#Œ|AöB¯—é¡©¤à @-³ÁÞpà#-|£%ã œ«Ý¤Iò4$5l6s®,’¢Ð6ÆH×8ˆõŽOî«šO
C£3Wh UF–Ù/—ÒÄKûò€‚¯¶‰ÑÙIyØõ-ƒ3„v‰4§ù) ô\ˆˆ‚TàSÃlè™YÅ`˜*õ…ø•²§.‹dÇ®ª£«âëaï~01`*Z8À£(¦ÇO0@›~14ãä×B'ÚæjêØ#Q -%9z»ß“¹(~ðUØ=¬Õ*¢WíGÞÁݵòM|÷H
MK'ÔíøÜMÙ—Üm@”fâ¤&ärTPe_´«ÞWE‚š
ÿÝñ,y
-üW‘‰>·ÕžÿÛâÞŠÕÕ7„BŽ4}H)Q_ϵ‡ªé¯¨cÅuO®»>÷ÿ+ÐMá?Ìü·‰ˆ? üÏÿÛ2üãOš%:ÏUü·•©b³<Is ÂLá]RûŒóðO0ÏYÿ/.ˆÅendstream
+üW‘‰>·ÕžÿÛâÞŠÕÕ7„BŽ4}H)Q_ϵ‡ªé¯¨cÅuO®»>÷ÿ+ÐMá?Ìü·‰ˆ? üÏÿÛ2üãOš%:ÏUü·•©b³<Is ÂLá]ÒôçáŸ`ž³þ_€ÖˆÃendstream
endobj
-1618 0 obj <<
+1612 0 obj <<
/Type /Page
-/Contents 1619 0 R
-/Resources 1617 0 R
+/Contents 1613 0 R
+/Resources 1611 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1588 0 R
+/Parent 1597 0 R
>> endobj
-1620 0 obj <<
-/D [1618 0 R /XYZ 56.6929 794.5015 null]
+1614 0 obj <<
+/D [1612 0 R /XYZ 56.6929 794.5015 null]
>> endobj
434 0 obj <<
-/D [1618 0 R /XYZ 56.6929 696.3453 null]
+/D [1612 0 R /XYZ 56.6929 696.3453 null]
>> endobj
-1621 0 obj <<
-/D [1618 0 R /XYZ 56.6929 666.0554 null]
+1615 0 obj <<
+/D [1612 0 R /XYZ 56.6929 666.0554 null]
>> endobj
438 0 obj <<
-/D [1618 0 R /XYZ 56.6929 459.1977 null]
+/D [1612 0 R /XYZ 56.6929 459.1977 null]
>> endobj
-1622 0 obj <<
-/D [1618 0 R /XYZ 56.6929 436.7104 null]
+1616 0 obj <<
+/D [1612 0 R /XYZ 56.6929 436.7104 null]
>> endobj
-1617 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R >>
+1611 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1625 0 obj <<
-/Length 3640
+1619 0 obj <<
+/Length 3660
/Filter /FlateDecode
>>
stream
-xÚ­Z[“Û¶~ß_±“kg,Wtž×Nœ6NëlŸ’L†+Q'©’”•m§ÿ½çà
-k®ðÀ™(
-y½»ÒF1£•
-=Û«Ÿ®þºWSü3Ê2cež` #
-nY¡‹ü:7Ë”TŽƒû®n†ù¢ªuÛÝßÌ3Îg÷Uÿ5íz.+ð s!XaŒt¯ü× ¾x+åhu~=Wœ¡iÎí¦ò“&$@ifa2Îéïûm»N¬¥Ë
-¡ü´eÕuSuÛ
-àAcï¼>÷ÕŸ­Úîdj¤û”}MO#DE;^Ñï˜_ua½H$<9"ýlÑ£½ËjO0>5„:-
-lDÆáÃR¥ bMW€îŸÏu&¼õãi¬°ÙÉRGsÃT=ÔÉ|h}â†;—3 g[VCÕíêÆŸñè
-[ÀÅf8€[½§ç}Ù#pЀx•†(ebÃÆq«=¬7˜½Y1{‹¢U¹›-wûm…'æöDiœ†4 ­'ÅÌN~Ÿ00qSO¢vÝ}‚_Š &¸•ŸÊ–4ÇäóñÐr!SðSFw¸Æn2?ëî0uärjØÜ;ýBC0ÅÍÔBÖi­‚D#·E19;–]sš>&äÄ~¬Ë¤ãbF*ý4eÒãüŒ”afA>@q9²M@ÛÄÞ3o2Å7)˜‹ÖͪM§æVE•¿•b5ˆ©UJ4C¶À„i$ôΓ¿$…Ýï£ U6g…²v*Ÿwî`†
-} ¦A•|<V'ÏfÔÆȦZ‚Æ+x:Ö1ÕžœÁ@[˜pЦÜUËÔ!4ã*àÁ9¹Ç0^
-yFéCâxëm{W¢6ÙÌ;/hæ1Œƒ^’S6[{-H€yUaèßn­„ É
-L™°<s”ÒÀ‹ÊÎ^áÁ^0\BÆóуø £I
-³…ù¬Nž¬¯BÖª¦ðZ ØêžúÀ(:‘ðt)I–Á©ìÓÐ ³$âwDt·k\rk‘spa&!óÔÚ˜¦KÀôT•žäU»Ý¶GWj«¤Ÿ} ÞÇ)>¡ñ·×'`V†Û#+L$Øâ¥Ïœ®Y.<þteÒ·jÍ2ЈQ¢2/Yx+JÏKÖØ(Y»Òc#Åæ–„:F¾±êA¤ì¢@œ8Ö<˜æ5_<tMåœ!²ò9åÝ=õ>Ê
-püLk°Þ±€@Q)Æsþ°ru50$+O¬ÑÒÌ^‘ISñcf-ဠ¨oíV‹Pz±–
-„Bþ g·@CYoƒmÃþ0 äŸ½&ßê'±òÒï«E½òÉY9êCd^ÐsTQ2'„˜=?K=ø¿LÜÀ£#Å{A¢ ^üæ¶ùÍ« ŽüÇ5y[¸ªÑÉयVmûÕ×SÓ²‰›çMõgï!}´mвjŒ´FEÞÓ‹ûàן ›Êt4{ :F=esO¡ÞU¾µñp¾è„}î¢ï|{álÑ&ñîÚG!§¨œ÷ÀåºÍ¬Š
-¬}²u.Bc×1ú êwåýx“º„ ~¦ešÙÌœe©DÒÀL˜'ÜäñÞÀcŽKŽ„/p_½-°äç«)ø°oáxd*øØ×Í"¥ä‚q‘?â_ø„ua¶ßÁ…FÃ1à2ú(“§ÕJ¨ŒåÊNE?½xHM–3‘ÛàEÃ}‡ÖÓ’Ÿ9 _rÙ2Fõ^Í
-¦d,‹Ñ/¤»<íSœÞQÞO·¥²;¶œ3Á LÐvw>O~îq3ƒL¹KŒ±‰:]…ÐÖ "Ír{,ï{êu‚†>Gn姺HJ-Q
-«)î¢(Ù@»—TB3@Ñ@’Õ-¨„²ÓÀ„Q©ç»êTY7$aøuq-ìwJU‘ðÍhnæêIïH“’¢ìR™ù¤d€…,Î%sºçªÂX*Œš…¥l=õ6ÒÎßVwsp³œa^ró›)êYWMÕ•[à%x=î+rá©›„ÜòbØv;bR¦FôfX+8tÔ½÷×^TFvâ†ÞÅ)þÌdˆ?§‹¨p-ï¨?¤…/>•rV1y¤b «ò°ˆ
-Átž¹/íh°[_SãÃèÓ¼8>~Á}š7Í`¬‹þT-BÝ‹»gòœ$pËLqa'$=øF0Îú!W£¼+¡ßÂ
+xÚ­Z[sã¶~÷¯ðä%òŒ…Å•7OÛ­lÚlÚÛ>$™ -Q'©”·ÓÿÞsp
+=Û‹.þÞ/8uŸÆäg”eÆÊ4"@-FܲLgéej2–(©œ÷MYuóEÞëºy¼š'œÏ‹ö+dír.Ë‘¹,3FºOþë_ÝJ9ZÃd|S™›s·)ü¤ PšX˜ŒsÚÇv[¯#k)Á’L(?mY´]Yå]YW üLÎÛüÐÔ^–Í•°³bѵÔÑmüÈb“WU±õ½õÉ(ìÝ;j w­’Ù»°JîV]vEÕQOFúï‘vh«Ù*_”ÛòJ̺GêÈ[’žL¦`©é;‹¦¼/–Ws¥³YYѳ‹
+,5,Ñ`P˜dÒ$©Ÿ¶Ëýšû|]0Ti2ûKU}/‘Û•EKïÄkT]Ú°L¥A¿MÙ\
+0záç\G–s%D 4×DËPI*_ºÊ./·1R8Ó=¹g ö·Ì‹]ãH%Ì(i_JL~è6g‰y1Kg•+-#J_ºÎv•¯bÏ24×`¬ÜÀ‹7VÂת8¶1’K3þI† ¡ƒÝ‹}lÉ«íÇV1~¢‰* ,'“楤 ®
+€©ø=ßí·rÌ ì‰¤rÁäxjpRŸ’ãËà ñ #&7uPµën#òR\0Á­üX§9fÅÏÇd¤™Œ¥†ûÙüÚp“øY÷‡Ž¨#_ˆTƒÆæ>É4DyÜLÝì:nU¥6Ë&Œ°cÞTÃô1’:ûPæQÊŒTúeƤlj#ÂÌ‚|€ârt6q
+m\ž@;ùh+gÄ@û‘‚iŠ¦VöäaÛ­ Óš+;;TõØŸ·þI•­×Þs Ìãg{z_€®¯)ßì)ð®ä”
+‡Íëaz
+@ÉF£&…鬌rÖAkQR|­lõH}p*‘ðv.}—[ªäãØ (ݧI$ïÒÝ®ýú“û””ƒ3!
+™ÇÖÆ‚äýÁPUîI^ÕÛm}t—
+ßÚøFp¾†}îòt{áÂM"ÞµC†¨Òx
+Ý´™U=B(«'‹Ããì*ì
+G΄ҒsÐ}Àhù€^.b ¥˜è/Gé$,MiÕ…'Ž D« o삇ޮöªÇ­äi®7J¸]…¢?&ÓÀ6”û\|®XñT  TÛJ—÷NË9XfÓ>ܸÀL €bçÝ5 Tcù¢VÁùë³ÂØbjèà˜3,ìò·0=!XûtëT…¸Ó}6ô ÔïòÇñ&#x €¨%šÙÄœä±TÁD˜\V¤ý•†Ç— _ྰœaÑÏ×Sðe_{tTðµ-«E4LIã"}"*¾ô ëÂl¿ƒ3¯0$Œ†c etR&›•P K•ª¦ÿUÈSj’”‰Ô7®b´N˜–üÄ£xüv€ŒÉåË×{3h!ªS,ë†ß à›+¦fö§‡>òV—úÊ/<Éê¨íL=Ŭ}‹£ ܼ…\ 5\f019(-™}=äðLñŒ-c9ñÕuŸ:UáÎ.e+ˆÓôÄácœ‚·€5Ðt¸/Ä0³—¾x­{ßNß\gÉ™|WªŒ)ÙƈÇ3 /z9Në‰È§ÛRá[Ιˆà„¦h»{Ÿ)_{ÜL Sî~e|D­Blë• ¡f¾=æ-õ:ECŸ#·ðS](¥‚•À(ÅÕxQ˜ìJ Íkª á1@Õ@šÜ›[0 e§‘ £bÏ7ÅP[7¤axºÀö’U$|3š›¸ŠFÔ;Ò¤¨j
+‹Ùzêm¤ß÷sp³œa^só2›(êYUÑä[%x=îkrá­™ÄÜò|Üv7’R¢F'X.84Ô½÷WrTIvú†ÞÅ&2D ÓET¸‚–w
+OìÃŒgK 9˲>}¤z F«ü°íˆ
+Îä)=à”™âÂŽéyòÛÅ~ÒóT<Y‹r®ˆi ô$R?“*x þ.j?’$¼zå3Œñ [¹¹·
+¢Í)åý¯ƒŸ’þ?ïÈendstream
endobj
-1624 0 obj <<
+1618 0 obj <<
/Type /Page
-/Contents 1625 0 R
-/Resources 1623 0 R
+/Contents 1619 0 R
+/Resources 1617 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1588 0 R
-/Annots [ 1627 0 R ]
+/Parent 1597 0 R
+/Annots [ 1621 0 R ]
>> endobj
-1627 0 obj <<
+1621 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [173.6261 190.3209 242.2981 199.7305]
+/Rect [173.6261 177.8154 242.2981 187.225]
/Subtype /Link
/A << /S /GoTo /D (the_category_phrase) >>
>> endobj
-1626 0 obj <<
-/D [1624 0 R /XYZ 85.0394 794.5015 null]
+1620 0 obj <<
+/D [1618 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1623 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+1617 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1631 0 obj <<
-/Length 2058
+1625 0 obj <<
+/Length 2078
/Filter /FlateDecode
>>
stream
-xÚ¥X_“Û6ßOáéK䙘!©Ôõi›îæ¶sIz{îÃMÛÉhmÚÖT–|’œ­ïæ¾û(K¶²ÍMǦ@
-VØ5¹qTaR(c¼û‚7áq¨äÚ˜Œ9‹Š•îXÅxßd\Ýüæ €ëÂmÇ®ºº9Í•R ï„2Qš&>×S'ÿ¾Y:‹@.”Mlü"y[Wíë9.åà™ƒ_´Ž&öª¢P˜L)ÞÁâ8±I!bq‚œÈU½ß»*„eQ9M1dQWÔ¬Þ…þ­];ÛbgÑ„î´Iâ¯óyª3Ø>¢m+öHg×l¦.96ÕB+}QúòMGô²4ha”ÑC£¦`‡ol¼ Òtœ:üm±á<L}j˜ ²ÏDùéáû×4"_ÂÔK¢ôx0=¼µ•mxw1OçkëÁÛ"2Yú™_°õm—7'ª Žv_"u¤Æ¥— ‡$o»6sXUU$¾WRNֺƤ!iêºhW¹›ZCÜ!QŒ64wª4¨¬e=Λð¿ÊÝ‘‚Mòè$Á)òzÖȳˆý±í†ö±8´ŸñŠãç¢ÛMC=¸¿€(­ $d¾$,¶_ (Ø#'–>$£û\)¸²tÀÀ#
-vèÚæ…Âç«K(t«óAŠf|¬V `\’%çói­ƒ’*F3H_oÍã'KØr¿ÂE ÂG–EQ-N‚¼ìì\ }qù™Ç¢ì®Àâ2­%¦³oJ*¢¯§š¡§#»ŽÔº€}½¯×ÅætQ»}'@§Q½ÝöUû‰YuQu=u€ÜB§æOžœ—l*ßåŸ{E½ƒ®1,]´”\d°‡ë‰„vi¹³#ålØ»&oíÚ¡Hd‘Š|?äÁfPÎ&Ø»"„äóÆ æQmMn/Èë‰êZ‘DG?Às-‘˜êUŽ Žºš¦ZËÜÏÞ"ëUl
-ù¦.Ëú¹Ç!–Óvùã\f}?‰MÉ_&*¸Æó^WE _O-óÛ1ÑáL{ñŽ’fNÝ-ÂECFLé$°¿çûCi/ Í²Ý«–&ÚüDœìèÄ Hò˜rË1÷#’^UÇb<kNŸtP°6W3G*ò²e~¯, ~³öÀjê4È¢K„ŽK©…:÷[|8ážþŸóLÃéýŠµ3þ†Å¹ù‹ñK¯o°ûÓ'ïŠO£‰Éë¾¾|ü.GòåÈŸ»w©ã¬;‡ïž&&ö7)þ2e_`áþ£–묂hé¢êo=}³ÇGeÉ7½ADœV£æ²4LfÇD¯b‘†çÛ>a\› ][8¾7Oeì?…3l«ß7¶Yàñ4,ôz1(/ÇÚ!·­—$¼\FîUQFç³?FHýœeþTBÃÅ”Qƒ® …ÁÐ64\ÛvÕ®We®z3 }øé`/æ蘃â®ëÜêÒªk¯«./*1å ÷u¿…‰nkŸŸ|Eá¤Y¯ízœG›ãà²ßq‰ZÂÚ¶âêíGfЀÉlf´HÒ0ýš·8¶D*Ó/<×.b-"ef‹(…F\¦Sïµ²¿%üé×áóÓ9è Ñç·¦R×ÅPãA²Ð鑹z»öÏÈÌ50ý¾%+endstream
+xڥ˒Û6ò>_¡Êe¤* À¸>MœgR±U[IÊÅ‘ ‰ŠTHÊíVþ=ÝèEJôØIJF¿_€šHø©I‹8Õé$ICIM–»+9ÙÀÞ›+Å8s4ïc}½¸zy$“T¤±Ž'‹u–Ò5Y¬~šÆB‹PÓ×ïßÝÝ¿ùñáf–„ÓÅýûw³¹Žäôîþû[Z½y¸yûöæa6W&RÓ×ßÞü°¸} ­˜i|}ÿô÷ ¢·w··ï^ßÎ~Y|wu»ètéë«d€ŠüvõÓ/r²µ¿»’"HM4y‚)TšêÉî*Œ…Aà!ÅÕ®þÝìíº££öSRè Ö# UÏ€FŠX©$JEèÀðåËÙ<–rÚn--[´5­ó†amV·vEOy»=;s=__ÓªÚ·yU
+´ 7WJ¤Q¤§u^0úWe¶³+Qʯ^az™ŠjC‹¬òšÅ[êÚ–Œ³²>Vض2 ¨i`£ÎÛ#Ÿ8‚<ù’D™ë@¤J†C‰þèä¤m²Ýr›•%p`¾ëìP´švek¶ßÿÝ©QŠ^Ç'òmåÍíHŒX†v^éä VeqôF*Ùeû:¯Núæåšea›o¶vœãÀTxôÚ©<Eß:*i Í¸uÚªi¼¨Çv›—›Nµvh3ØôÑÀÜFl„¼YüQ¶$þË;­{iƒÊ¤Â˜$u8 ˆABêç––"„•t(
+çÅAAžq8‰#ÂXÅ_R´H1ãµaî Îû]ÞdS*Aºvh$$æÉ¥ºQ V¥s]ÄÓmÖà"¡<DH³·Ë<ãí}=S*€­1\Òn1sñDÞ„¢³‡½:,mÃ{‡v`ü§­-= Ï‹ TbH|çD“‚]d<t2
+AÃvì*ވšihcRÆÌKfºeC½I¸ªþÕå~¬r§Ž]¶U}œ)¥¦T~çŒE˜$ñ)Ø‘þ]´t]¨›.³ñ‹hdMU6/fx”]€{$
+,~Ö:ÑU…0©R¬Áü0¢¤O3Bq„ÉeµÛ¹2„E^:N÷‚:×Áÿ¡±+'[ä$‘Ã5¶8ú2›':õ Ûy´ÇmÉq}ω„¡K†M´ÐJ‡Ã¸ËÖ-•ÐóÒ …QF÷…K;èó‘ñ&t™¦£ÄåßÆIŽÃ憙–ö‰ ?Þó‚VdK؃‚I.L—aÞØÒÖ¬]„ ‡íùRz°¶Mšü%ñs–ÞÍ ¨fzسùR ©C5¬½$8yÓæØ!pYÏàTYøvVI8X«
+5IâÐUÞ,3·µ¿C =½_ÓÞ±:Т´–ù8kÂÿ2Û·r6Ñ£V‚[d/´¬‘'»CÓöåcrÎ)(?ç+®Ý¬4ÒU»äþDFi%!õ%a¾ùÒ„Šä)s"éƒArvŸ*W–ØbÁ±M[?Sø|u „#å‹KâÄx_.9ñHŸúÂ(µ"pR*9›©9 | ¸¯-`Éý pkÆЄL‹¼28O³¢µ35­é‹ËÐ<äE;wh !lSP}1æ·Ç›ŽØºÀ¶ÞU«|}<«Ý~ nTm6]Õ~dÔ}•—m]BBn`Tó'ã£=YûÌ·ÙÇŽQg Ë–Î[JõîLxe€›„yi±µæ,ØÛ:kì'æ¡P¤¡
+ý<ä“'H¡þœ>Ìt犂OŠÏà š6m8]×!4¶"ˆZ?€Àr êU† ®ÚŠ¶ËØO^"—†§X
+&Á‹pÌ>„Ðœge€´£ã¯
+#˜
+Íx7˜-Š0¦”Ž§ö÷l·/¬3LY¶½nh£ÉŽ„ÉvŽ}^ˆ<Qh9än`D0dWÙ2šÑ'õ ææJæ€EV4Œï™ÅÓ_­Ý3[—ô
+\uß çUééf=î”_ôzÓ´L0ç•a4:FFx‰$8]æð ãR\Ú‚áµy,²@ÿDH$öLø}më9v§~… ×‹^ 8wÈLCN­ç(<ÿÔq×+Š2<µvü 4BèÇ,/²Çæ-† †ÄpS(,¶¦åÊ6Ë:w£*cUëaÃ{{¶G]˜p[çI—N™{U¶Y>þù¶êT¶vÙÑWšÕÊ®†q´>ôî
+QÿŘ \¡m#.ž~d
+ó—L'‰‰¢wÜÏ=ý@׉L>ñ0<´•É.‚«B4ú2,»KÂ?~‡>=Ò‡‰ŒÑ§§¦A
+$n‹Æ>´Ðèa|ñJ'úŸ¾WFéendstream
endobj
-1630 0 obj <<
+1624 0 obj <<
/Type /Page
-/Contents 1631 0 R
-/Resources 1629 0 R
+/Contents 1625 0 R
+/Resources 1623 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1635 0 R
+/Parent 1597 0 R
>> endobj
-1632 0 obj <<
-/D [1630 0 R /XYZ 56.6929 794.5015 null]
+1626 0 obj <<
+/D [1624 0 R /XYZ 56.6929 794.5015 null]
>> endobj
442 0 obj <<
-/D [1630 0 R /XYZ 56.6929 436.7807 null]
+/D [1624 0 R /XYZ 56.6929 424.8255 null]
>> endobj
-1628 0 obj <<
-/D [1630 0 R /XYZ 56.6929 411.9988 null]
+1622 0 obj <<
+/D [1624 0 R /XYZ 56.6929 400.0436 null]
>> endobj
-1633 0 obj <<
-/D [1630 0 R /XYZ 56.6929 95.0274 null]
+1627 0 obj <<
+/D [1624 0 R /XYZ 56.6929 83.0722 null]
>> endobj
-1634 0 obj <<
-/D [1630 0 R /XYZ 56.6929 83.0722 null]
+1628 0 obj <<
+/D [1624 0 R /XYZ 56.6929 71.117 null]
>> endobj
-1629 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+1623 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1638 0 obj <<
+1631 0 obj <<
/Length 2918
/Filter /FlateDecode
>>
@@ -6817,2043 +6717,2082 @@ cW@p‹ }¾"Õ¤ n$ñ°X+@G”Ÿç•\q¸ñgxÈÒÇžƒJÉ„2±ŸɯáqpF'2dQ¡øÎ ÈšZäYÓª6Ëe‚•ü
¡viË“üX%k×
) µ l9“Š%%Ó(²&B_ùHR6We¡îägû§êÈÑOd9•ŠËéÚÎbà –'[ ™€Wt¥VzRp¤„*«Ïöt—¥è™7wFJp’›€e[ Àîö:ÐÙ
0Ó/i]µ&|×â·Uqh/ËÙ&O«^·bw/ìt—»vç‚ðЕ.•Ž{OtT…±es 0“ ¦°yYÀɧ¯¹¤˜£›+Nn¯><¯¶ÝÍkåc©É¼F°ð ¬ˆb¦,§L1³=&é6U¿:¯tìå½Â¨²˜oT~ Ù–`ã`™U{²ÐMîÌN ÉË’ª(ûÚâ7Á¬QTèiùnãóX¸â!þÒËDlÅôŠVP ’rÆØ.é—<TO”ã mï¹|P6Û¬Û‹‡Ý›çBÓáƱ^Œ½…ÐHÃ8†ÔQàƒI®½mMótîø9.‹|¸”sÑÎÇ´Qˆ*Ðcyå¯å¼¢‘­Ã³ªqxÐZ$)µü£=hÝÓ£ )UËÕ³°šdèúߟ>ž]¹‡¦Ö= Ú4·™¶ãI雪I–níͳƒº±æý‘ ö_1’%=Õ ¶mjÃÔ³! CÞÔ:²bç%8*_ý.×Íû¨ÍÝþÓ¨Y
-4éÜíðþÛä)äœYi@DcδժïE- º“×¾ßÝ>n-SQÔyu°S â†E2¶ˆvˆWHÏ0Þ'ˆVÓ‘ÜNë ÿr3Çkendstream
+4éÜíðþÛä)äœYi@DcδժïE- º“×¾ßÝ>n-SQÔyu°S â†E2¶ˆvˆWHÏÐîD«ˆéHn§uÿ?qÙÇiendstream
endobj
-1637 0 obj <<
+1630 0 obj <<
/Type /Page
-/Contents 1638 0 R
-/Resources 1636 0 R
+/Contents 1631 0 R
+/Resources 1629 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1635 0 R
+/Parent 1597 0 R
>> endobj
-1639 0 obj <<
-/D [1637 0 R /XYZ 85.0394 794.5015 null]
+1632 0 obj <<
+/D [1630 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1636 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1629 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1642 0 obj <<
-/Length 2959
+1635 0 obj <<
+/Length 2915
/Filter /FlateDecode
>>
stream
-xÚ¥ËrÛ8òî¯PÕ–®²‚
-¼›Û7× ½¾¿zûöêþ|)t$¼Wÿ¾úåáúž§bËãåíÝOŒIùó Óûë›ëûë»W×ç~>»~èï2¾¯$^äóÙ‡Á"‡kÿ|ø2ÕÑâƒÀi.vg*’~¤¤t˜òìýÙz†£YZ:'?_„‘\,C%`Ú³ûòìkÁPD
-G‹@8I¤Ø ©ßÔ Õ ö>wæP˜†í6kŠ¼möÅ0neLÅЦ>œ í­=S×LÛ5–t_f…¥ýéî=ygð0°íR?…‹Ñþ´6J½¶Ø™ºkÐ)#ïa[4<Á_íÕ›–ö²"\¿xk s™]ÝZ‚ƾ˜ƒåTÕíÜ V¦¨PIäÝß¼b
- ²ò˜=5 óÎmw¨,·Ø»yw¿œnÈVóöú5?”ȾÊkŠ]QfFÒ¥
-¶UÀWX‹;>Œë]·uxèá„è&„èݬ‚ùÚ^úÂÄž÷øb*û¦$ b|Þ­çý»8f·[‘EöˆðÝÀ+šå¾nŠ¶øbé韾–ëŠV ¦ËÊòɺç±O×Ê— 1vÏU¶›uâ2öEa©ŽE FÁØ]G"%ñ#ŒvÏPËGÌHNxÂ¥?’A2½zÓ­·øVqï”y”Ù/»ßØú}ø².`u x-FJÅLª|NÜ`cÔ÷4˜0Â+À0Zñ Hd# ÎV`šme™HH=ðÊ'ƯˬiŠÍÓ¬?fµQƒÕ!ŒœÊì—¯­X²øåk`¯ÊRÃQ+†'7ªb·œ»9lJÖ¡G2ÓäŸß_¿bÜ—¬,rυಠzíøsWXÈ6l
-ågV‘R¾’)Kîþ—ÿ}7Ÿº­@ì;÷`)ijºõ®å‘9köɉ*1Ê¡`f_—Åú‰g¯+‹ý-ÂÒ@<Ñcæq<-eJR« [ Â
-†”@à$F>ürè`[<nÁÎ8%¡? bçor³êç¼RèÇ#*ÁÍ•ö¤ËP@&-”žªâÎô W/<¿uä±5»½õ¨óÚ6zÆSAÛ†lÿ{å®I‚ä¤|ø{«ÜADœbÀ‚"ñÁŽ&eÇ7åG˜hPTB!¢S_ÅÑ3
-íj#€TIØ×oNUYMÍ"=-AWYO±ËZóXžf=ÀÊÞ@(âùÀáûTR_‡½‘LøË«™ ²´k·3ü˜òFü6{³.ÐÖFy®½Ï1ýÀe;RD¬¬L
-½‡ó4¤¬ ä—!Jð踵
-'ûõN„5›¥@Y p<}ó5ƒÅø©¼¸½{qæ†ÌîOùëK©u0ïÆ'çÔœxù¬² UAã0ÈèÁ:lΧ=ÎîôŒpqý1³ ±¸XSÉAì[ž.©Ú@ • |-ü6ug»<¦ˆ
-ef‚¢K=q[þzæîJøZIaé0$µVH—UƒÉiðëíu¤Lm_ÑB;],-´‡4¹Xwev(mµº5åÞj\ï¾&Z»ÎºæOiìÆÙIf3جk·5„ãl¨r¸ d¯ãTåÔ@ci7Uo €ë ÐtÀ…ü¡cub PÛÃóZ•F²u þ«Ý¢˜$Z#ž6•í ŸºG5uÙµÔ$!z×S#õãjߌßû3†N…é(”R;
-âËà¢Â¦Â€¹wZe90Ù_Š‹,_1ÙB)zG
-˜m!ɺ.kÛ
-àûâpCRIåάS;ßÚ¥à.ƒ¾.¥ðzËÇ Û[–Ô¡éq+ƒ–rqÇÇo—åØÜåö²6$â¤Uh²•HaS $™úrâlÙ8EC=›íÄŒRŒ ²}Ãz•­¨¾
-;tŒê›­4ß·Ña×ÇŠ!Êxð§’Êv¹Ö[üoÃÒd9g@@Bm{äd‡ìyPXv2p[“‘úÏ4¾û6Ϥ›„qÈ…šém¹•ÕNjp“ÏF|VJG*Õl­<S­K¨µrÆSÍßæs7T0^¨ïÖØYk °¼ÁÌ£|§q Æ!_cBP–ÎL´kpké’({Η˜¥s¯³
-Ðû\•¸[“A表8 ø‰ìûéæªt ¡«gÑ– 5§awYåb‡ÂœÇìÙ|Ußù´ ™IñHnŠ§z¥2ù¿y´eÄUàhñÀùèª?׎ý ’ò›ö¿­™†Ô}¢AÖG9õqì4Âb oï I¯KPíoZ–È©™&YM·Ûe‡âwWQÕ ‡±—E<Z×7Ý£¾ §àòCý÷[=ÃÏ衯v*ñ§çTÏýT ÿ¬²ýðÓïö*ñ¡Æ ‡¦ÏXóúæŒ|ä…ßül.?”qO5:úÿ<{aEendstream
+xÚ­YKsÜ6¾ëWLÕ–ÚÒоtS)«T,ge­›ä@‘ ËṙÆÊ¯ß¯Ñ ‡3¢¬x½RIh4^~7(~Å"Ý0ñ“E”(7ðD°È6'Þâc?;g9LZNgýpwòæJF‹ÄMB?\Ü­&{Å®Çbq—ÿæ„®ïžbÏyûþæêú§ß^œFʹ»~sºôϹºþå’¡Ÿn/Þ½»¸=]Š8ÎÛ^üzwyËC¡Ýã‡ë›“pó¦·—W—·—7o/Oÿ¸ûùäòn¼Ëô¾Â“t‘Ï'¿ýá-r\ûçÏ•I,vèx®H±9Qt%å€)O>œükÜp2j–ÎñOyÂ~ K_ œ®½x.Ÿáá\ ú"
+/qþA:ïÆ^BñÅD(ËU-¢ qCéK#Wí2/Úô¾Ô9±‹üÉ"0'
+T„“hö/õ¸ê…Îç^7…n¹Ó­ÓŽ ÀY§šq÷ZW ­êæTÄN†íyvÍsûÖNÝ–iaçþxó¼×D Ž]
+á&¸˜9߬ §+6ºî»º eàÜ­‹–¸zÕ™ó¢­ n\¼Ö ºô¦îì„V7º±;Uu7GÁ½.*âA8·Wo€ö(‚B'«7Û²H«Ž~÷ö1´Ü¥O-Ã|r×7•Ý-t®Þß.d«ywyKšïK|D«œ¶ØeÚ0Ò\
+ÈKf0{Ñ
+|•ÂZòѯWvÝzÖQÑ{
+ÉM1º ¬ÂÉ|m„—‘B lùŒG]Y™.`ãó>›÷KìR@f¿¹7vXÑ® E½ÜÖmÑvÞžûÇÒS]‰UÄÄôiY>Y÷<õé±re„ Æî¹J7³N\†®xÖ®(a`wˆÄ°Ÿ00Ú-C“˜>…Ká{n ½èðêmŸ­IVá蔹—Ú–Ýohý>ZÖ%
+lß KÏîÉ­÷÷tc˜X³OF4³ÂI39F¶uYdO<úg]Yìïžç—ñtFy]St&S’±:Ø–‚°B×$4H‘Z]
+L.e¢|â°úÀSÇÊ@•t¶Èýê¼ÈL×·É´Æ®ª´äÈz‹ÌøSec¾²Ù3!H*Œ2¢‚é‘—¥eRH'妢چûÃðÚcŽ²É’†˜µÌÈw•Ÿ "(à~fØëƒ2¨§ÔÂ2aeO¼-\'Ð(Fâ8Z–® ÷~¨›§SÄ‹Jvò/ÝZJmºk&+lš•}®'<€{IÛ5#ÔLÒ $1ŸlÒ0‚n½á@˜r!†˜{É~Ú¡û$ {¹éœýò¢Cf°:››þ’émÇ™ª5ÎY§™*/اjûáI{²‚3Là7¨@›'»´æö0À~=ÓeB#.´Céîõ”:¤§.™»›™Xeæ#J³!ʦŸÇ¬Ïu™>àǨ:SnLï9ˆäh
+éþ¡“ß”Œ½¶ó ¥=;T£y7šg¨˜à|n̹¡:2Ï0"éZ¦i(S;ýÅQ<µLö´¹vß´Lôˆjë²ïÌg3øª 'ÚÇ'©¡*:²ƒ¿bæ&œRóA€€ñƒÀ¡<˺þd¡â“þ'Ì ‘Š)[éŽü©yxä*Ôl·¡ëCr0_Ä-ïg0ëÈ"i2F® byÎ}*Çíi(Þ´}†ò¹eÄo\ÂO6Ÿ½Ò+¸„´<÷Ï@)•ìçÑÙçæ©…FŸÇgö)ú<8+Q{g}Vh
endobj
-1641 0 obj <<
+1634 0 obj <<
/Type /Page
-/Contents 1642 0 R
-/Resources 1640 0 R
+/Contents 1635 0 R
+/Resources 1633 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1635 0 R
+/Parent 1638 0 R
>> endobj
-1643 0 obj <<
-/D [1641 0 R /XYZ 56.6929 794.5015 null]
+1636 0 obj <<
+/D [1634 0 R /XYZ 56.6929 794.5015 null]
>> endobj
446 0 obj <<
-/D [1641 0 R /XYZ 56.6929 474.28 null]
->> endobj
-1644 0 obj <<
-/D [1641 0 R /XYZ 56.6929 446.6886 null]
+/D [1634 0 R /XYZ 56.6929 301.3151 null]
>> endobj
-1645 0 obj <<
-/D [1641 0 R /XYZ 56.6929 81.8965 null]
->> endobj
-1646 0 obj <<
-/D [1641 0 R /XYZ 56.6929 69.9414 null]
+1637 0 obj <<
+/D [1634 0 R /XYZ 56.6929 272.1867 null]
>> endobj
-1640 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1633 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1649 0 obj <<
-/Length 2586
+1641 0 obj <<
+/Length 2994
/Filter /FlateDecode
>>
stream
-xÚÍ]sÛ¸ñÝ¿Bo•g"¾IöžœÄN}sq®Žï¦3n&CK”͉D*"eŸÛéï. H‰²”Øétô€Åb±°ß€Ä€ÃO bøJô J43\˜Áx~Ä·0öîHxšQ µ©^_ýt¦¢AÂ+íàjÚâ3Çbp5¹¾ùÛÉoW§—Ç#iøв㑱|øúüâ-ajÞ|¸8;÷ûåÉq¤‡Wç.}yzvzyzñæôx$b#`¾ôvL8;ÿõ” w—'ïߟ\ºúåèôªÙK{¿‚+ÜÈ×£ëO|0mÿrÄ™Jb3x€g"Iä`~¤bF+0³£Go¶FÝÔ¾óÓ\0!Œ”f±|Vé˜E<ÚñY¼ ð2f7/šÇ—ÃŒ.«‘PÓ&BùJÅ"kãF¾Z´ä+´b±RfÁ¤Ù£€—Ù4[.ÓžôOgR¶&ÀGFGð$¼ºË@4 ®b5¿É–—SlÕpy,â¡çTÑPèi¬*g÷aaÆY~ŸM±Ã•«Û»®H–#ÝÇËU „:ñ\h¸®ê¼,· &㬪@Ï”àÃóbcZzSÞ{0û3/fY È+Ò<h; ;¯hôá.ߘҨ3/«š Yþ%›=<.瞶˜à?Ê`„m*·íñÉA[ŽÏÓ ÔBÆ<™„E‘I¾%͈w«›µŠ% Oö©›0øéÕ­ªÓe}˜¶ÁgmCµ Ûñãx–U×wi ?¥«pnh™£¦­çeõéY•-a°6 <ÈØpR·ÞÎþ,Ø·M¬_卵§yѳ-ÍY¢¥ñdÿ*‹ TSð8qº‰ì³5
-?èöE Û ŽÒzÉ(`ÈDHÑÕÍÆ´¬€ Tdð±ð)Â}]eËGÿÉ _”U•ßÌ<ÆLË‹[š˜×¨ìV'Ùð½Ù;Û³~ÁÒ4†¹(‹*ƒÏ ?\RK›EèKQ>4¥Hç!éü=çéšóöño¬gçù+0
-Ûõ¢°‡ñ@i;¼É¨O›D(Ë}°ƒÃ6‰J¶–|…Þ<R›Ø*ˆH÷é,Ÿ²­v„)ý´´"ò´C¸šÕžlJí¬,¿¬s_FˆEPò䦀ëdâ9yÄ$­Ó›Ô}zvOÞ¾ÆpøŠ0¸J•RaûJ62îY'áC Í&»Mª­«/ËÁ š”N,³"ÞË ¬K`„çP€&-—‡•Ò²1*„|¡EX+à+B­UÁ#(µ$ȱڌuŽQ1êÓŽq¹*j/bç+-ª‘kA)À%ût úë¨j,Lcw™§‰˜ÕØgÌ4œq×>•Œ†ŠÌg’pîÜØ ë‚ªdŽ ÒÌi/@dÁ:œ‚nçЮ¿6÷@l†«‚¨@MÓ›™'Ä2h‡/å·›ÇÛ`\Èq–eÈÞaäüÍûßÚþ ƒ€=ŸyVõÊ©JoŸˆKmí|)#úu¿¶_‰=F¤ã˜A%‚Û¾I'P‰-³!­ÂhCØ®ŠìÏ…÷éØo;ÝŠPèøJòÙØ‹*öçò;Bfˆø´2*-´.”`ÛØv(Eã„#£x)¶â¥pFHzŒ.LKmH–ÚÝK•úҌ·³ 3vk˜,Qr_æ£d*Ö¤céäæ7}–法— ”¼‰qŽÒ$¨<\z?‰è¶×Á~ð:HÚŠ¿ j)=»|Œã$nyRð'\»5*î« D@xg„úho
-HïM9]™ÑLç*¹7N£ð­Žúø dý÷ ýp‘º|ĆŠ¡I™\éÝ¥÷~0-=Ð_å·’šu2?.];©žÐê–º<O¨ßTQĸµû.°4×ÌXEÉÇ4/&SPÙoÔk¼j¡2ºí€ü-Šèˆ´{"ººÍ(¹¢ëJ mÚXË:QB±®­¯£á´»D—v4÷°tåêSl]¹ åÚŸ¹{Ø]:Ò>üÿcϧdÂÀùË=:¢lÌlÓe "ߣ"qL’‰£áÛ‹OßΕ5)9_K9üã8Š# ‰hºÅ*T =jAÉ)–‡‘Ú¹w÷:R["ÇÁÖ-;awÎGgù¼Wr*ýŒ¡ÒÛ^Çl@0 ÏT š«¤å—CqCÈÇ}(LµaK3ÿÙ²À+O„îÒÅ"+Îûò‘Qœ0|î9,Bx¥¤•<¡ï-Ez)Ÿ¸~´ú¾ç¨ç=b ›0I|°5.Û¯g[¯hŠ[ØMAž”@ãõ3dç<ߌ [#Ê%NÜ=bðEÖ 'ÙÍê–p³ì>sNÖxk‡ŠšrIè»üsPPO¼ÙŽøšO寞]…€Å@E½Ô3¬ïÊÊÐ]¦ sm{ ‚†ÜR<uS¬#¾¼½ue LiQ°8—÷˜JSºøŠÇeÍúxzy JûÇnåäüWFÅÍ¥DZTd·àî=~#5GTµÂ›xWQUžÍ?Þ~xr~á±ëû ãs‡†Ñ- NœI·8´VÞãv•kñé»ä«ÿÇò•/#_¹-_ÝÈW÷Ëпø¨ˆ=à_2 ¥ºñ×ÍBT¯(Å[ïßÍn¤«×ËÇ 9·|D¶Ho(ëÓÚ«ö ªko²qºª²ðêßDÛUc놘®]èf«ó©äS¤Ár`ì.êé”pÐ ¿ëçù„¥ÉWWËÊç+Üó^<XŠ+ ¦D†'n7øW!ð¥Žóáìa™ùÅ}¬Ó:›ÓûþMa™Îçi_‘ü¤eI”ȧӬòÖópJÍZ^²“nˆÒ‚ ­«§RŽ 
- IFÕ]qû¶#_¤:fš‰EÄ„ËbÚó +(¹iªq.gÙ_ûb©„òYĪmíþ<ñÂøßN•Biß1“k¢˜åU# MpM¾øìòb×¹^”˺Ácçõ~vÜ#Á"µñfzýml\Ø¿åöèÿüº®|ë~¦³‡û<{XCŸñ`;syï¬*K—è£[Û¦,ä3•w­¥]?=üôÊyïÑ“²öB¢Ú¡=§ï?9áizþAÃC{öÿuÖfÒ¨ä±ìO"šdÃ/
-÷eÄæÊ TÜ&–QÏÒÿ Z†Tendstream
+xÚÍZ[sÛ6~÷¯ÐÛÒ3Š;Éî““Ø]w§›¸ió@K´Å E:"e×ýõ=àE¢#§qv7žŒ€ààr¾s(fþÄ,1Œ«TÏâT3Ã…™-ÖG|vm? ßg:͇½^^}w¦âYÊR+íìòzÀ+a<IÄìrù[ôê_'?_ž¾;žKÃ#ËŽçÆòèåùÅk¢¤ôóêíÅÙù¿¼;9Žutyþö‚ÈïNÏNß^¼:=ž‹Ä/=‡GœÿtJ¥Þ¼ysòîøÃåG§—Ý^†û\áF>ýöÏ–°í8Sibf÷PáL¤©œ­´QÌh¥¥<zôïŽá Õ :?£fO ShRf•Tî
+ÏNñ0µSR6¥æ¤áȆ"ÀºS3,Œw‹”ªn©àÅ”/{îÞC™ èä ä‘è(¯eÝ8¿Í§mw:X¿Úd‹yÛøV¯ 0¼ia©M[,šÀ
+ 
+ÆEJÉȧÍÈø‰z'­ê­¼•^ʩȪ´¡çŽ}·˜9V-µemßy_†’¦”Néмë8’ùaNéëN~W˜êY…i36¶‡„icÚO×!#xš0!¡ê„ e
+½d`Òµ)ª…ï܆Q;‚í(ã62v×]úœÀð‘9øŒ°§ð\Â
+©ú3z<*§">$,(
+ÛW²“ñÄŒ£€sár½Ç5jÕçòeß †„-ƒ“2‡|™JÓRÑ9Tx3¸yšR)-;¥Â²“/ü†d¶Ø©‡‚'PhI%Çj××9FÕd|´¨·UëEìL¥õ« ƒEöáÔ{¯j,9LcSO3«Ÿ Ÿ ÓpÆcýT2ŽÞV!×O1×·éîª×kwI§5
+É´ÕòªÉ#¼(!®ñ²…é¡ò÷(b$ÒñMˆc›Q$rI–Ð~³I×Z·îùÐØAèŒM]—èî&–.]Mx¡0oÔÀÂ_ºNGAî&öQŒ ÿÿØò «1è2‡0Â5㩱nãþSƒ/…H’d’¸¼Úè™VKýŠ¯üÃ=èt½Ç*<îL†§˜ ÆjOä:ÜÞëXí‰÷ìÔ ¼3.ØZëù JþŒàÄßIÃl@0€ç'ä š«t`—Cz•€Ëwï¥Æ}„±-ý´uåt¡´ÊnoÝ#µ1Q1Ì“”õTáA9ø&`ïC =—M쿤ù_¼b ›2K8(3¡c9ü¤gïÓÅ-ì|‚S.žÆI§R£ó Ÿö‘SIè9q7‰ÁY-ó«í ÑÊü.wÏNÖxk#E?îµÈ«âcP€'ÞmǼçÓøËg—#`:ÐP-ó ÛUÝøt›iÂX;\ƒ &·ß»Kב^ßܸDІ¯zpq..žPÏ.yñ9‹š]i÷£FéÍ…Ôµ¥R•ß€y¸óôÐIÍïâ]NÕx6ÿyýöÍÉù…§ö7ÆÇ£j\Ò·=‡ÁÊ'L@¸ô}P`Lü·$¬ÿË–ßLº“°ž–0©ða1töÿš‰Å®ÅÑ-‹êyýþÝèN¾º_>^ʹå#q
endobj
-1648 0 obj <<
+1640 0 obj <<
/Type /Page
-/Contents 1649 0 R
-/Resources 1647 0 R
+/Contents 1641 0 R
+/Resources 1639 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1635 0 R
+/Parent 1638 0 R
>> endobj
-1650 0 obj <<
-/D [1648 0 R /XYZ 85.0394 794.5015 null]
+1642 0 obj <<
+/D [1640 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-450 0 obj <<
-/D [1648 0 R /XYZ 85.0394 189.8991 null]
+1643 0 obj <<
+/D [1640 0 R /XYZ 85.0394 607.3833 null]
>> endobj
-1651 0 obj <<
-/D [1648 0 R /XYZ 85.0394 163.5217 null]
+1644 0 obj <<
+/D [1640 0 R /XYZ 85.0394 595.4281 null]
>> endobj
-1647 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+1639 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1654 0 obj <<
-/Length 2051
+1647 0 obj <<
+/Length 2069
/Filter /FlateDecode
>>
stream
-xÚ¥]Sä6ò_1¦*£•dùëò´Ù… ©„ä€<Š¶fÆLl„»Ü¿nµì±g lQ5n·ZýÝ­– b„,Ld²ˆÅ.‚EZžðÅÖ¾œG³ì‰–cªïnN>œûÑ"aI(ÃÅÍjÄ+f<ŽÅâ&»õB&Ù)pàÞ§Ÿ/Ï/¾üzõñ4RÞÍÅÏ—§KpïüâÇ3‚¾\}üé§W§KÂûôýÇ_nήh)t<¾»¸üL˜„/0½:;?»:»ütvzwóÃÉÙÍ`ËØ^Á}4ä“Û;¾ÈÀìN8ó“8X<Á g"Iä¢<QÏåû=¦8¹>ù÷Àp´j·ÎúOp&ýPÎ8P‰9 }é[þï[´áù !XIùb©"‡~0xYHðçÜ+žÓ’®;Ý™ÒT½~6¿q.«¼ËëŠ0ºÊøµÕkã$É‘N HL&"²‚n6fPgO$G
-íE’ÌJBZ$è)KÕîUó¥ðÒºBÝÖ»æTÄêØÄY Ò¥…¸×šæÑ4n¹¦§.ÚJ?í8hzùzÓ=ü%„SŽÙÀò“MúÞo<à×ƦJ$S‰¿ã©(KZkÖ ®FÁïÉ—czû‰sŽ¸¢®MºDñÀÅXÌ9ð’
-îþ±3-Wë
-
-jÆ»X¢ªé‰Æ”;Ò½£²o°ÚÃM"Iè‰w­É8;/ §QH@qkÕm]æ]gEakjŽ˜§¼(±}ØZj\3ƒ4aÂq"¥íñ'ÅA®ù¯÷g•„.‡só4W`
-õŽMƾ÷WYK ¹¡}Bà&>5=ŠüTx£œ@Ü´ÓÞ2®' ¬šNN/Ù‰ú|yM
-mß!Sˆ¦ØêÔ ïüØÃBÚ„ÆÔ–6É N¯m]µ†ˆ @ ~A/Ž šLÛ5§±·K)R¶(z®Ž¨µB¥®*k'ÖeK8MªnJí¸“1€„ižû­]º±Lö%8É2¹d"íqÅ…ËU5䪚æªïõè}vú>wG,,gf¥¡M y¡~V…­„†»6ˆÚÿXÕ£:à ŽuŠ; tE+¦¡^Ú ‚gŒîš|½vÒ²w´[(¡’!½nÒÍLø‚I¥ÔL¨ØÚ…O¨åüQÞf®J¬+g$Ï0ôÅ׉v'Ãá¼8œ L—~hlq1HÔÕŒ€$`¡ýÈŸ'ÞEGº»sì1ÏŒ³RӃ΄êUš£Hôó¬.5t×à69ØH­Ï û²Ýš*ëÛœõÛÐ ÝåŽÎ6¹ë…Xï;a!äÈÜ*«»Ù¹"bIœˆ¯”û2¦<)¼ð$Rá›$Ë$¿ï8øþ£ˆÃXk#`ëÊò„¶Î&ÛÁ
-i¾ÕÅ[ùôsˆ …ßcI¶Ÿy÷ûÌ·N¿%lò/WyaÞï‰lWnß¾u¢>Þëm"üÍö¹OèÐbñ»÷ÌWE>4å¯þ¼¾ÿßÌ~Ëùï“2‚V§š}¾Ã«þþ°}Hendstream
+xÚÍËrã¸ñî¯Ð‘®Š0ădN³3ž‰·²ÞÄöžœ©)˜„$Öò¡%){dÿ=h4@‘e+»9¤\eFw£ÑOˆ.BóGQLbÉä"‘‚D!Yu.ÖfíËu8K´c}wñî3O’ȘŋûÕˆVJÂ4¥‹ûü!ˆ #—†B|üñæóõ—Ÿn?\&"¸¿þñærÉ¢0ø|ý×+}¹ýðÃn/—4hðñ/þvu‹K±£ñÝõÍ'„Hüœ z{õùêöêæãÕå×ûï/®î‡³ŒÏKCùåâák¸Èͱ¿¿ —i´x6“P)Ù¢º'‘àÜCÊ‹»‹¿G«vë¬þhHÙŒ›S`$IÌ·
+¼ßÊu¦vƉª_p°«õ¯[õ:Çy{IÓ@w»²wÛ2UûýøÍ‹àü# YfÐØ7nQ?îÖŽ¯Û×oô˜t¶k»¢©=ñNP¶9]PJd18S¸Xòˆ„4Ns Ô\q†AùÜj'Ü]¯z]éÚIñ¥UU¥ZGp¬#C "'´3H¹v4ì¤YíW½”{¢”¦DD"2Ô(ÊuÌ›%„§‰CꦕdwŠ1ƒ„“0ñäkUéœdM½šá3ÂâØ£ÂÝ”úÏ3—,¥„¦|±¤ ‘œ%#É—±Qî¿`Ó‚q"ÁΗÕ¬Ä(‹®×õ®7ØO±ý¦ò¼ÅÉöiû“¯8{o©'”$œÎ?—ŒýBpàÀ¿½÷Sಜ²¡c6O…~Þ¾j'{ÃYá:­Úl39vÞTª¨-‰h¯/¿.ù<÷:ozwIõ®zÔíô´W†Çýíý ç1‘ Ûû{Ó·>i°ªºèçUµ‹?uj­ÏqºY'’$M}ˇLn0æzìDœÑÀøȶ޹à…PëÑ0@ísØ>éÖ-7øUeçG™£§…Ÿ²Xoúg ÿàØ4¥#66É2ãÆ£ðNëÃ<"$#BòEÄá< Äs\j× ÜŽ€Ç^ŽÐÃÿ!MPÐΖh„Ñ4 ¼ /‘JD„
+™š¨‡é"b1¡‚ÊÙää‘–c¬cáŽhwb´c‚9“lµ‰ÒTêÀƒÊd˜b[ÎN˜’D0ñ–åÄ$e±8´œùìM§¨×ÈrrÝ€3½n€àuwˆÿ\ô»Ì¸rG2æi¯€Æ&ð8™^ÁÖ"5[Ýö…îÈàø6,§¯8 M^”þÔC0>>¹à&þÍx ‚Τün…ÇÖÔ È!
+?eqIƒ‘M
+?˜K`Ô¬ÐÓxl%LN­kdà6TØ6²yË°“íV×¹s¾ÛDŒRõϗŽ=m­À=Ž3ìQQ_kbÙ=ÛÕÉTÒ¹¶N¸®2š^¸£àÑ+.ŸÅ™à|â¾Óh û»nÜÔ´öÆ#]y‘¦;vÎ&øÞ4pQ•Ãc„-Çw]T»Ê±ka`œ`I``Øà
+§Ó{FT0\uõ½ð!FC10ìî0˜5¿O9&úW¬ü ÈÆO„–Móón‹àG½jœ5ÎDpLXô†»U½éÒך' úì×î:´J™Š¯=ãýcb@ÑŒcKq b»É¡;=Ùp»n*?9ßÐÉòo«è6â(š*輦þágý‚#3ø:0¤Ó¾ÚtÎûžyFuËA‚ÃWœ¡À3›\zºÉõÔg´qÛHŠQáî*CU–Í3W˜Ã˜5|
+mµ¯oµ+W[ ½+a5~µêŠòe_—ºÕÄ®vP¥`ge]¿{tÒÔ·+Õ“#öϦÖNXŒ/FÍî4Ó»ÑE;ײp£~“e÷UÄ÷õfÓξ¹Áõz-B󾬛¾X½Ì‹¨é¢‰ÆgÝmI™}Öe3n9«i¶`ÿÏŽ^²uéïyòûô(CÉ$ž¦àA±ç½>ª¾WÙf™™.hÙá¹OxжþéÒM¾™âÜÔÌó»'φ›¦ë÷ÑÒÏföÏýv`L ügSÂÁÿðï
+û]¼:§lþY†%Æ„RCÄ g4¡ýPrÿıèÿEM«uendstream
endobj
-1653 0 obj <<
+1646 0 obj <<
/Type /Page
-/Contents 1654 0 R
-/Resources 1652 0 R
+/Contents 1647 0 R
+/Resources 1645 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1635 0 R
-/Annots [ 1657 0 R 1658 0 R ]
+/Parent 1638 0 R
+/Annots [ 1651 0 R 1652 0 R ]
>> endobj
-1657 0 obj <<
+1651 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [491.4967 682.6714 511.2325 694.731]
+/Rect [491.4967 534.2914 511.2325 546.351]
/Subtype /Link
/A << /S /GoTo /D (lwresd) >>
>> endobj
-1658 0 obj <<
+1652 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [55.6967 670.7162 89.457 682.7759]
+/Rect [55.6967 522.3362 89.457 534.3958]
/Subtype /Link
/A << /S /GoTo /D (lwresd) >>
>> endobj
-1655 0 obj <<
-/D [1653 0 R /XYZ 56.6929 794.5015 null]
+1648 0 obj <<
+/D [1646 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+450 0 obj <<
+/D [1646 0 R /XYZ 56.6929 741.7314 null]
+>> endobj
+1649 0 obj <<
+/D [1646 0 R /XYZ 56.6929 717.3918 null]
>> endobj
454 0 obj <<
-/D [1653 0 R /XYZ 56.6929 731.9325 null]
+/D [1646 0 R /XYZ 56.6929 582.9637 null]
>> endobj
-1656 0 obj <<
-/D [1653 0 R /XYZ 56.6929 701.4683 null]
+1650 0 obj <<
+/D [1646 0 R /XYZ 56.6929 552.8498 null]
>> endobj
458 0 obj <<
-/D [1653 0 R /XYZ 56.6929 475.6865 null]
+/D [1646 0 R /XYZ 56.6929 328.9135 null]
>> endobj
-1659 0 obj <<
-/D [1653 0 R /XYZ 56.6929 450.9966 null]
+1653 0 obj <<
+/D [1646 0 R /XYZ 56.6929 304.5739 null]
>> endobj
462 0 obj <<
-/D [1653 0 R /XYZ 56.6929 381.4304 null]
+/D [1646 0 R /XYZ 56.6929 235.8992 null]
>> endobj
-1660 0 obj <<
-/D [1653 0 R /XYZ 56.6929 350.9662 null]
+1654 0 obj <<
+/D [1646 0 R /XYZ 56.6929 205.7853 null]
>> endobj
466 0 obj <<
-/D [1653 0 R /XYZ 56.6929 305.6252 null]
+/D [1646 0 R /XYZ 56.6929 161.3359 null]
>> endobj
-1661 0 obj <<
-/D [1653 0 R /XYZ 56.6929 277.9066 null]
+1655 0 obj <<
+/D [1646 0 R /XYZ 56.6929 133.9676 null]
>> endobj
-1652 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F21 950 0 R /F22 973 0 R >>
+1645 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1664 0 obj <<
-/Length 1132
+1658 0 obj <<
+/Length 1149
/Filter /FlateDecode
>>
stream
-xÚ½Xßs£6~÷_Ácü ŠÀØ0}Ê¥Nš›^®uݧ4ãQ@Øš‰“Dlßµÿ{…elp Åär“É
-)"‰¤m±\p±`ü\õî4Ö¢ÈHÜ3G¹„-û&ð­®å ƒSþ’œRs÷¹(,$®I˜ÖëàÊÕ
-°MÌSDØùɉ1¢”GHa ‹oˆê„Q‹0&ˆæYõ~Á3¥‹®ƒý=a@¾äXlÏw>Á*Z%ÍñùN'4—+P$G‘ËU®b¾îÁà
-i
-ÆIN‹ Öx“Q•º¦HêÞÑ)¤ÛîÓ€÷ȳÀºJ5ÑL’øüèD¹ž
-ºƒV>7úaÂLPn2¾¯« B:•ï‡üF·ØP1™”Ãû»ù|²}?·é4Êóíâ©áìÈ9,–o>©:ã&¶îáÊu+‡Pž3¶7œ”N±ûÞ©ç‡#­—®ÿ¿^fendstream
+xÚµX]s£6}÷¯à1~E`l˜>eS'ÍN7Ûzݧ4ã‘‘0š‰•Dât·ÿ}…1; d:$sϽç~IZŽù@+ðmÇ 'Ö,œØ¾}+JGŽµ1ÿÝŒàþP=šO}XŽ~¹öfVh‡Swj-ãV`;A
+"_G÷Ž… í#ÇöÂÀ·žÍÀ±aºV:šøžíO<¯ša£/£¿jÀÆ¿;ÑSþó½ÀöwvÂØp t;œ„3kæ‡öÔs½ïÇ`ê8ŠÈ'"ÅÍáŠâ•Ò’òͯåôCAØhÚ¡ï»ML%‰´/å0C:Yq”’¢äô‡Mñq´!ÞaFñÛ˜Èþ²ºà°Q
+e´°C£uMŒHL¸¦ˆíqL"š!ÖÕ,RDù>4»û>Lpb~ëàìFm:°‰P”SFú{çi6PtM9Þ%BgqØ®ƒH
+¡Õ@íŠ(E/RàÝ
+ò?ŽïœX›Ö”bè‰ Ø¥7qeV_@8Z32 µ•âOˆQŒtóóæšV*ΛO`3!‘Ér€>@UØ
+„¡m fmCyë™#ÍŽ®en2ñ(²¹ƒ«Õ¶mÇêNÙžk³4%A^£p5Š"’i³ŠdfÏôs!Ÿ‘ÄÇÎ,j»¨˜J¥Ïp?ÓíKd³È–ãoå¥Jîl…0Þ{ö>R×óÅà¡íÕض]éÛ]þë´}5ÍÕtèè”/Rê'º¾íÀ\Ï‹·ÆäÁ/e´{ñ³pU–(-uã^¸¹òÂ>ÃZX¥iµkÚ>'yTo 1^i¬~çÚGk¦Z²vžp<rIÞN)DÛ2ºáB’sösF8ÏÌr ‰_ñz§rç ­éöÿR_+{¦ Gu½ö)ôRÞ¬JdcÞCÞÚù:Lñ|»89qôáÔ9þÃ)Ôdf{AàÖg(®Û8Cñœ©¸á¬2ª Y¦`ÓòúDæµé?
endobj
-1663 0 obj <<
+1657 0 obj <<
/Type /Page
-/Contents 1664 0 R
-/Resources 1662 0 R
+/Contents 1658 0 R
+/Resources 1656 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1635 0 R
+/Parent 1638 0 R
>> endobj
-1665 0 obj <<
-/D [1663 0 R /XYZ 85.0394 794.5015 null]
+1659 0 obj <<
+/D [1657 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1662 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R >>
+1656 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1668 0 obj <<
-/Length 1207
+1662 0 obj <<
+/Length 1130
/Filter /FlateDecode
>>
stream
-xÚ½XÑrâ6}ç+ü‘jI–mMž²)I³ÓͶ”>Ñ ãµEâb,Ö2ɲÝþ{edll †±,Yçž{t%] ¦ú!ƒÚÐf˜³ 55üYÇ4žTÛ]å߀õG úÕ‡açç[â 2ÛÆpRÁr¡éºÈ£® 1ì)³{óùáöþî¯ÁuϱºÃûÏ=€©Ù½½ÿ­¯KwƒëOŸ®=€\Šº7¿^ÿ>ìt“c|¸øE×0ýØ:èßöý‡›~ïqø±Ó¾TýE&ÉùÚ=šF ÜþØ1!a.5^Õ‹ cؘu,J µY×D?;€•ÖU×Zý 1±q€ªèšÐ6”C´ &+G=`›f׋"ñ
-î/ŠˆX×ÿ›7AÂ¥ϼÔG¡LuýWúù˜ ¡Ø
-¦rªk—\ŽE2ŽE†A,%÷×g"ÈÿÛ¤¦.ͼ0NÕ_¿ýÐX¨QáS\|šS)_f|E-qF50‘ð…#âÇ“/Ê©-f_xҜ̢‰ƒT(]Þb¤_¯A¥É¤þ\i2Q²<·wIÊ‹ ä2NŸ•²òb1ø%òü鳈.Õ ÉÁ‹ÁÌE’nRÍjZF±÷"Âà\Ä]†öåðr†öå|ξæå6*t)œË—Ç‹ ]aV9ó¾–¿.¸š$R,g‰)KáÜgVÖ‹M†‡ v¨‚…ŽE¬êOº)·SiÈ–¢U@¶‰ƒ­ZýK«Æ+žç¶‘Úص?iÛtŸmZÚ®êö#g‚)¤˜‘úØÒ¢6R‚8Ðr-«=MÃbÐ"Ì®¥qš M£*HYquÚ:EÜÖG½«s ¶MÜB3ÍÈ¥¨· Šõ®Ñc‹žCw|ˆÞG¦Ñ³³¬"(#£oµÏ’6ûWw€CÙ:
-™ãØõkãh'u{¬]#íg[<76Ù›*yªØ$‡í9R§ •¬´ím¯ÊÕ:•+ƒQºçT·Ãõ¨´#ˆÓn.튇ã@Çt·wÀ†¡qlûÜ«y›#n,Òp²¼åzýòEÈJõ“1Gh4—ÊÜ¿VEzÞ\r$cÇYŸIå´|ƒèD AìbçЀ¤Bqõêï<šÜpI4ÒÆQQ±Z¹šõdÚ" cs4å9”*ÄÞŒží­µµÃÚìG^= „Ùææ©Ô{Q¦1á·I"ñdøŸý£&VÛyÙ=+åœû f—/²û¸žÇQe£^£þu÷È„Âìò·æÖ×,òú³ï˜Ë xKÍm×ÅÅõ1Æ•ëcì¸ê”£@rR™ÔÚa¾¾ŒÞ¥þ?š!<Íendstream
+xÚ½X]sâ6}çWø:#U’-Lž²)I³ÓͶ”>Q†ql<øƒµ ,íö¿WFÆØØ“É KÖ¹ç]_] +Hüa…êP·ˆ¥–)ÂTq‚RÞÄØSgï€ÝK øÖ§aççGÕP,héDW†Ó– ‘ibe莺:$°'P÷áëËãóÓ_ƒûž¡u‡Ï__z€PÔ}|þ­/[Oƒû/_î=€MŠ»¿Þÿ>ìäža|z~ùEöXòçè ÿØô_ú½ñðs§?Ì})ú‹‘š:ò­3#Ånî ¨Z&UÖâAlYD :U!ÕTu×ãwþìü‘F·SkõÃU'5j¸  ‰ Ž”A-¨«DÝ
+8ê¡®3cÎßÚ“}#ŠdkmÇ¡lý?SÛóKÞ[ÅûyøN6Ç©@‚%ÀZ”’ªI¯noÓ{õ½ðMvmŸDñ$Œê§ãšé‹éMÈÚ¾­AÈÖàŸ(d\vþ{ÀZ>þ×.J¼é¦„e»nÌ8ŸvâÌ&¾Ç““ ¸
+úmÉâ‹0ÉL…ëØb)?B‰|}ÚIl‡|Êâ+ÃÆÌYÆÜ»Œ.>{}%– ×N؇€‚i‹/ÙÍsÃôÈeæ˜óy£¤Sb膜3gG1ˆÜJª l/LÄ)á„‘X.ÒN«œ“?s¶IùF¡¿iŸ(3?²]ÃàÇâ•¥Äp¼²¸9žFI$pd»6 Þ‚JÄ·™8 ¡ÉTÈ2kï’ ”•ø&LfBY~µ|õmg>‹üëEõ’3°ÒÀÒ]€E'eªiOÛ¯zyU†úõð2†úõ|Nßfû6Úe;úb²_mér³Â™ÛZ––±SI1û–·Ð&©•]²Iñ°aA•TÀBCSµ-êOr(³SHSÑv `Ý€ªA´Zý÷.<ÏlcQ!¢Ð•¶é1Ûto»¨ÛŒ ¡K­-)j#%Tj¦¦µg#ihÔTK¯¥qž M£(Ⱦãî$5|,tò¸­½ª™e@¢#ÒB3ÉȤPOWë¦Ñ£¿=-–îý%º M£§²l#(%#’wä·¯’Êó‹;À©jŸ€×™•K`Ïkvx»òìˆh™´t©„á¹þ¥4¶h”‹/Qx9¾ÇÂÖk"¾!?sEnqæ¬ÉtRž¾=‡¬Xsó¥ù¸gûÙÑ.ÎÏéæ{ŒŸ¡ZV €%k;}·hâT#ÊÃo?
+/¬Y\:6v¸Éúù{'\gŽoC “s¨òsb+Ÿ»¾†m,Wé°îiPç“#…–aèõ¹qT)ÝƵ9òÔ~vÀ³´ÉžØTÕ¡J
+‰jXGŽÔ h%kípÛ+rÕÎåjA‚)=rª«p}WZB0ÄÒ›K»åaÐ@æáØćºf•ÂôZ¸æ>åõÅ·Ïû«yMê¦Iò‹eB
+ËÄ0EÙ"@2R©c”T˜ï®©«Ôÿ ×N`endstream
endobj
-1667 0 obj <<
+1661 0 obj <<
/Type /Page
-/Contents 1668 0 R
-/Resources 1666 0 R
+/Contents 1662 0 R
+/Resources 1660 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1670 0 R
+/Parent 1638 0 R
>> endobj
-1669 0 obj <<
-/D [1667 0 R /XYZ 56.6929 794.5015 null]
+1663 0 obj <<
+/D [1661 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1666 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R >>
+1660 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1673 0 obj <<
-/Length 1069
+1666 0 obj <<
+/Length 1138
/Filter /FlateDecode
>>
stream
-xÚ­XK“Ú8¾ó+|„ƒ¼~cלÈ,3KjÃdYö4KQ[€*~E’ d“ÿ¾íØà!¶g (!Yý©ßÝ–*)ðU%Û”Ý1¤±cȦ¢š’ i Ïj±•›Puׇåà·},9²ci–´ÜT°lY±mUZzÏÃû?&Ÿ—ÓÅi¦2´ä2-eøa6ÿ=_qòáþiþ0{üg1árö4Ï—Ó‡éb:¿ŸŽj›*ÐkÂ+³?§ù¿ÇÅäÓ§Éb´Z~L—'YªòªŠž
-òuð¼R$Äþ8PdݱMéLYuM
-†©Ë¦¡ëåŠ?ø{ð× °ò4#mÒŸ©Û²ikãjEªbˎጥ±éÈ–®é™ŸGÈR”á†ú„ç9ýNÖ<&n>½Ë‡U*+ˆTUvLS«sÝ/)Y_
-pe¤L]z H‡ÃE!Úùò¿Š©4jéG>¼@¼|A^‡º'
-µÛyí*a ]
-ˆC/sÔ96éBÈBèšÅ/ëù |0A¸õr<“ZÐLàS[˜?ͧ¢‡
-øg½ù^ä|id€çÚ¶vºòдʕ‡®X²­9ã’©TFÓ¼äütrÍúÿ²›íÕendstream
+xÚ­X[s£6~÷¯à1îŒTÄé“7uÒìt­ë>¹²­+ 7n·ÿ½0Ø8 Î:“$Χï\uÑtø#šgcÝô-Íõ-lëÄÖ‚í@×Ö0w? ‡wPõª¿õa6øñÎt5ûŽáh³U ËúçmÎon}ž§CdØúƒ‡Èvô›“ŸË¿¼Ü>Nîîÿ˜Ž†®u3{xœ”ÃÓñÝx:žÜŽ‡ˆx6yã€pAàîá×qyw?}ú4š³ƒñì¨K]_¢›¹"_ó…®… öÇŽMß³µ¿áAÇÄ÷ m;°lÛ–iV#Ñà÷ÁoGÀÚl!Úf?Ûô°ín‹-R3 Ñ=ì[¾«¹¶Ó0 ·ÈÑõ›L2D#…” ±\1d’‰€•“{&—‰XÆÉOåó"×G„`߶:Pœ(¾Ú£Et_ŽH$q(ˇîuê¶ÎSkIÃP”#_
+˜Š)û®kkµq
+?”Ähg½¶Ö­VúZ^ž _žQâÁQ‚ô[¯ÛNØÁ@ñª Û9(…Üá/|.g˜ØÏ?ÛûÎâªØ]ÇæÄ¿¹O¾›rì%ˆ²}7z2[óð¬u
endobj
-1672 0 obj <<
+1665 0 obj <<
/Type /Page
-/Contents 1673 0 R
-/Resources 1671 0 R
+/Contents 1666 0 R
+/Resources 1664 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1670 0 R
+/Parent 1638 0 R
>> endobj
-1674 0 obj <<
-/D [1672 0 R /XYZ 85.0394 794.5015 null]
+1667 0 obj <<
+/D [1665 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1671 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R >>
+1664 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1677 0 obj <<
-/Length 2456
+1670 0 obj <<
+/Length 1697
/Filter /FlateDecode
>>
stream
-xÚ½]sÛ6òÝ¿BÓ—Ê3!‚I4OvjçÒi“;×½{H=H‚,N(R!)ÛÊ]ÿûíbŠ”%é}Œ°\,‹ýN8ü‰LX¢„š¤*f’‡r2_ŸñÉ=̽: Mà‰‚>ÕåíÙóë((¦‘Ln—=^ãYNnï¦ ì8ðéË·o®_¿úíæâ<§·¯ß¾9„äÓë×?_ôêæâ—_.n΃0“áôå_.þz{uCS‰ãqùúÍ„Q4|†éÍÕõÕÍÕ›—Wçw·?]ÝvgéŸ7ääãÙ»;>YÀ±:ã,R™œ<Âg¡Rb²>‹eÄdESœýzö·ŽaoÖ.Õ_È™ˆ1¢À8ì)0ã,áÀ*•Š%‘ˆ¬ß çS³Þ´»àSUš&0¥ž†ð;Ó¼¯ê÷eEŸ/h¸ÃsÃæA2%¥èsZä .ö ÐûR¯ÍWsúdê*(« ©tжÅ7ž`Ìõ|õ§OW›¦*L|Üšz´ùÚTÛ–æÊízfê¯W”)w.›Gঠàܘ†¦þIƒÃ¾_ëv¾z_äÛè¼éžæfÓ˺ZV£®Öܽ8¥ªHE®eù_ãPÉ›ªlL°©Š|¾°Û»®Sgc\ú‹ïóSø¯›.ÈnšvUoÈòiQ­u>\^V Ýêj¾wîþ‚Sú®Í|[7 [P•ÅnÔ'ïJ^ë'§”}DôÝîÎ{îŒjghµÿ_²Ë¬6úC°(ÁÝç_³a^e,ª¶9qÞÞÞAœ²Lðt¨ñ?¬Nž_‹pÒÉ´D³ÄSQ&ºj&P!8p«6m^Hÿ×V·fmÊ–>4¿s.Ê)£Ë¿5úÞ¸½D/ûÂVB²4š†[Ý®L'О(a”Ji¼ÇÌ"¨3Q;º¦'\MƒªBh»¡ñ¾¨fº x,øh+ãé̸ FB³X·«Ü-;Øp­±ÞlŒ®Ý>ÖŸšS´R¢ØáÐ-0P¢$™jÒé¼*Q·÷ÛZ“vq1…9©¦¯—„lWàa65´…C4¸Ñˆb“ŒeJ…_Öl
- Ï5û x+ V¦½:%↳¢š ð1oWDa ÊŽh ÓÐ4*yÛ¸Xå ˤRC¯]˜¥ÞÎéó¢ Èš F4;êAB–†a2‰³”…!?Ó3QЧ²-Ã@m¾Ÿé¨P(ݶp8WG6CÁ  OïÞQlß7HñÄÃý/Š¢zDÝgÉt ÚÉ7Ø­à×Cnü„U0ŒÍJwN’‘“!6/ïý"× ˆ9}U-…5WdCǘ •¶¤ÖrS=–}FÖš‘„v-QCG÷Ü:¤
-‡Î×»Iõàž: ™Â,‘³Ê<7%*ƆÕ·H`K9OúrÀ:n‹•§r9tÙ ÷9ú0h<]f,â2¤'ØW)J®vƒES
-Ã1ÍÆÌs<„MÚ0‘—crÄë11ñ¶®|,
-é;àC+&Œ‹®xuî.ì…
-ïk…½^ø:DDñq›wM R¶žÇ²ÂºacñGâóÔlz•‘î’D´MÞ´¸ûصZd*B×wèšÏF²ž ®t>%æÌÍxÎKâî-ïÙ7 }Wéç…Ñ%œ0ÈK°ÁCw7ê³LSãUà ,¥# 7Ö@Ïí˼yÚäõho®“™üV¶ b¾Ðþ†}À2ãL@>Á2ˆæãƒk!>/[·¯ËÇ|¸gñîásŒo e©»g »ò$¿îm<ù~Ä®É?º$cpßË×½ \t¡Ñ‹2¿õáŸ]#¬ÁRxÖìs=F’áÿ…#Ïn¼+`ÿñß’ûÿl¡ ˆ²LŒ¿ß‰šÆ ˜8¡Pp™?Xºÿ/Eÿ73sѺendstream
+xÚµËrÛ6ð®¯ÐQž)‚oNNN"§Î´Në(§Äã(H„$‚²¬4ù÷î EJ²-Ëíð€År±Ø÷ C>2 B;LÜd%¾8$¦ùÀ.àßû14VCdu©ÞL¯.¼h˜ØIè†ÃɼÃ+¶8&ÃÉìË(´]û 88£·¯..ß¾>?‹üÑäòãÕ™åÎèâò±†Þ_Ÿÿùçùõ™E‌Þþ~þ×d|­…†Ç›Ë«w“èá¦×ã‹ñõøêíøìfòa0ž´ºtõ%Ž‡Š||¹q†3PûÃÀ±½$†k˜86Iw˜üÀ³ßóL6ø4ø»eØù«–´ql× ÝôIÇ€±c‡°Š‚Ä=×Sürf…Ž3ª„¨­ËØ‚Ö\–(²þcØ}š­fLOþÑCAs–qYëÙ/=Üèáu3 ˜!vnwÏï+Vm2±Ð³ “·¢º-ÄÑëg\ÒiÆ,š-DÅëe. ^ä”=I[’׊ #Û‹À†-é²íÐvúÕ“ÈÚeÑ“Œ¦4]2‹(ß©ê&iÆhÁ‹…Å‹šUw43¶_åSVfÓS'§÷–a%ù# B·²déÑÒ¤gE-­’U–r\WŒ£¹ 0'sÚQK‚9æü?UNM~u§f÷õÏŠ®&GKÆò²ÞX,ÜÑýÌå©(jšÖÇ­'û눂ɆM“[ŽÐí³túÁ*aÂ’‚Zu=C òKÅâ©ÚULŠì®‰«æ9«ú¤Xœ±bcÑB®Í€³d²_54ö¢+]ÞîUºmedemÍ+‘Q_?fªžH§»dùŸˆÑ72­™•ñœ× '¤u=;Ážö€[JQ€¸*«%ƒD˜”Ö›³ª¢Ù)ŒzbFkúb.÷º™¼X/PJT/VŠfÙKY¬y1ë“t€VÝ9<?w¿—Ò’)mJÛ3çåo•üÞÊX±¨—')lÂÓØô¤‘/OZÈî±07M£îÑõæÈf_«ò¿íõÏmѼ8žEË Çé×Ôä¬×åÃ*EÆÓM¯~mûÖSE¨»xÁï˜9þìõÅYYR)ëeµê!›¤ï#U=é¡Òm7í.x¼}¥«J‚l'ÒM¯ª£Cµ^ÛÜõF{ÚV6Þ±ézãÿ“à)¿L+F¿Y³úkz̆€Ppg¢–èÛ -?²c׉v‚PÙäÕ…K†-zŽn•ë‡A{}$!d¡ÜD‰W©¯xŸjh‚9䨞¾c_Ç-8Rh ÅŒÀgIÌìåv®[°•ÙaDj«É’µm‰Hl'I1Ò4ì3óàbéy¾¡“á<o$š
+¡U©ÇE&¦xS@x«Lj£?š2³@bF 4ÝèïÀ¶'Kn–íl˜SCLË’ÑÊì£âIC©ÎV+PlÒ÷ &Š†#ŠC4‚V†¶]¬*ª­‹ÿ“1# ’Ñå\#ë%„‰GL/Dá atÀ°alÇIBž¶l ïZö7ààe½WkDÜpš‰ô›×R08Öjœ¦Õ0¸FÿFÃ#‚×ÒäªÚq$ýd±9]e&èÖ<Ë4¤Ü#ºËÞ{t vDH8$žk'.Xáð#&²ºTê g¶æ£¥B¡h ·š¥9¸ïlNˆk;¤t÷–êÀö]g€„¡ßßÿ<ËÄm‡£¬ÃK<Cà쎳æ‡20ŒrIÛ ‰u!nÐÍ"sAkúŽÙh¬kÆZRµA¤<§0b]t)ozí%á®3 w &:Áp4.Æ
+ÅüýRnžr÷Eÿáïendstream
endobj
-1676 0 obj <<
+1669 0 obj <<
/Type /Page
-/Contents 1677 0 R
-/Resources 1675 0 R
+/Contents 1670 0 R
+/Resources 1668 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1670 0 R
+/Parent 1673 0 R
>> endobj
-1678 0 obj <<
-/D [1676 0 R /XYZ 56.6929 794.5015 null]
+1671 0 obj <<
+/D [1669 0 R /XYZ 56.6929 794.5015 null]
>> endobj
470 0 obj <<
-/D [1676 0 R /XYZ 56.6929 587.7171 null]
+/D [1669 0 R /XYZ 56.6929 237.9969 null]
>> endobj
-1341 0 obj <<
-/D [1676 0 R /XYZ 56.6929 556.781 null]
+1672 0 obj <<
+/D [1669 0 R /XYZ 56.6929 205.1687 null]
>> endobj
-1675 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F21 950 0 R /F22 973 0 R /F53 1328 0 R >>
+1668 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1681 0 obj <<
-/Length 3745
+1676 0 obj <<
+/Length 3186
/Filter /FlateDecode
>>
stream
-xÚ¥]sã¸í=¿"o§Lc-I‘’8}Úì^îz{í&Nçîf*Ër¬Y[òZòfÓ__€
-–ýÓ…#›šËGø¡´V]î.´‰B££Èc¶wë´º®sò3QšT%3Tj @)
-€^Â?o2ñÑl|¸»[ÜßÝ~àv—£àQoDêÒo×›£éxMÇÇ5EKcbÂAô(Ú¾8µÀÄj¸},¶œ`È
-Œ´G¯Š6õù°4aïd§'¼ÁRŒ®Æ—Gc=¬ˆÂWçc=¤5ß²Äǯ:¨A‡rµ*¸ã±¡?öuf
-…`’)çݳÚSÖÿ JYendstream
+xÚ½]“Û6î}…§/ÑÎÄ
+?õÑ>í¦›v;×ä.Ù»{h;s²-ïjbK®%e³½¹ÿ~
+»**êÔðÛ&ª:†^Ñ9FŽp©ùXuLÞƒªæ…Ýþ¸ùëf„Œxû–×C9©Õ¬^ë ºɉBTõ=¹¤Ól‘–ÂYµ²;êAáA§Ð|¬6jµÕv·yÎ_»Á‰ÍbÃÚYñ„ƒ¶V @5Å{ˆ]JçŽûw5Ñ÷{»mjßö{_t•â²ølv ü¿ylúÍŠš‹r<·ØlšÇФ‹ÿå%ZÐòæRÔËävDr8©Z/wM«jÕÔÜZ°®œ¬ŸÂžq'kb- ¨’£]«ÏCL:ò*›Æ™T>rÌLAŸûM³(x—›é—öžìRìU·/öÌ)oÌ'U,Ñ^^Õ pV¢U»µÕbƒÊR ,T†½„AÔ‚¡ï÷@AÚ~Ñ–µÑbÝÛ2
+O-N­öÔlæA§K2½ix¸ü\€a1"‰ªu˜Ø„n1ìtÔ㮚W/é{Íߢ^Qãõ1 ©ÑiÝœ£‘ëéØA¾¢€óa0ÌÜ> 4ÃÜxS¥3vjR8ÝÄ×ÚiËcBÆÔ͸àp˜9±ðó«°ÂEPÀ¹†Ž|ÑÒ
+oDŒÜ-5ÃK¸—ä÷tqCÁš&i•°N™-\$ÜM(B'²@‘Oâc€i§þhñ’,Æ(k´ø‘ÉÅyÌ–6*Z;H³%ºuMž¤›
+ãd`2j»bß¹ \Hë¼¹L, Ç÷–Žßàà‚ç¹ÃÆ‚M„Ot§³¡
+‚YœALx>T ±Î‡ª€…«~,ŸæçÕ]PÂ<¿|ÀšX®`423@—ãx»+÷às[
+Y"VOà Õ’û$Ê%µ)5€­\ö‡úND4uÙ¾¤hÄUœ8Ù2
+€ÕYÐb¡µ`Î"Blj߶ÄûŽÚs™f±ÉôÑå,[®3+Èwèå, Rc{G×ô‰Û¤ï°™Geá\ãÓ?½&á‘3áW¹ÄÛg}øñ
+>Ô†³ÉЋé
+7ÿŒ§úq¼Ôi,ðÝçH'+løš¤baÀ†KÓ몆PNrÍ/ŠÃl´ìÊxúBS¥áfõ¶£”‰Þý?@s”Å/ý‡Ç2PlÈ/aÚGZDòÅãwú¡LA‚©´N†,èóø…
+ÛÛšLÑÿ÷'‹r4ÎDºüûC·›xºÓÚʯáÈ‚‰æájxÀ­Bq?‹ê²\•+tKîÅ9J_/qãŠMånh„<ZôÕ¦cPÝ1σ§:^ËÓ‚“/Juþ™¿$Ïàÿˆ&LR„g¼ÿùïJ‡ÿr¡F³LM'Z@`Vyê™Ba¬=æ<ü¯é”õÿ ¨Èàendstream
endobj
-1680 0 obj <<
+1675 0 obj <<
/Type /Page
-/Contents 1681 0 R
-/Resources 1679 0 R
+/Contents 1676 0 R
+/Resources 1674 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1670 0 R
+/Parent 1673 0 R
>> endobj
-1682 0 obj <<
-/D [1680 0 R /XYZ 85.0394 794.5015 null]
+1677 0 obj <<
+/D [1675 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1679 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F39 1173 0 R /F48 1253 0 R >>
+1674 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F53 1333 0 R /F21 954 0 R /F41 1238 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1685 0 obj <<
-/Length 3662
+1680 0 obj <<
+/Length 3658
/Filter /FlateDecode
>>
stream
-xÚ½]sÛ6òÝ¿Âo•g"Ÿ9÷”&N.wW7—¸7sÓöi›S‰TDÊ®ï×ß. @Š”;Ó™&“\,Å~ï‚â’Ã_qi–d2»´™f† s¹Þ^ð˘ûx!<Î2 -c¬ïï.®?({™±,‘ÉåÝ}´VÊxšŠË»âçEÂ$»‚øâÝ·>}üéËÛ+«wŸ~¼½ZJÃ>ýë†F¿¼ýᇷ_®–"5bñîïo?ßÝ|¡©Ä¯ñý§Û÷ÉègfÑ/7n¾Üܾ»¹úõî7wýYâó
-®ð ß.~þ•_pì\p¦²Ô\>Ãg"ËäåöBÅŒV*@6_/þÝ/ͺW§ø§MÊŒÔÉåRi–ÂþÓ\Ì
-HÖd,QRõ\–bŠË ¹\¶»å/œËM9>±à‚›ÇËžlÞcMì.£ÝO˜ÎÌhû»Çòj©T²ØåÝcoýSsO¿]˜öÂØ.º+±xôã¶Ü?•{ÂÁ£´£÷Š¼ËWy럺†~ŸËšFUÝvû«tqXwe1D*¿Ex©ê‘E#®.%H&K4pB°Ìéε¯‹5)RU¬ü‹1CɤI$p_
-O_oâÎæV.ïóÃÆãU-m¡cÚ„2,™õ{ ‹±”G|!.­¶,±VüÍ–,KÓtZ¯—ýŠËxI§ꔀet–w
-É&¦Kµ=ÃÆê­ÀŠöK9"1„ÛmËmÛå]ÕvÕº3•0e”>KBtJÃÀ\à´Ji; ÂY‹Lyd-ø„Ö‚¿]˜ÖEo*|ÞW]ÙÒNÖì_h|hóÿÞñ´~ÆoVÓoù{ÕÒj.HiSRZ` °9cV% LâÏi2W`eY¬ÈÌ‹¤P•T±$lkFU «rœÕ•k^Yz,ÜqW3:’f ,Gß: MlŸ2s1!n}\cìQSïQmðŒ6ò¨éxt§¶×D¨ºÖ/º¿°Øºl=àÓ{Qc µÒ)N8æÖÈ]%ü¸]/w|˜”»_¢Ò,ý5é—–’%&AÁÈs<åûëý¡¾vÚAÿ3Ä„ze™Nµ>úÞ$É<ç`ðÙÊíUK°CëŒV/4ãyò°Ï·§{Ì;š{Îëδeíßo«‡:ß´ý´;ZOÚÀv¼›…‹Uu]Õø¬Á ˜ :HfÐ*…^|E¾ß¿ êiÔ‰fWçc}u‹ÕM]N…,õ‰HýKEÕæ« ¹HÔÈ ‚[2‹œàŽ«ø|ÜH/~‘Ò†-OgŸ«Í† «’Ø#%xOaÅ=¨ª†t™ÉEŽü¥zµL «GæX`<šøÕa´ò'Hp‡O 9ÀDe·MççœLO)fÚªÀÈÆIˆÃRBBUrÒÏoåËsã¶vÂ¥þG â ÊÚ#à‰)g9´åžÖ-{Ï:L.Êz½iœ>»éÚ{ãæ°ÚøW¾€í¬5™a\òô¼±æhåò§r}Ø· ³¹P+,ã<üY
-z¬ þ@óRk†4P´5&Ž¶Æ«µA…‡<ÔÃz¥5ÁŒ9\ûÜt0ÿíPÂ
-ûªì'òŽFùQjfŒ ÇºÛ¼ˆž=‡äRZrŽ°¥6ZÈ(ÏuÑ· âö™¦ÿÉs· Òü‚ n/ª)‡a˜±JÿÕ9.;G×$Qék¹pê<c^QíëŒj,—½šF
-È^LjÏ“ÐcMÐ0Ðm‘²²´!븎³xrY÷:Š€>¸öY`æ»´ÖOD9£{£¡__oú¸ÞŠ
-ÿëê-@=´Ó¡ Â%ãš›©‚K%DÄTN¨53¦O!1æJ]ñ%ÊVðía¶âISÇl%Q3º¨`±¦©sô$ÙX:_ÜÄï¦z&C@ÿ®¥¹ÈxŠ*ï :Ìà…áX(^Š Ä• ÃD…mîmª¹YÜÑ•FQ¶ë}µŠÅHe¥TÀ\Ð-#S¨ ëSÐäþá’_"åíñ—ñ §Ê{º.Òÿ\5uhðhuè E©òZ%ŠNŒ¨ÇzŽ“ÕÎúY&Õ+®#Bš÷ ·[Uu¹B{>$ê³»÷H§ÛOD;ØŸâ¡Uq<´ä3šÓc¯?
- ÓáÀ€/êe5 €òc5ê(8o©Àç¹n&÷ГIÚ«O{Ø7ö/,7S:-1}ˆO"¡$Ô(Ÿ„žø`È=ScŒ/TP?Nç¡Pƪ>½vÆ<KÑïNõÆŒaZX9$ñn8ÆÈq7S0H©Í¥²Pè©4{%í èËÿTíNV$}J
-w7™˜>QBèj@Щú¬Wè8] A‰¨ŒÚL^)sšvù*ŸÃ&ßœDq΀ÎP¤©Æ8ÎÛŒAYøOµÜ5›j=%®XÑI,5Ê-”ß­HcÝS€Ú7=7Í:ŸÒP¥ÏxPf’ ò©·õ}^ÁÛa¯©¦*£ÏÓóUs肃…Å}™wzŠ‰Y‡ª ƒê•F}ŒuÆ¡¬‘CužìäFGÃÚYzž€k‚‚aÛDË…’@a>SäÝpàc}Fµ1B¨§
-â6 (È
-¹Jõ®2,æ B­}ØÌTè,ª±‹ å=NÃf¦|¯Ò5jµS™¥¿âI±Òᤥˆ8eŠHÕy9ÆXórì±FrÌ7§Q{%`Èg÷ï±&FÅ/°“!NŒZ@´yh  =n© "D°!œÒ…7H„8׋Á‘SÎÿ¹Â†0äû„
-©ÿ;‡nË`yøð¸Í×Ëö1 Wm =ûDŠ?5u€
-"{C×8áei’7t- *ã!Ñ‘ñà
-Íl ƒWA’”ç)®ÁüHéúë(åjˆG¹He@hDÛ¼‚áwʾҎ±Î(XÀr7$;oŠQ*å󛤉MG% Î”nê»téâ§÷Ÿ¯ïÞ}¦G
-Œì¢>lWÔˆ wx<ºsXN»<@¥„@¾cTVO®wŒ ’Ÿ{µ.zèûÛ¯ôª/¿»fÝlü^ûüa(Ê5z˜T÷-'~!©X”ˆ[ßTJŽP ÙóáÀ†hã¦l›W5õ½±é€BjCÙylÔhÒJwÕó7xJ„ëIŒ¡gnÃ,ñçwqâ€Ýc^:§”Ñ_ŕȪ ‘.ôÏB‹}Ýl·‡ºZ»Ü°ï±‹•‡M³Êý’ÀúY Çü Kì+.4Æš×ðËÕd ÍvY”OÕz²®°‰ç·ï±&ö×”fH€Óv‘áMåkÿŒ þBbCª¸{!
-‘P§£û–f‡õ (sûÆ×1Wõ€Ï[ú½ûçÍiæT·¹Ko]´ É%L˜–Tkzè« Î}§ž.‘Kü¿¦Æ»:ðú™7*‡¹ó ;tôÀË¡BSIîÜrKM!_ÂaËÛ)Œ•+œ¡Éç26÷|O¬ÜÒS_â)_âiïuò‚žbAúgüw$´}å ¿y ·u¡ƒG,Ž·øv¨öäÂFûÌÛ°Áæ•ùÞ‡ m¯è+
+xÚ½ZÝsÛ6÷_¡·“ç"Ÿ$ð˜6Nêë5íÙº¹¹iû@‹´Å‰D*"•ÔÿýíbŠ¤(¹½Î4™Dàb,ûñ[€bÆᯘ™„%NºYê43\˜Ùj{ÅgÏÐ÷áJžEdZô¹¾Y^ݼWéÌ1—Èd¶|êÍe·VÌ–ùÏó„Iv 3ðù·?~|÷áß÷o¯S=_Þýøñz! Ÿ¿¿ûç-µ>Ü¿ýᇷ÷× a˜ûÝÛŸ–·÷Ô•„9¾¹ûøŽ(Ž~ÎLzûþöþö㷷׿.ÿqu»ìÞ¥ÿ¾‚+|‘ÏW?ÿÊg9¼ö?®8SΚÙWxàL8'gÛ+m3Z©HÙ\=\ý«›°×ë‡NéOËŒÔ hR1›j9­eÁR!€)Õœ%2U–¥˜ÒräB-·ŸŠ—ÅsÓd»rÍ6{¿¸ÐŠqa“Yö:® !dO¡SæàÏPŠåº¸^(‘Ì¿¿ÿÆP+ãÛ¿p.7£­é÷ÐxB:ª÷Dùðð°X>Ü}ý»<k‹·ŸÛùÝS½.jÕ»¶¬+jGZS´4gVåÕƒ™-’„iÎ5¼ª`Îéš[í¯…yQµe¶KÒÒO*µšWuK XÌÛ7ø`@|ª¨'ÈJ_ËM˜á± J¶ÙÔ_‹œˆ_ËvÈÕ ‘@F¢l³vµ.«g"gDÜíËjUî:±Âš(
+ì ,‡­Çb"f‰Ä0¡jŠ{‘ðàÍO%Έ»lßN¨Y€žµ5QÏŸXZN¥ýðt6%zT/ù¤|~„·Ü-›"hI¥P¯Xá†fDªPq'”
+ZRɱk %` -AGдÎh Vä]ˆÝ®¨·¤–uñ5òò¹£Ð×Ðv梆À3Üÿ§!“¸ù]EÂok Úøf«¬)š7ä×gœh¡ ü¼:*'ha¯Ã‰Å%4ß$Hi¥""‚Òöo ‘bHC>\à ¡@t$yœluÜnz¬êjQüVBÃDÆæðxœÊÍ7å§"ÔGA¼÷Ä”Þä†D
+¹×(yÝüžJZ2g­®£q¾EoÂÓˆï`p’ênÕ¸Ù!6L
+Ø +£]\ÜɈšàõl$wó—ú€ruApÒÃ÷_²}!5¸€‡-J^`ʯŠGBåz¨6EÆv«Æ(JåƒeV&ÉÐð~†ˆÒþ1¨ )PÅe¨Ðç::®££®qÇH[˜6}eíŽkbñ!RP°º­¾$ôšÎß
+ƒõóâ»b³ÙzOŠI
+|¥‰Ä}ù…TÔ *h=Q©· y"
+üì. £L@õ'e‚Ád ¥Iïr1Ž÷ ~Ç9Žã@Zwsãçý
+
+mÜ+†}® ~¹<HÉVëbêÍÑâÎ190µxdšX|œ¸eªÕpõå:–2ñ×>¯4€­Ýù“ŒÞμ«G8åyÝñ„iç^QÝ‘é‚æ“Ï ‡íîŒÞÌ}yåŽété¡Þ°Ó ×^F ¶ËÚu„hÉ)DëŽ
+= 
+ Y'
+X—öÂeÀ
+Ž¢øÃ}ô­$êŒ-ê„AM<„©çäI
+SÛDýåàñ‚H¯+ų Ãð+ê {€A úcíã—ì:ÄoÏ\ZÈÔ‚a’ 
+n’S?â`xðf§¢ÿ¥Ä±Èendstream
endobj
-1684 0 obj <<
+1679 0 obj <<
/Type /Page
-/Contents 1685 0 R
-/Resources 1683 0 R
+/Contents 1680 0 R
+/Resources 1678 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1670 0 R
-/Annots [ 1687 0 R 1688 0 R ]
+/Parent 1673 0 R
+/Annots [ 1682 0 R ]
>> endobj
-1687 0 obj <<
+1682 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [222.5592 527.0395 286.2499 536.4491]
+/Rect [222.5592 173.9063 286.2499 183.3159]
/Subtype /Link
/A << /S /GoTo /D (statsfile) >>
>> endobj
+1681 0 obj <<
+/D [1679 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+1678 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1686 0 obj <<
+/Length 3358
+/Filter /FlateDecode
+>>
+stream
+xÚ¥Z_sÛ6÷§Ðôå䙊‚§On¬äÒ«žít®Óô!‹SŠTEÊŽïæ¾ûíb)ÑÊÃ%“p±X
+]¹]eû²¥Å¥œ6´JÔWKF™ò2WÏÙîj·¯®œ®Ø¤ZóTC©uÉ$ªøEhñ`Oá&`
+Ά©"ï†ùÔ0œ‡DŽóBHµh×,B®Y«ô“I)ñüF‘p.ÆM.Æ ]ŒˆüŒêàb°áv
+–ù†‘ƒÌŒÀ
+½fžW
+oî#8L“Jõ}ìIÙG/u´YùtAÉòÙõ;©†2Ò$•C Ü6FRMaýÚzƒMÚBd»-D†ÛBä´~m!öu[ˆìÞ!¦¿^¦Ë"'Ñç¬ÜÛ†—ô'ëM¶œ5ëL¾FZS›6-JÀtÇ¡DaËœW3ÝàPÇŽ“teŽe´ Ñ‘ ï
+%õlrÉ[H Ã~ŠkÐ
+~M.1
+=
+§÷÷tOªÇÞ.¯F(Rök†àáùÚÚß$°`±ò÷îîöx_–!½xíiiXË‘÷dÔCÞLe–;¿îvÅø/o€û}»ÆKÆW’ìR
+lPµ$ü1Îá%ßÖ~OV¬ˆáŽ‚÷û‡y,:™ji½gÍ,`Ü\£×v½Â0Lý…ŸéÎ:ðx§t¤§×nºÆ˺å@ø“Âôpªy¸{'ZpAã\ 0»åŒ7r˜§å‹JÓwÒ<ýÈNqÒ\ùÜ@»ð·=™Ë;©i˜·\ÛåŸMÇ|@avÓvwLìâÉÑ%~ýk_‡yä
+vË°Êù¥ç.[À"nì\yMøÔx¯Ý ËGŽ]v>Œ
+¡+6E™íœó"¯
+’ 1¸p9%m³Do‹D¶+¼ToÓ e7[ï?Zä~æTUMôÉ9vóµô$Eô1…S-`Õ {‚Œ‡]æÀ(\ ¿3¹õIø½¾ûï9NCê]í`Ϩ7LQ&F}‡lšˆAè6+ ZÉOŒBü"s3ÿB—ü®ÈŸñk¯Ó8æçüŸ×¤Âž¤o??Ì?ß"E•×õ„ÑÄ%—DyNÅIì‘=ùŠpŒÜk€°‚¢1²WåıÓÿ¸é¢$0¡H†“ŽVnP—Ó îñ]n¿ûÉò¹#÷MGnöÝo|ó¿?tßNúK“ŠÔ9V4™4Õ·>tõ„Þ.š¼»B/¼WžuߘšÓ’IÔ<·¾—9]øõ[ TænH¼W÷_ ãÁÇDêá›Q×ÙÓÕõ¹¬!æ:¶¬_¾5#å¢3¥åôJ__mÇ:0Q¨†€Ø–£Öã@F©ä+¤qK™À˜
+endobj
+1685 0 obj <<
+/Type /Page
+/Contents 1686 0 R
+/Resources 1684 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 1673 0 R
+/Annots [ 1688 0 R ]
+>> endobj
1688 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [80.6033 371.7332 149.9876 383.7928]
+/Rect [108.9497 731.9163 178.334 743.9759]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_policies) >>
>> endobj
-1686 0 obj <<
-/D [1684 0 R /XYZ 56.6929 794.5015 null]
+1687 0 obj <<
+/D [1685 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1683 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R >>
+1684 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1692 0 obj <<
-/Length 3717
+1691 0 obj <<
+/Length 4004
/Filter /FlateDecode
>>
stream
-xÚ¥]sä¶íݿ“'yæ–G‰¢D%Î8gßÕIΗھ¶™$ò.íU£•6+­}n§ÿ½
-gæ‘fC¬ooŽÞ¾Wéq&²$JŽoƄÇ7‹Ÿƒw9ýñæüêdi$âd¦|{qyF=ý¼ûtùþâÃç«Ó“4n.>]R÷Õùûó«óËwç'³ÐèæGLáÀ„÷?œôáêôãÇÓ«“_o¾;:¿éö2Üo(nä÷£Ÿ•Ç ØöwGR¨ÌèãGhHfYt¼:Šµ:VÊ÷”G×GíFÝÔ)ùÅÚÅÉñLÅÂ$@cRÊRH R›¥:‰ŠT'å(œ’²ÇB)oêº-liï󶨫Y]•O»[Sà"MÍñþÖÑ€ÐÀ¾uŽù¸9Éd°ÝT'3edP»ß0°'aPÝÕ›“Ðs»²UKýõáí2î: &róÃYCè¿H-ÛzMÝ¥}°%O¯WyQ50RG^-h†[Dƒ¢€ )‘„
-÷ŠLëÈqü¯º² ©ÌcÑ. Ê+ú­×ÈT^RË~™—Û…¥FY4­pt%
-MdÈ ž]ÃÚ2~ßÚM¤±‘;N,5ì—µ·vA­¶¦ß[]å ;¡í Pòªy´DÑ<Ño/Ij³8rûã‰S\oçË1“~Á¸U£4#!Úf]W“tuÛÁFKÜíÈz,”bjPnvM<9üš~÷N;×tdsÛ4Euïé,&–­àX0¯«»éVò»¹üÇÙ§§ì&v·]¼ðC±p„P Ø5]ž~dŸR0.- À¢hæõCnµKÖ”ñOÌWvRi.з¦JÂñ1&Ò#@xŒ5vƒ+;ü¼lêAo3 &ƒù²(„×Ï.ZþmhÄmÉM*ó'&°®ánKžâÔÑ1×Úͪ
-à~¾:x^¯œÈ¼#‘¯¨Eò`¸yl³r
-Þñ÷t,z™jn=žº£³ä.o0ŽÖ¤wîÏIEOŒLgëÐÇ'¥cœ:rÇuËr)EYoÕ<Ýí ny|¸ q®:»åŒr”É’_AÎz/Íä'4ò/-H2gÐ.Zö¬y‰7sœu¢ÑÛÙùoM×Ýë»oènÚ¢,G>ž]Q¨´ì«ë;ú½ƒS·4±r~é¡‹–¶š¼9='l5Þk¯[Ë&Ç.{±s-dŽÒu±*Ê|ãœ{VŽÁ…‡qƒ=sô¶ä›Âc  Zvµvê+8–…Ÿ‡QUU¼gÇŽ^K¿¤d8n1¶ »¨FãdâˆÙeŽ„âyðÒlŸÖöÀý{zùÓI†Á¤ð.k§'18 ¸s¢`BñWn"Àèî6s ŠÉŠ{VÃ_¢(>;Ç¿oxÀN²(ø[×i\ççküËkºû€±?~¾>ÿü!”%Ó½Y’’¦.¾$È÷TÇîh›ý²Ì· ª¥“ÂÛ÷ñ0[
-·Û¢lg·ö.‡«˜p’[wŒ°þË_3.{ Ð+Îcƒ¨T3DT–[›N„ŠÍŽílêÒ„ØÍY­»ŒkŸµ Š¥ŒÞí[lz’xF ÷¯?ÀL„‰Nþе¤eªçG VÛéÔÄùi¡!2â9ÕÔé…#µxÓ ¼×=Ʀ“”£ðN/¡Æ¡\-"B[ò
-íõ
-FH¬’“ømÚº¯>¶“¿·áÈÙ¹Œ|Ø6Ê ÂT ï궨ÈO…kpɤYwÉ|3@ˆ‚a¾¢zÓ…ŒòX¬gÀaYçÌ<׿†ûô#nZçmq““Æ® @SQ6Ö’7DdÂdJÕþ9M‚ÜD÷÷jÁµò‘é5iȪIÍ«<—‚+Ð$Á)—SêõÑw/#}a'óÇè=7ER)K_RaãD 2N줗6„²7˜žö W£°2³Ý
-¹g™ˆê÷ø[ß±¶ÊL(•Nøt•øçÒæ wà½ûJÃeí¬Gîý•°_Ö{É,£Ò5\ `É$ž©ÉG:±z.fªSƤ¢ ½õÌ×*¤j2({9JápQHHb<Ëd,˜?í…÷`ã`æ8Š_Žïiø·c}?ˆõýŒÙpŠ öÇ&¼GX¶íºùúíÛÇÇGQ4sQoîß6u¹u©ÿÛEùðv—CˆrE¦€æ˜Ã ¤ÃÚçj$—}jÈÕŸ§bQ‘Æ&íLÁ)[‘*­Æï#­Ü ê`ˆ*Î8ìélû2ÏUC(Å”¢„Â_©ôk%Yï¤JõLXð®ÞVx-öV
-cStRqñ󹄌¸õj]ñ"·õv>c¤ÞàÚ"ˆš_r° ÷L%cyƦç;:zeË'~^Kz—Cïë.•TÓå=üÄÖ¿:¬V.ÜÆÐDÁs|‚‚pž{ržXŒæý¾õÖ=µ7HX!ñ‹^¾<Ò8ô 'Ä„B”!,QÜ(©‹^ÝnÀ™Ðm A&Ú‘I±LT#Y ´¸-1
-}Š{ùéæüë‰mÃ~t¢_±é$ö›ö¤Æݘ s»i)­„ƨ
-z³àרaw¨†Q, »¡ZÝ|é¾tÀÎÇe ˆÜä„¿N 8’3 :ž†Û™?ȧ©üæmÒ
-k6á8ü5þm¡|ŽßIøoøÉ\1ÁHÿ&jäøKˆ^fX/rzÏ‘Tàh£ðåD'œØ´[µ+
-Ù… ¥v'aàƒméÊÎw6]ÑßA\Ö•
-5xé2Š9ÅE
- Wî³kvHû‹ŽM Cö)1§ð ´‡/ü9¿½R/&b®Ì2o›É2dŸq¨^òh6©„8H›ÖkÑ‚ŠºVXö\|ñãCL‘c¾Xp0â¾iÂÁ–CÍSøG=ýGiÐMŽCìÊ)ድH¤JvL 3F÷½þJ&=;õv4Ä8
-.Zu!%~oTµ¾b ½-S¹eª|9#~E#óºú続û‚sèÃ:üè‰0.éPˆbhÅó€+I1xI{ý'=ÚMÏ3ê´{̲è:*ÛúŒTiß~Nè›ìªFÿ÷'¦ý÷·q*”1•L„‰@Á™)Ü€Îv9×Ê€~Géëÿ6ƒendstream
+xÚ¥ZÝsã¶÷_á·È3  æ:qî|©“œ“úÜv:Ih‰:±¡HE¤¬8þïÝÅ.ø%Êöµöƒ@|.ûñÛä¹€y™À$ar':ˆ„ŒÎ›3qþ Ú¾9“Ügî;Íû½¾¾?»|¯âó$HLhÎïW½¹l ¬•ç÷ËŸf&ƒ ˜AÌÞþpûþ替Ý]]ÄzvóÃíÅ<ŒÄìýÍ÷×TúæîêÇ«»‹¹´‘œ½ýËÕ÷×wÔdxŽ¯onßQMB?'&½»~}w}ûöúâ—ûoÏ®ïÛ½ô÷+…ÂüvöÓ/â| ÛþöL*±Ñù>D “$<ßœéH‘VÊ×gÏþÚNØkuC§ø§#D¡6çs¥ ëOsY±”Ð)Ž’À¨Pµ\å—}/äò²¬ël1/ªê״ΗÙxÛŽEbÏûsQÐöš !ì‘ ´&RiøÇ:+û:œÕYó%R0¢\GA" ³8Iòh+Æ!Øî.¤Uз¦ušuF…Ç´È—iSíèó7k*¥LQZ4Ù®L×_Î6Y³®–<IÕÍ1G"€VÃÂÈ$Q½4:R³w·¿»þ'•MÙ¢r¿Ëš*Ó5ÓMµ¥BµâôóGUf Ù*ž{][•¼¦ ib˜fG¿YQ£–Õ&Íy¢z›-òŸ…³% xrûÕ&™-³l›ÕÍÄÉŒ mÃן\ @š„| óƒz¦%Ò‹nŲÚmÒ‚Ê°ß×o©Ÿg^•Ô¶Nkj(²UCUí¿fOÔ¶/›Ý…íë&[òŠØ‰NTÉ@˜¨=R²M¾ÿ<-kâ)
+OQPéO/Ýn³rILdy‰¼ðA€~eºá*Ú)èçÝ÷I8ûû”ÈL/λ~ÉýÖ‹}×wÊWüËr±
+tj­Öiåä´¤öyÑÌsþZf«t_4ô'¹wÇë¯P°’N
+ à8¶0ØÕɹëÊ|cm¥@¤†çÓ)™hå½ãü¾&­…bZTå'ßÏYr¬äîíð‹UOÍXè,Çë0 ¤‰Ìg¹¥HĦw~¸r+gÓç0þÌË©Ó“±`^4ìÄ1a¡.«¦ãcà^ÈaGŸ÷NMP—¼
+Ìã‰q>Œâ@Ãñ¾B”¡cÜšôÊnÖO{u(QOá{EÈvC3ÉþšsP<J3ª?¾MÐâªóc/c á{jýõÜ—¾ë°¾0ïpP°ç£yqõuÓlë¯./‡C׋ Ú}º¬«bf·¾\—còÂ$ " öoHß(þh{5`ÊñlHÕŸ§phk·jà-”6ˆU¤†f‘Ê=Š ©8ÚÈI^¥öáÇC‘mjê’O ‰@’x”˜ eÔ×~˜ÕYr\pUíKt‰†BåP ;‰7´øñiQWÜ·ÚlsR\¤¶¤ÚÖ^ 8
+f-Äü’qA’(3ä§M õH@ï²â)w^<63ãc´¼Î¡Ä9¨!·ö6µÑûÙp¶®p;Œí¹&åù`Üo{¯ÙS{36€ /|ÙqÄZz8`ó;xÒ§9Š›`p;äêv†„<
+°·'¸·?Ü_5±mØOd¢WlÚh¿éª,\,e·¬©¸Èv …”ðц” úv’íJC6T £¶àõõà+4(6Uñ*çAdœtŒƒŒ§©Ä±& µ·Q
+Ö·l ~˜fÓ]„Œ, ½iÀ©g»©üE:qìˆ#=¯šKLÌO™N hÂzßLVo¼ÈÀšÈ[×MZ¦ŸNÏ^@’ï 1@“on8.œô>Q:ú_#iæUÏ”¦‹&ÌNCÀ#Úõ‚1ìõzÆú^LºÑGd;Ráó«úN«6Di3\õ~M$ˆ½>ˆ¼ã
+ŒPfhJ;›c$Úø<5ÖŒ²í¨‰:œÝ4Ôê@%ôÏËÆçk¡¶áYxVvÏØ¿¤–EUþk_.|ºYz`¥”zÜÒõø+Zñ:4¹LŒð%hœ'ŒÚXfh;Jò˜D0È;´ „k§Àœ®È
+Žþ1ʇ}ÑäÛâù¾YÝb—¡¶yJ¦sŸoû‚}ð³ƒT˜Ó“¯ÓGîWdå§fÍÕtÿ!f*d;¢…/X.D† žvN¦‹YÂë¥<ÙÖC¦»÷oyˆˆÂI⯖ËÏ<Á§(-᣼]Í)›Mpu÷#¢ñ+êB ÛÈ¡bé“$  (yÚåTì€;ÜTÑoïB‹º¦Tº—S’e˜˜Ìxƒ/ 5¨ý5)áu½AX‹·U¹¤•p’ÛùÕ»ww§'Ú×mßú©„éêü·o˜üííÕ‡k‚­#¥Ñì”àåî1ÛMyˆCU=ãÑO:€—ÚD}-›ƒ7à-¦fÔѱìçbBÎÅà¯7 Š„ü¹ ýk&¾Ü¡Üа‰7ãÊ$¬.—D¹‚<†Í^1Æ£ )Æþ>Þ¨½ìGuÖ4i«…i3
+$óì@¥KV¹­KËxe|ÌŠhšáJU9HÄoɚχâíÌ xûzR O˜ÍÀмl5­náÈ~»­v §]~Mù­RœÈñ›@Å¡·¹ À†eSO#h Û¯Þ~ïµk,³&Ûmò2ãµ9Á&?+ÑäYŠ-é
+?VÙ¢µOÔâR"|é¬
+͘RÓ…p/žÂ*2ÃXb•„öê€æ ëÈScÕŽ*6mâ¿£êh $ßà}€{.PgSŽöè•ZF
+„#Û}EùÖgăjF­v~|ÿ¤5OÂñ-˜ñ&æû0Ó·WXíÔªéÔø)8 wî«vi^5þ- T·a+”9l5kMM8^FÉìë'Nì‰À˜ñ“…î„LØ:¸"ÓöVÁ29ájÁlF€•}rû«³ch7¤õv£]VbˆÐ,Ö´}ÙÆbkHÆ£4Âô‰ç ’?à vÛ×¼‡‡öé¸;NœÿAð¯ú¬g2"no˜v˜y«ÓÌ]nr2ý‹ö™KŒÐËB,Èé[,eÚãç“®ÅxßEœƒ‰[Ÿ$Û؆—d3 ”Eź50¬—KmÀ'}P`Ûàv†íTË <M¹Ól«’P9~Ý1ñ
+B`Û IV(4¸v¡ñï‹G¬7ÆŸÔÃ.KS2oêœ$Àò¸ÿFú·0Rœ8&@´k_Ê  Ž çóÆ×èŽ ?ÙõHáÇ¥“¡Œ÷·ˆÀò;RtS±Ü¯Ñc@Ù÷hÓþ\¨ö…‡n!œÞX \â"ÝSö öYŸ¹VÝ-y`ø^áêRéæ¯VÔB×£îaƶëOuññ«Ñ%gˆyÌøY©Ðµ±ç)^{°áhßáE‡{ÀáM*4½û¡O‡õtÄ3O`Ó†qŒWy¹¨6-xEMh¡à ·ÓeÒ»»7ßÔÃ(´u¸Îg/º0u
+ ôŸQõÅfð­uÈ$?ÁÄE¦Ž¢Ó„X4Ñ:!@´€ Œ€•W ™HKÿ¦).í.Bt"½”ÆWÄXq)CþþÏ›SÕÑ«É|³h=Æÿý½{åÛTÖ†Ó™kÏ0êSž(dAd3ô˜Ç1áéÿYÄ@Úendstream
endobj
-1691 0 obj <<
+1690 0 obj <<
/Type /Page
-/Contents 1692 0 R
-/Resources 1690 0 R
+/Contents 1691 0 R
+/Resources 1689 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1670 0 R
-/Annots [ 1694 0 R ]
+/Parent 1673 0 R
+/Annots [ 1693 0 R ]
>> endobj
-1694 0 obj <<
+1693 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [116.6985 242.3486 321.9289 252.5104]
+/Rect [88.352 595.5062 293.5824 605.668]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://www.isc.org/solutions/dlv/)>>
>> endobj
-1693 0 obj <<
-/D [1691 0 R /XYZ 85.0394 794.5015 null]
+1692 0 obj <<
+/D [1690 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1690 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R /F11 1353 0 R >>
+1689 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1697 0 obj <<
-/Length 3596
+1696 0 obj <<
+/Length 3656
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ¸ñÝ¿Â}:y&B€
-.pQ¯Öy[ÞFìW_ìÓÈïó†[Õ]{ÏÓõ‚~µzEƒ4‰ÇcyiÏ«9K›÷Ëٺذ ?\ð+‰Q£ÄŸÏçe[ÖU¾\î€UÊOrüq"ý¡Ø4Í_}±âüúË™W“sù30×Ëå’F·­Íèý¼-æ´°¨74hï¤Ï^ªé—Vê‡rΠ9ͯòõº¬î!­ºSIáQáT´G’ 3U¾BQà0l—˜=ô¬ÞMͺ®æ´"ù<=ÿþúiDÛ¦ƒmv kÊ?ùùÅçóO—Mà=è³ìéóÍóª±é´)6Às†îk¿E#ÑÞB`ý1FéÁجaB8««6ŸµcSaÓL24)½% âï¶Á#àù„¿Íº˜•‹OÞ3òFA‡ûK|˜0&e…A$(<­ˆï  §2MEª2™C~U­a[¾þ² å$.zhŠ¶Í;+Ì[ú%b`ðP4zÍ&·FÅo¢1>Ë6¨êvl§š½E¾7>xg:TïàNò¦lF­ð2ŸÝÈS;ÌT֗爕.Õ Ôl×ëzÓ6lË@šÖñ¨ùrdo…Î
-±95±pŠçõ*Göà¹a±IÂzýˆî ç(RãÔ†&Vug†ðt´ÎFE«óæ-Ìúyßcö
-ƒ²iMôsÅ·Ùr;/Æ”8˜%öý`V× S…q a–ãv¼õ‚égY6-AÇ…Ö‘@S ¤ìõ”BÔ¡æ ǤÌœ£œ2”w‹`N å‚PÏådGhù†*ž£Ç(|œBáÿÀ›’,qt œàMÌõ> fòFÄ`TÁ2ZM0á~î–w¤ «Ý“›Ä”c'hèw8ïuð™Èdâ¾Gtê#Ü‘¥ó–UÁƪµ‰M|7‡µÏ©§‘"K•étˆkûG½¹WÆö3/DŸ/´oKÞgzþ
-§ƒùÃ4x8PæŠ/”!¼âÔ&/—”Žâ÷Œ‰ýl“·ÆåžÎÒâyXã'ïvÄ—k¡\F_â#JγwC¦Cõ2'œ&‚¥"Ô‚Û4+3?Þ¼aYÜ<zV¨]ôݶK„vvOÇ—]­‘Ö’óQzƒ9#}ä ’?à ‚m>ÃmÌTAURg²ƒL•Ò¿z4ÏÉÚ‘dY ›b¶Ý4ÓLëj¹KÛÈë¼ ^1‡SÙqx°…vBYÉ]1–à
-¢%Îâ.&É®¶á-ÙÍÃB 4ÌÝ3Á{=RÑö ád¸N³l‹MòzãLfÇXí•~BåBänFN™j‘BÚÆ'¨êq5‚‘híIŠ œE¬·6JêvSä¿O!ckŠÙ˜œ$¤åYOLJ&$&Œ‹)PíºçÅ”‰D›˜_tæ¸Ç^LøÈ¡G&A8(C¹ÒFOqG&{T¬÷ÀkŒ0Žù²œcEÏóõvS7’Ê ˆl–o©{Å®ùõò‚¦E`x^€ãÚÒ樠p%Ôá}òÀ4Ks«¾rã<UVaO+{V+Rá\yúkbvYÔ:˜“˜¤¥Ñ¥ÂÒûŸût¸HG6‰v5­Ê2aÜÐO”Õ¬^uÉ+ZB—
-z;€¤_ƒ
-Òëë¯W›aÚܳgû2u,àüb_mL§6ý€LúíŒt`y™p
-ƒ¦N„K2ʇfð¾M`ãÅLzéèá_ô#“×î-¡8‘Ö½–6Nd8ñZ*~þ÷ÛèJ)½Ö½J)
-%5ˆø©Âdªc‰š^¢ãàà·ã[€¬Çü_ˆÐ]£±ª§›"ÊéÐj‘ù®×ˆÊãÌ“Êã…‘‰|YwŒM²¡î
-P´f¬u"ñZоÄN%¼r~ÀNDM”ÿ³À+|î| ¡¦Éœ~ N‘u ìcH=%µ™lv<TSÈše:d3x£n§½ƒÂÞX.艮´*€¢‚r`\­$d/Þ¿Ä`ºë7¬O´ áìœ0¯—yE!·¹§Ë‰9‘A¶ôjÔ^¤Ðºkß ~ïûKê(ÃÎz沯ÀaGÖæ 7ó@™3!µ=èPt¾”Îõœ=Ä&v|ÎÄpŽÃX³áDdè9jë4ÛÛUÙ†k|í¯%MÜqôPòÔ|—W+"#ªö›½¿ü9p‚ÑPº’dWĆÀj½,VÙƒõ„HõD¶+µDA¦Ïg»}¨§³Ý*ÞPN›øÚ
-Ý’zgØÚ=Ôn*¾éŠD™î66~«`é–‡;â‹mö<Gîrgßõçåµá3‰cÎBÚ­t÷j½õÆÂJoŸÃŽíé1äxs¨u¿„P66Ž#h’¤®·Ë˜¤ÂiÝ]2¶X¶qI™À6‡e1˜ÚxÃ|PèÆ*çz:çºNÝP+-^zÆàÿ÷ðbÛe¾§—>ë}ÂNËMVeU®‚êÁCŸyøÐeÞ9ªBÊ
- òßHÀˆ= ¤[¾f¬ÚØã‚b!5p02’íêô-Kcs†¡Ã¢FåiXÓñæ¶B&3GbÿMì°ËÁù´Thìhá–(ͧŽ¶"g‹Óãz!3üx@ÊžÌ ù3¢ªsNö¿ ±ðÓ70#MÙ*ŸNÔ›j>ÛŸc¬¿™†
- çŒ°“+Ux/^.ÊÉ|»ZsœK ÞÕ»£€VÃ{ž®7†&öÅ𦯻î5ÑÆLU ç»>aYŒo$Ë…Ô·Oð¦ëk[txás(4˜šN¥9µFhØþùJ¸ƒžîÁÃÅ!ÎAL×ÅQÐÔÖ‚0|Ö£å(du0ÏSp€©ë¾}}ˆ÷*z´”t÷@ÿ÷—‰ûÏ6!µ‚’ó‰Ê]e¿åБ¨ðÑfrœ]ð'ŒÇ¤ÿîG²úendstream
+xÚ¥ZÝsÛ¸÷_á><sÂ_$˜<9‰ú¦ç´Ž;×™»>Ðd±¡HHÙQ;ýß»‹ R¢ìdšLBX‹Å~üv!~žÀ_~n4Kd®Î³\1p}>[%ç0öñŒ{ši šö©ÞÝŸýt-³óœå©HÏï½¹ KŒáç÷óß&ïÿ|ù×û«»‹©ÐÉ$eS&“w7·¨'§ÇûO·×7ÿ~wy‘©Éýͧ[ê¾»º¾º»º}u1åFsø^øN|p}ó—+j}¼»üå—Ë»‹Þÿ|vu÷Òß/O$nä³ßþ™œÏaÛ?Ÿ%LæFŸ?ÃKÂxž‹óÕ™Ò’i%eè©Î>Ÿý-NØuŸŽÉOKôÙˆ
+âU)œà¨Ž{¢iŸÊ‘à#:©ü µv6Ý®çEg§«¶ÀÏrP·ô"Õ¢¯'Fe\Ü,.¦RêI·,[j5ë®ljj‡¾Övž¬ñ™ÛE±­üèSQm­Ÿe»9TU²ç<ÆIoʺƒD9`VsƵñt¥ç¦ Ç¿›z¿qµ[Û‘å@0©Î÷«µÝŒ¬5•¹`YÆÅP%ž—ål ó'9‰!1“·Ÿ?_½Ÿ¶åcúŽCE=§±YSÿž$âq»¹àf†¼¬ªšg"œïêbUΨŸNßOÿ{¢“Ö©’)ãhשÒLs…ÇKc›ÇsjÜõô!’O{ôÇêp4+îù³ùÃÞÐo
+ÃÔ!?:‘àµtÞççØ{¢—¹8š ¹
+NN2¥àˆ'òù´&èòpbO'Ålf[×öú }ÝÒRc½)Ÿà„h¾¬iä‹Ý¹Cn©gÑlü,ákTUÜ Ï±¯Ù‚ЕTx¦¾õ粪<ïÛ®Y]9Ûí™$O'EÊ2™ ]mŸŠ<ŸÔö™È5>gË¢~DÅÅÒâYãžó–:Ýi`#Z®{ËÎ+¾']„Y,°áÍ\ñî¿Æ£­í¶€rÅÞ»»Ï7Ç™qñÏ Vûd7¿a±µ $¹¯šØ•žÌ~]—¸$j:¾£ ²8;¨|–æ{ï¨?PhDçmçàåæ(›1¿'$ËyüYÝL76Ó¡AHH(¨êŽÑ'u'“IøëªØÇ U8u ¸VºœJ¸mnF¶vpž·‡mGÚ&g™Ñ¶ØΖv¾­œZ¤âغ¨g–:Ð…ãóH‡ ¯ôÏyÙ0Åèýz¡1Á!ó\M,´P°SóÜI¯µÔq  x?–& (À‹¯‰S°\˜¡8qjâü_à@é=zvÇBC=âv‘u -j4õ9­sl{¿ãäŒxOsy gðF­w™Ä ¾(xô'KCîX¡w[OEY¡Pi híP :e¹‰ñó¤@–çàeˆ
+‘¶ä.”]ÒÜ모)\âBË’Ô‡!súqÔd8“@⧵_!v×E5²~Às{‹Q"¨9¬è•‡ÖCM'×Bä2=ôÁ›‚Þ™ž»Fyß½>”c“ΑÚpÚQâacσõÓlVe×Yÿ=@㧤:zl=•¾+b$#Mz‹¾SNñƒÁVꦣÆÎúF¹ZWv  ÈŪ@WA–¡€³nŸê4ÐTÈîoÚv ×DÛ¡\•3‘€Ë{‘H5ÂÁ
+zfÍj GðPVe·£®g‘±e‹MUZÿ-„¯vÚÒ›«§À“*­ØÊQÏRsÒu‚ðDvÂAz
+È5OƒšÄ\
+9.|#œ<ˆ.M˜RumxÝøM€¡¯‚BíìØú"aàcÎ`XˤZÅLmd–ÀN$Á±¹,žìYµäD1õ¤(íñhúX à0mëd§° hfÌþÐ9L”c0‘ßL²|¸!Ÿ‰­­Ë
+Yî”bÞ!MÓ‰Q/3©F8¨ h»¯8da‰rÐtáʸîò d+L¿0À©0
+Í!žÂub‚s˜%ìoê ‘ v7Ô´5•ã\v·´³/¤ ðFWx¶vÕP*È'
+Á¸Ý§ÎO¥}«7iÆ£+W‡›22¢óÓ·2:W¿îV/^\ÚÆ“ÈkŠÀ¾Š¸‘ŽžÍ“¿ µÖ§†aSΰãcÕ<Düì fÈTö ç!S3<vê—§R3,Œķ$ævÿ÷¯R÷?ÙU“æT’ “’ ,lSȾÎ~%~¾zÌúÿ
endobj
-1696 0 obj <<
+1695 0 obj <<
/Type /Page
-/Contents 1697 0 R
-/Resources 1695 0 R
+/Contents 1696 0 R
+/Resources 1694 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1701 0 R
-/Annots [ 1699 0 R 1700 0 R ]
+/Parent 1673 0 R
+/Annots [ 1698 0 R 1699 0 R ]
>> endobj
-1699 0 obj <<
+1698 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [406.7896 280.3845 476.0457 292.4442]
+/Rect [435.136 641.7083 504.3921 653.768]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_policies) >>
>> endobj
-1700 0 obj <<
+1699 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [303.3452 64.1455 367.0359 73.5749]
+/Rect [331.6917 426.9688 395.3824 436.3983]
/Subtype /Link
/A << /S /GoTo /D (statsfile) >>
>> endobj
-1698 0 obj <<
-/D [1696 0 R /XYZ 56.6929 794.5015 null]
+1697 0 obj <<
+/D [1695 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1695 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F41 1233 0 R >>
+474 0 obj <<
+/D [1695 0 R /XYZ 85.0394 378.4414 null]
+>> endobj
+1375 0 obj <<
+/D [1695 0 R /XYZ 85.0394 352.9397 null]
+>> endobj
+1694 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1704 0 obj <<
-/Length 3375
+1702 0 obj <<
+/Length 3294
/Filter /FlateDecode
>>
stream
-xÚÍZYsã6~÷¯Ð[äª!qÔ>9‰ujdzqœÚM%y $Úâ%:"eGûë·‰’<Ù©Ú)=  5€F£¯A² …›˜”PaåD[IRÊÒÉ|uA'Oðßw,ð$‘)és}ýpñ—¡'–XÅÕäá±7—!Ô6yXü2ýæoWÿx¸¾¿LxJ§Š\&©¢Ó¯oï¾õ=Ö7ß|¸»¹ýî§û«K-§·î|÷ýõÍõýõÝ7×— 3)ƒñ<ÌpdÀÍí߯=õÝýÕû÷W÷—¿=|qýÐ_Fnä÷‹_~£“lûû J„5éä(aÖòÉêB¦‚¤RˆØS^üxñC;aï_7tL©0$5\(óžZª‰N-Q‚ §À›js™)§³lþñ5Û\23]øžyµzΚbV”E³ó]¯E³ôTžmÊ"c_òM]TëÚ?U¾õÇ€”}­2Óf™£Æ@.Ö“‹[NˆO@ÿ©ÖyR7°pÝó:ð÷÷¡4I­¿zn`é qˆ¬¬+9e)á˜0Flšr7(›ÏóçÆÏ-Monzæ© sïò±õ9%’ ×ߌLk•F–u52Kdz¼ófõº,æKO.³—ÜS¨5GÔÙ*Pù#žÓc>oüsV !41”Ù°Äã¶,Çv£ˆ¤,ðdëÅØD–ˆTG…7pØùØD–£ípCΞòú$-^òrwÉ›’#HãÄr0ÏDÂXðotI¦¥<»ªÊçþàN¾>ðAJh
-ÕÖD).ÇcN`Jú\ÞeØHÌi¹œ’ʲzMÖùk‚¶z°>SœÐÈÓ´\# ̬]«‡"Ü>ŽX:â¤í2M¬à¦;$aúMª¦~C@¦Á—€˜å¾Í‹|ÈÆ·›K3Ý®›b•ûá/Å%›f#§Ë,è[¶²mÖ‹y;)®9æåpôVö¼Ìñ/ò2o¢/ÅØZ0 ÅúK¹H ©Sj `Â#ˆ”X-£=CbŒN¢/.òÇl[÷+ÆÜO¹åÒ·Ç
-4sªñx]›•¯Ù.ÐuÞøÅ\}ûáýÕíŠqâS^ó—<ð¾u‘'©óÍ‹K¦~5g¯L2µÑÑ^Y°#´9c!…5[ˆD»ð'Ym@`ð?Œ´`®’ë`®ðg®ÆŒ›+3œh“ª·Ûë_£¶Q?¸Hl3ßÌ—Ùú)÷K>:…T+ÿO
-¨*9ÎíжÆì$R¦yl×e^Óù*YõqõÜä⫆øÐ5PKÏæ;Ë«V«ÖRËb=¯W†Ì³:ÆÁÑíA" BRþ iû¨ÝK(ð…
-‡4@j]Ž£˜ÄK‡à¯^èB°­×®ëÙ=Êù§`°ÿj=‡56¿ÃL7Æ!‚o +«ï¨«Èëª5 ŠÐ:ƒ@b™=?çë0'ú>®– ÷â©péÜŸOq™ÍKV¾ó•[©<B³ýÚÃoÝ~™g›fæ™Ä™Æ‚¯ &•ªw+á–XVÏ9^cìüãb» iŸÇІbût ÐeÖbN1øPoŸŸC>¯óˆ¹Ái¹Ö{·Euï]ðjkH¬`VGq°²wŽ¿oŸ^Jr%ˆÖæ<4gýØ:I¸N¡–¾Bèõ@,-щ’&&.TîWÅœiÓ½Ë7nMÀÒJ§bèšå¾ÝËÓÆ'šÀFDI ‘]éüRä¯c÷M)aÔ¤û7Wû›2¢EçG
-}^ÑhŸˆ òø›+ÛmeIÄI7Òø¶zñ± Š‡4%Þi÷íhS,°ãSYÍZè‹Zj©ßpB™áy„ÓgÏJðáéc¥%L
-í™eDèv®«Õ0â%P(u6VˆTÇ*ƒXrt>i O¥Þ‹¶VÁ+®$¶èo\ÅD8 œ& ÅûÅÚs…WÃB[7ÛY7
-S®JƒæŒˆ´w@7a/Ãí ðÝOÛ2 £~å\v’! rü•o‘#ð‚‰û ’±s k.ƒ%+=÷Þ.öÁƒOç@Tk—É
-²
-KzÄÝ„ÄÍ-ø{“»%í Á¦{Ž÷®»8;TnšclD¥'ŒDB±-ôÐHpÚoëeEw†õ!p?ÐŒ»³¨õಂqØ hÍSE(‡C}û~¡2¼Ùé¿ëÿs£¢ ½à{T?ŽÂ\ŒG1œ*i7@¤2Ǿ$àX&Á<\j¢¢ ÇJÞU@ÕÂ6™žÖ´ LxCJÐ’Žp1-ôWÒú百¿ƒÿM+¨ÉtÌNE€gøÖvô«S´H‰²Öž¼4d,:ÀÆw,€ŸñŽ)1j_˜!ÁÂ(L5®Àžd_²9pâàr(¡¥Ô'.Ûð}RêZuZÛ¾ìï´Õãójëóú5}гÖóhcÕiè0Ô׈qÔW'Èl\ 0Ä8sF_01BÊ3
+xÚÍ]sã¶ñÝ¿Bo•fŽ >Iàñr±¯ÎôœÄq¦“&y %Êb#‘ŠHÙçþú.° ~H”tIo¦7WàXì÷.À' þøD'qb…¤VÅšq=™o®Øä Þ½¿â„¤¨õõÃÕW72ØØ&"™<,{s™˜Ã'‹_¦I,âÌÀ¦ï¾»»¹}ÿÓýÛYª¦·ßÝÍ"¡Ùôæö×½¿ûáÃÛûYÄæÓwûýÃõ=¾JhŽ¯oï¾Á‹“Þ_ß\ß_ß½»žýöðíÕõC»—þ~9“n#\ýò›,`Ûß^±XZ£'/ðƒÅÜZ1Ù\)-c­¤ #뫯~h'ì½õŸŽò³XÈDŒ0Pˆ µµz’j'RHÏÀÛå,’FO›UŽÀª’ ¢Æg†MV7ù®Cz3‹·îÃò`Š:ß=Ì—b½£å¡jß f¾ûîáöæg„w3n¦ùû¼&œ¦"Ü0O·Ì:{Îk'àCÄylµ~S¿2Íù2Û¯
+#ÕŸu³ì¾zã@M8˜3 ƒÑ
+Ÿ‹¬Éá‚Šãј/iÍir’NÁ¼wE^ãÇ~Tåú¡m¾[V» þ
+UÐÃÀ-R¯wvÔCsÅ:¤â eÁónÎ÷Д[YIjÔTMÛNé2’.Óé‡éy¿â¥äwé–ù¼9ÛîP A½ÄM9×±V€dMšÚƒ¦%SÎHšMl•=ÕdD¤¨u¬¶¡Úbù@ö{®¶8JÑ8Ú„”ço±FVä>ü¦’áò·®l‡´‡º»FM+2¬qyÖ»–ä–Ê{x›—®0Xà‹ºØì×Yƒ²
+ÝG‡U=ÖÕ:÷‚‡áoî~D
+bÄP7²ò•B'µ[O3vE“ׇ'Tõ¶J5Òàw-QÞšìY±zn@°½nêXN[¸t%3±Ré¿ÜÇ:£fË·ã2ØÅzÍ×E^6Gi2N$Wç h±F(lV
+kRa€0ý¥
+ªÛ¡†››HÓç¢Â®{}áÖ `ÓQ¸{a`eÍá- Mñà-øš |É eë—ìµsì
+¬ÁÜ›¼\VÔSªVí¶Ä÷b¦û6s|¬šÕ0 H Õ¶hQÛ¦Íâ8[Ì)VmÝ5³:>uÇVêØ]ŒQ"6¹x´õ©÷o»ËÉÊ&˜w @®®e(Qþj2;6@º¨{LúÓ‡ü©endstream
endobj
-1703 0 obj <<
+1701 0 obj <<
/Type /Page
-/Contents 1704 0 R
-/Resources 1702 0 R
+/Contents 1702 0 R
+/Resources 1700 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1701 0 R
+/Parent 1706 0 R
>> endobj
-1705 0 obj <<
-/D [1703 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-474 0 obj <<
-/D [1703 0 R /XYZ 85.0394 729.6823 null]
->> endobj
-1388 0 obj <<
-/D [1703 0 R /XYZ 85.0394 704.98 null]
+1703 0 obj <<
+/D [1701 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1706 0 obj <<
-/D [1703 0 R /XYZ 85.0394 268.3773 null]
+1704 0 obj <<
+/D [1701 0 R /XYZ 56.6929 625.316 null]
>> endobj
-1707 0 obj <<
-/D [1703 0 R /XYZ 85.0394 256.4221 null]
+1705 0 obj <<
+/D [1701 0 R /XYZ 56.6929 613.3608 null]
>> endobj
-1702 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R >>
+1700 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1710 0 obj <<
-/Length 3924
+1709 0 obj <<
+/Length 3730
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ¸ñÝ¿BoGÏD<|ü˜>årNê›Æimw:íÝ=Ð%qB“ŠHEq}w± ˆ¤(ù2×ñx´Ø°ß€œ ø“3‡q¦²Y’E¡ÒÌÏWb¶†¾W’qæiÞÇúéñêÇ÷:™ea«xö¸êÍ•†"Måìqùk‡*¼†DðîÓÝûÛÿ¼{DÁãí§»ë¹2"xû·‚>Ü¿ýøñíýõ\¦Fïþúöï7÷Ôó?ÝÞýL-ýœ™ôþæýÍýÍÝ»›ëß¹ºyôké¯W
- ùrõëïb¶„eÿr%B¥fv€Ê,S³ç«ÈèÐDZ»–êêáê~Â^¯:µ‘IC£¢x6×Q˜ýé]–a"% %& c­´ße%§vÙaá.¯Šn±™¯«}1^°*Œ¬´?ë m5A\õˆK‘„±
-ò%Æ œÇB/EKƒì¥q¨ ž…³È÷m±$ݦ ®Úb÷µØqcC¿y×ÏÛŽ\£¥ˆ4fئä_Ê03FÙÙ‰•¥ÁîZ¦AÑ6{ ,­‹Æþ.[j,;ú]–Ëú†7ùWrØ5A‹¦n»Ýuì]Y¯©‘Ö
-3"zÐã+F1Õð,öžüY_«
-:Ãr´ª‚Ù´ÐÁb“×À 2,ÑsÍÆ„*Ž¢™÷yµ­IPçn=#à¾oSþ¼?`¨œÌ‹|=¸’&òþ}Ì äÝT€ïO~"ëNgãØ;ŠSòÈFïÀDÏ;b˜ ¨»»ïÂÓi飂 ÎI
-! …ÀM"è© _[~ôZÌqvLë–ùU‰çÅú“ ÷fB£µÛ ¬=Ùd+ÀZy
-‡M¹Ø¸À:‹…ð¶ !XßíÀÆ´—¸T݆ž£*°«’ÎUšß®8 ½ðxÑj«˜*&0øÐì«%œx¥©Ý:;s±@›nËgðiãJèîö»š‡P¥™»)ÐÅfèrɽ%ô÷Ð×V¡¶~r+5Äô`µ‹]ÞnΆ\*N¯ËúXçC.uÃy×ÌÛ&?-ŒFa* \¸HÞcMÐê[&©I† Lj/ôG™¼{ зØÅgx¯¥DJ÷Z,6Åâ3‚ÇÏØéoÖZj°ñ±H6¬‡ßûû¶èht¾ÆêS7B´>ëCIhEþomÀ?«Qi>§Þ…€sDA%Çü´ï,0ú·‚yLó
-ó}•D›,ØãËÕ5$àûËž.o2å+lEÛµ„ÅÁ?mÀŸWÔ„ÏCÔ±ÌC¸Ìˆ”üó–LrÅD‘­ÄNÂ’ÇIÍî3Íøâiºd2(ÿ Š÷d)yÝ,"rv2â¥I)QéUf#ZÛ1XM`uºŽþVD¼i.C¿R,6ÒKèfÃ*š:_¾PÏgzÊÒçŠYeC#u@ÑóX™x•{@Ã!|çýæ„8ù
-‚µ(ú3wwl´ ±8<¡ÚÂOñ§Ÿ”ßÛG ¤é™Xr
+xÚ­ksÛ6ò»…¾Už‰¼ Î}J'§›‹sg»3½iû‘h‹YTI*®ï×ß.€ø’œ\;ž1ñXì»Ø],Äg þøÌê„ÉLÍÒL%šq=[=^°ÙÌ}¸àf€]¨ï.^¿—é,K2#ÌìË&ÌZ>»[ÿ2û÷7ÿº»º¹\Íæ&¹\hÃæ?.¯ßÑHFŸ·Ÿ®ß/?ütóæ2Uó»å§k¾¹zusuýöêrÁ­æ°^x '¼_þóŠZnÞ|üøææò·»\\ÝEYºòr&Qß/~ùÍÖ ö?.X"3«gOÐa Ï21{¼PZ&ZIF¶·ÿŽ;³néÔþ)m-”™-¤J¬“»Ì¦aשÎ#…Œ»,øÔ.(Üå]Õ–÷ÏCa9Iʵœu1ŽèF¨ ¢C˜ó41™1}ÊË{¤úú½²]P–f€Až‹†`zèO4×ÖÃüÊ4k7ÅåB‚r×Å}~ض0Æ_ÁˆMçï®o¡¡³ùõ§»åûÿØcÑ4ù w3y}ÉíÜchŠ]K­§M±ó
+29_mò0ƒ s (‹‘6¬L gÙ,U°‘iÊq›i²~˜Q㦫—
+–~—7ùå¨Pòè<a oqQ»±/¸ûAÛØ>4åîaBÏÎ]ªSí¹<¯g•WVA¢;±K
+Ô!wÕ²`^q{M€ôßã6a?nvp›¼y f ôˆ`^ÕݤAÃ5‚«ÈÑ %0Æ{¦ rf¬ä™¸GÔú\зÙ«ã)Î4-˜˜>[ìW@ÀôD\<™o:ÑRNˆ#Å#¥¤ˆž6åjCÍUÞx~Ê–¾ØF >¦9ÇÍ"R”X‰ŽÛo³ÓÛeRÐóEôÚÂÌ—--~ªÛ55ɬ…µnëæb…>½~¦.º/œnõÎ/¹GÍßûéMé9
+šAàÒÏ–žà*?4Îîa®Ùæ_‹&"wFCL÷ü۪ΛM2Êõ|BeàìYpbg“®Ðéœ+
+Æžr§Ç4ØPÚÛîÒv*
+í/ .¦õÎÁ >;ÁºÐîLà ÏÄIϤ%Y®øy×Ô…:í›"
+U«CÝ ‹:&y:‰³¤#Ôížk’²6 ~"?Ô–™³¾ Ü[&…íd\xKpÌ„3ëŒÓMû¿
+v IÙ 4mCP>ë§=x/;‚'-e"&ó¸ä‰¬)µñ€ÃÎ `pí¿d8<UõŸ-c… Ü*s%5PF‰¾€ëI¾kžL?©¼hœs<ô"s©¬›è‰EÜÙ†©c eÊoZ¸áH”ÚëÊY;L{Ç ¶„:_?ÓÌ—]õ4àʳê —sJ›‡çÉž[Ÿ @?ïßCn“÷
+½j_PlóѶ9@?%š1iÁ ²^{S!¤ª¾ö¿ŠÝE>M5yñ€äÈŠ°ßíj³xئ®3*ì=ÿ W‰“AHaɆgçcPèt
+@t@œ?^ìšr=ÎŽE„–gIG 1í~vœBFkLø©¢¤V™ý¾¤„òCÂ$÷_ x„Cs óGF#Î^ß.ßQ '®]ª‡½ÛP:‚öòX:ª+ã…¯C }}Uobe»ñ|€‰Sº¬±ø<H—1|”èlxFY~ûõL7DI(¶b^ƒõ¡vÇŠgx'sÖ'eÁWWÛ•‰\ÄøäˆmŠÔŽEVœ>F†f*£t§4e~#±ϵðK>‰õÂÇ«èò†P˜™?Ö­H¤x ÈQ±O߶AX`3Þ™kÜ”j¢‘%p/€+ÈX*—¯ ñÖÓϺ ’BˆÕ—rw?Y±‰å™ˆÍ™ÜÛa¥é›Ã]ÈI¡T³éPjdiJ{Ýç¤S‘ÐPRÉó^¥ uÚ­D(·å÷+!™]´Ïû‚‹N¤éyòj‚~OTÈç¤п W²Ô4\«šÚN•¤†é—.ä™Í‚Pò„]$P)(âÅÚ3t_ºâ`‹*Þé¨âí–æÛ*0íÝÈqê«Ô
+»‘³îþþ9•I‹/ž RããîŸ3(ˆ– NÂ9
+Õ_+‡¯Bê¦õà—E»âi º˜ú[ï6ºÂŸëW¡
+¶¥©ûpù°«ü£prêwêR'øãò ÆbÑèOÿ†ýø•&ÒZq:Y‘¥)Ü3ªÁâO´éëÿÖm­Íendstream
endobj
-1709 0 obj <<
+1708 0 obj <<
/Type /Page
-/Contents 1710 0 R
-/Resources 1708 0 R
+/Contents 1709 0 R
+/Resources 1707 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1701 0 R
-/Annots [ 1712 0 R ]
+/Parent 1706 0 R
+/Annots [ 1711 0 R 1712 0 R 1713 0 R 1714 0 R 1715 0 R ]
>> endobj
-1712 0 obj <<
+1711 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [154.2681 390.6622 203.5396 402.7219]
+/Rect [182.6146 743.8714 231.8861 755.9311]
/Subtype /Link
/A << /S /GoTo /D (notify) >>
>> endobj
-1711 0 obj <<
-/D [1709 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-1708 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F48 1253 0 R /F39 1173 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-1715 0 obj <<
-/Length 3535
-/Filter /FlateDecode
->>
-stream
-xÚ­]sÛ6òÝ¿BòLÄ
-7òçÙoijlûç³8R¹IgÏðG"Ïåls–¤*J¥<¤:»=ûw ØuS§ä—¤&Je¢g‹ägÔ´ã(NAh‹LH…9YŠ)!{,òn½”*6‹îekÅñ–E’FJËlÖ'<Z>`M¬/{ë‹6š­k»®¬Î*ÎæÝcÙr¯A^ÞJL€N¢LÇ)¬Š3_lK8ƒEdå6I8ÏeUÁe±o­_Åuô¼µ»'» º¶µõŠz×·ÔîÎ…™ÛeãÚUKS‹ªñL?—Ýã€p6¿ýzAhùÈ.ˆKêH$Y=åi*§kÀqÖWÛ‡¢+Ÿ,}uûlw-˜®ñüî‘Á+».öUGe;!+‘æQ&rÁ‚¨› Yùõ %i?T0= oò\ÿˆÅ+ãØL[| &""ëôuZ4/ZÜõ3†¤ž»…–*’¹}£ ’ÅM¦‘–I6Óé\¹Í^÷Ä‘êD8Ì8J•ô¦óõ|¡Åüþ—óË‘h€¨’©™i•Á¤ÔùåìÏ™ˆâ$‡%V¯ïv{‚¼¿ÚÈÙÇö4ëoËS^ôI»}é¡3ÁM $2ÐŽÛVƒ6‘™ù˹Œç–?ÊͶ²vÅ€šZ¦ÐËGÚOò,ÒJ«Y_¾MeÊ
-Ñ“/ÀƒãG‹÷q{êr[dP ¨Xœ¾ÝF•†ƒ5&(Rå+aJ"nmw‘bŒ¯tR2{÷–®Þvë£-O;\÷¸ñ=§#f…wýƒlÔ3ˆW¹Ó y,È¥ÜÔ˜$öaA/k—p‚›'þ¶÷ôîh¤o®J¥Ýœå VuÀ8hÅmõBpz À{;e.—UŽÃ<§ò#7PPúËÃNØ»8˜ˆ+:``è,nEÑòhÍÄûó 3 `0 w%iJ¹ `m³áѶìöMsÑ0ÏùUà8·îk(çËÞ'½Ã|¨æíÝ ¢U È“âöÀˆ´Dõ-íŽq*®|ì ñ?|t°M¦ê4A4 7ÆL4L¢d¢|Køa.&ÔV.HH}ª6ò_vÏc`.N‰Ú `›fU¢~-ß¿Âc"*¹ó# U~ÁqîªÍºG­çUÛ uBÝT<5%WFÚ«P£ERp‚†o|ë™Ø
-ëÎÈ¡qá FØ^ÖnÝE!÷[jC¥k0 a­Ä†$;j‰)@Ø6m[ºkEÛï[[·<äT5bC†8=U³5}÷j›Ê?`=S1‡½f_qwÎñ\¶6¸Ý%“à%Å*Ü
-ADзºy®fŸ\Ì(äŠý
-á"ê “ q>j÷Ê2ÌᑾQ9
-@®Š‘Zª©U¨Wup&#e¤:ù¾œà톯çgŒ–à`Ô•&Â9:+w’¸–`!À!‡µËáÚ¯’ŸÒa`,`€Ã¨V|å%¿Ž´œ—CÁRvƒçøá{Ødµè+n¥z!|*B…lt¶v¦‚_ŽoììÛ0Ží°Ü†Àd´y:¼ç¨”ò(Bi¢–a–š?•ö¹Wåö6ÑÁ©|ÛáeJa]j*]àÑnÂÐØ(DœD^sŸ²
-<rŠÃ/4Ðà™º{Ü ·vY®_Ø^'Vn.—û]K%™\45QŠ:. óÏBpIR;À‚•õp8[9°#^vTܧz­š‡ÁÛés±«©Z€ „¿âÁNÓí)i$&2Bû3Áôyj]ùÚo@²Hháãc±„z²¢êXö]6ñnY"¹ºî Vë©öäÈ1vL0dòM:Vè4Êo¹Èa•FÑ5ßö[ô¡
-5´„’½`jVDL:Õ
-¢?åTSnHÕ [š+”lÿ6$¡q1í5,üjpêÝŒᦤÝÛ‡[—i(õÔt›(’“‚O
-]ïɺ•ˆœûHß
-endobj
-1714 0 obj <<
-/Type /Page
-/Contents 1715 0 R
-/Resources 1713 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1701 0 R
-/Annots [ 1717 0 R 1718 0 R 1719 0 R 1720 0 R ]
->> endobj
-1717 0 obj <<
+1712 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [293.8042 549.7735 355.0043 561.8331]
+/Rect [293.8042 191.3384 355.0043 203.3981]
/Subtype /Link
/A << /S /GoTo /D (server_statement_definition_and_usage) >>
>> endobj
-1718 0 obj <<
+1713 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [395.8905 549.7735 444.6373 561.8331]
+/Rect [395.8905 191.3384 444.6373 203.3981]
/Subtype /Link
/A << /S /GoTo /D (incremental_zone_transfers) >>
>> endobj
-1719 0 obj <<
+1714 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [309.3157 518.1046 370.5157 530.1642]
+/Rect [309.3157 160.0192 370.5157 172.0789]
/Subtype /Link
/A << /S /GoTo /D (server_statement_definition_and_usage) >>
>> endobj
-1720 0 obj <<
+1715 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [305.9683 486.4356 367.1684 498.4953]
+/Rect [305.9683 128.7 367.1684 140.7596]
/Subtype /Link
/A << /S /GoTo /D (server_statement_definition_and_usage) >>
>> endobj
-1716 0 obj <<
-/D [1714 0 R /XYZ 85.0394 794.5015 null]
+1710 0 obj <<
+/D [1708 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1713 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F48 1253 0 R /F62 1379 0 R /F39 1173 0 R /F14 976 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+1707 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F60 1366 0 R /F39 1178 0 R /F14 980 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1724 0 obj <<
-/Length 3757
+1719 0 obj <<
+/Length 3808
/Filter /FlateDecode
>>
stream
-xÚ¥ZÍ—Û6¿Ï_1·õ¼W³"©Ïc’NÚéÛ¦ÙdòöÐö KôXYr-iÜé_¿
-¼ÕÛ‡ßSëǯ~ùåÕ‡»µŒ¹zóÓ«÷÷h(ä9^?¼ûzz\˜ôÃýÛû÷ïÞÜßýñøóÍýc/ËX^éiäÏ›ßþðnsûçOè$nOðâ ™$êvãZ¾Ö®§¼ùxóŸ~ÂѨýtQÒJ‡jAJK$Ip‰µÒV»´A™âÕƘ
-[ɪ9˜¬øÝó”ÉA/Z«‡ªiMšã¡\-}q*Ê’¾8ÞÉxešC]å4ÔÖ<U—í¨çÏÎ Ó¸/Û€&?}¼ÿAPÿã®høÃ]Ý•<YU·Ô™¥]cPå ÷ZJ‘²B¤Õ mÌÁrRoJ³o¨§)ªÌP³;œR;žó±½5ÇcZrð¼°#ü³+¨‘Sï¶>R£Ý™1]S—][ÔÕ„¥Ì483)")ÃÛHF"R¾¼°½D´SÑîÊ%÷pT¨˜}Úf»õ>=L¾Nóü\À&ÌØ‘Zƒu]壧Z`dlf2Š„–I<åäa‹«~ÿÖÇ)âÀ `z¤x!ÆÎf‰VÓ ª
-<MûS;4U댭"eóq3ŒM%«#¯)ª'êF9Ø>Doó Œ$ŠíZƒ¯Ôgm [Ê°b /ï22ؤ÷ÊS}üLädîuW1EJÏæX™Ò9nAÔ8';g½7né;¹2Ç´e`ìBÅž™p*`×m–|—$Ö¡^=¾y º©*“¡P l¸N$ÇCùøïº2ÔÓÓª'v´(%Rlx<Í2shQØ‹Š²½½“`«©3æ³iéµk¬LØd»Z
-<Ã&ئµ¼1Ú‹IèœÚ³Ò^o{8†fÅŸä¦)ž*÷‘0HÌJò(²Ú¡´(iÌõØ ™‡Ÿê“y6G<µ¾c§Ç
-D"ô5;U•îIº™ë­‹LŽ\Õ'Ž¬uù<ØzÑœE`ê
-®GÓ1ÕåhÚS¡èx&– J¸Náo]Wkؘy8Õp”C´¼ÎHOµÀÉ$
-éúÔ ^rS‹¹ðe)ጬŸ…dÁଔ;Ö`ÐéŽB"N8”Å2„tÆLœy˜Ù%vU>Kêøı®ÝÕÇ\¤x6 3,âï ö•ófnŽ&ý¼Î+ˆÜÙ’G
-3âi4?©YßØ:Ó7vöúÆ—^ßZª@?ž‚Î{K@lØvÁ3ÐYI¾ŸÄ«WÜÛtOO¦ið®±j æñÌ^¡ä½8Ò–|à`tŸ~6Í„PÎ Ø~j7† [
-ÿ<ÕÆPÊ?]«·]èd¸ÙÖY]ru‚W4~“ƒv²vÉx¬æð(¼še…«½ÉviU4Ö€í+ê7”ÇA:Rw YT¸rla |©·1G‘ç#£ œ=ÚóßP‹ Ï­ÿÒºhÁ3s4ƒD ñµ‚Í\•g뎔ÚÀ®2KÔf¬­MíZ  ç&R=ÒÀN%•?ÊwÉ´†Ú¼X½á|ìtÀ´ó;èe~˜ç|lš"L6Ń£0§Ñ®H5²¹©
-w¾:M{KšöØ‘ìAÌÙIáPw~Œ““‹¨·+¥ˆŽx×>Ù-vSœËéÅæv08‹P–ŽéO¨ËU9í¬à>ûF΅Ī'$‹¯è›þD„6Ir1[·0—¶Z„¤%†8 ùgN½#£#äì|ç¾vŸà‰þÀP›·)Yrû…ó7Ë7zÓ&„é‚á4Êv&û<«ô-ËâF¤"‰ìÏM =ç^ŽÏMx8¡%ƒr.mQÏ€ó¡»`²§²3‹³cM5I.}ÎÛ7_Qø«®Y0° À…؇'ms2ÇiáÔ4ÎoU^w=î4 |Á¹/&ÿÚEèë¹ÿˆèrêïˆPÐâ/Â0ëí±Þ¯sˆð²5GSe åÔ@ /òõU^z¢sf&h6
-x;_C‡lh8Ü°ùµ¦ç†‡©†Œ-Šð-ïù `î"£œÌfn:vèz‡Ò œ†Náj¦´^ïTä­-IkJ…áÉÛ ¹Â_C9§ç³éA°”ëÜzõæý'ž¡âž½Ù×ÇjHlº=³µ°Žï‡U0X+œ_L nÖhøƒCFË.¹“²5¥5zĪ4+ºìPn#¸ˆ…OtjL§èDÓƒŸÜ9EÈO3[WeÀÆÔíš•MÆDÖc~ô²;" 7 Žµq·0ÛÉíMSümè—G@ÌC‚›¢r÷CîÃaF&KwC䮊X·I¯¿Äi™¯‰{Ê~µ‘áÔ™LŒÉ̇µf¨é±è8Wfã¥
-W:g˜ wóäëàÀìÔMb¡‡"×ý’ˆ¯¦š…ƒ
-e8”îÍÊÒPh>8ìõ.TC‘k~iÓ×½¶6ü…ª¿$ÂR>þDbZ’š'ä<Bdí XÛO"/ cHú븯ûIÅBôZö“\ºŽåL˜ë,‘»ÐŠ0x¢«<rñ$²¥°"utûÕ ´ë)áN`Ûî/NL\–,­8€ˆéÑìºí„¸rávLJF_Ðû[ò¬;ºípÑ.mæ×Ùý=ûéùa¢ãAîó-U—\B»D¯»òˆêŠ+;*k€¶XÌw¹g¾ ÞG2¹¾|Oµ°þÔ—ZM¸¯´Ä£r/´›î
-ö@Ô1ΘµŽzcÆöˆ%û~á²dú
-3™ÛsÉÕ»º]ºÛFäEΤÎ|}6s‰ Ÿ˜ +2‹8½¡fË]–‘J4pn1x=!"?QÓH}¡\å* ÇøNÅt¤+<Mé”´HIP–ø°¥1r_/ó =Oø2–_ŽÁjôÃC­‡X3·ßíéϼhܵÚ7p{"ô|ÇQÚµK<)-üYñ×ðtá—É:øsâ÷z‘ÿñ¯–‡Ÿtû‘Ðq¬–½²0 3eÐ퟇þyó9ëÿhRíÏendstream
+xÚ¥ZKsã6¾ûWø(WE ðytf<‰S›IvƩݪ$Z‚,–)R)9Þ_¿ýR´w·Ö>l€@£Ñ¯R×1ü«ë4‹²R—×y™Di¬ÒëÕî*¾~‚¾ï¯”ŒYºAËpÔwWß~2ùu•™Î®6Á\E…º~Xÿ¶È"ÝÀ ñâÃÏŸ?Ýÿë—Û›<Y<Üÿüùf©ÓxñéþowÜúþËíO?Ý~¹Yª"U‹?Üþòp÷…»2™ã»ûÏ™RòãI¿Ü}ºûr÷ùÃÝÍ?^Ý=ø½„ûU±ÁüyõÛñõ¶ýãU™²H¯_à%ŽTYêëÝU’š(MŒq”æêëÕßý„A/}:'¿$-¢T'HÒDƨr^Ê*Ê•‚Ay¢"••™—²VsRv£PÊÕz]u×VÍrsèvËê8l¿aQL»VÕjk§bÑÀa–›â:\û‚C?j†E°¨3eiªÆ<>lmoo–¦LÝ9êùeÕµÃáF‹®A‚Y [öh·Õ©îòцŸU+OØcw¨‡j¨O´¡kPÅišBKEešjZ¸·‡“…I/^¶¶Å–‚iú{¨Û'îøó/¶w£êÕ–›À•¼ ¹g] È8ÉÌ¢›Ì/6]Ót/~öŸoºs뮉ÙØ1Évò‘Gà‰­¶UÝö‘UDI¦sõZÀ(½xì†-·H.ðD¾JòzEµüÒÛAFw8ÿ·Ÿ’"88•Ç‘U¦µ^A4d|¶*ŠMYʘßã4æã‚)×vS›hJV†­rƒÙB¿2¥æ-ɈGã¯òÙ†Õb'ýÇ¥œr©"ÇèŒCUXꤤÓaq"ÿÕµVdܵ¿Ç±~:ú±¿nA,ÔO›B+îé›IO¨Ø!+Ò7+ì`2ù; ðŠûæ•é/u#<Ú±bhq¬›†8,‘C|‹cOrC’¬ ij¼
+‚ZcS¡^E/½­L~_Ã@&8IÓÅ}Ë´¾ÛIo_ÇJÔ?«{ᵟSôc»¶}}¨ 5±YôG46]ÂÓ—Fì)´V_ìà©5ßÊdLwâ}Ç2öø³Õ
+Àr¤Îó›ƒÉâó¹ˆ)ª„õžý
+¹Tx¾Ø¦A9
+VÚnN’H'­ðuÝcÐéyqu0ûe"]|³“z>µLóî 9l)‚5t®š­;F®:ĉfeH €y=#v-g¸R‹cŒÔó‹ ׳®Ç¡mc4/g4hÁ¶¤*øF|cãØû~|Ž¡ö (Ë’7]'1Š¦E‘Êš1ðð_™Å©¶/ ôþvìn?àuÊN]g [‰°µ;ßu©*N¢Ü˜÷µÂDE®oC¨ð2{TÜÛU½y}YšÎìêxèðÁ$³‹Bæ”ÃÁ ¯*6.ÉÇ4¯e
+Ž9¹ßÌ&¤qúnq°@it¤ u(4p*ŒÏû_N‰ì %2&sHp9RÉâq½2íbx0¨©9—ah )å4oç”<vq”Ì0CÉj<äÂ}ø¢‚ãã 4ïl…‘XV%ÄÚUÐ×Ç+lé­ò¥;<ópVwNϱ§âdz=´¶q†[óh©4¦¾ÒGK#öÇšo
+¡gÅzš×u‡ëìªehA¥b\£bÌEÅ)»zÛ?º©Îz}†
+4wÇÏ­mö“ÕÈÏÔgv«‘Ä9îÒU!àXe#So‡a)θ°ç2€ðTŸØ‹BÛ Ëdž;‰Gx~üü•Ç¬š"ôÛ†Ct`BËõ:xákKøW'3ò^Gëß“ùÚa¶2#®.•Ë»ÔaâTûŠénçÊI@t¼a»z$œDi}i"Uï&2•±›À^¹Hô‹]j¢QI”$Ù»ea‡K\zH _s~Çð/|fšFZéd®øâЀ€U)-w òöW 3µ&SDy‘;ÁÂÙœaA*wઇDßîDKÐËÊÊxQv ìd„Nžšî‘Ë Óµ“<Šã,ûŸ“§Q©’rdÖ®Ú]d
+eÆù“$¹Iß’Î » S¢“1»|KŽœmøéù?cÆ^(ëÎ
+ûl{èÊÛUs\»j`ZF±žú!Ã×»xƒ–/qTƒ8PÜŸ.3±¡»â˽œî6¸uqBã|ê/kÛX¾©„—ÀS›\ö壽 sÖÚ…5èt²c—ˆÓï÷͸ç«Üµy8ó´â铺sÍkz>a¿¡ŸyéëÈ[=/×-xîÕœE
+mÁzÐâ_aK€
+˜D˜¢ËêË4‘—éÖÿ p5’gendstream
endobj
-1723 0 obj <<
+1718 0 obj <<
/Type /Page
-/Contents 1724 0 R
-/Resources 1722 0 R
+/Contents 1719 0 R
+/Resources 1717 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1701 0 R
+/Parent 1706 0 R
>> endobj
-1725 0 obj <<
-/D [1723 0 R /XYZ 56.6929 794.5015 null]
+1720 0 obj <<
+/D [1718 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1722 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R >>
+1717 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1728 0 obj <<
-/Length 3591
+1723 0 obj <<
+/Length 3813
/Filter /FlateDecode
>>
stream
-xÚÅZÝsã¶÷_á·Ê3'ßúàÜÙ©;=Ÿk»Mf’<ð$ÊæœD:"eŸû×w» H‰’sMfzž9‹%°Xüö ”<ð'O½M„ÎÌiš™Ä
-iOg«qú
-,›³©Î²IQ埗ÅüÝÙÔh7É«9’ý$§Ñy±È7Ë–:íúÌO6M;Í«Ùc½&Æ5`ô± Æ‡ë;ZŸI?©k~û?uÅ ´4NUÌAï©M'W "5E\«Fwi|o#Ú™D¹ ”¶ðZ4Ä4ÜmšdZyæá}Lwï‘ûtª½J”P @)“ÌZŸóe9ÏÛ²®@
-!4€WT:#©ˆ²=ÐÁ½y¬7Ë9  ¿ ´6_·Å¼›¥;:£• ùöÙi/ÌÖc­[„º#ψŸõ‰q."µ¯Ê‰aymUDa
-ú ¤ð µërÖòHð¿04{Ì×ù¬EóAzSœÉ óPª<ÍkÕæ_‰ˆgÞ+Öm^òÊózEm ¥@U̇’T³›4´*$OˆÑ%•!~Wó
-Qn² |pE=Ú"4ª¢}©×_BîcäqýÈã 9 H#f³:Ì4çxæ8@ÀÑñ¨DØ4Ä
-·TY4yÌjZ„ì)íM¤–cÇûD½Ö"/—cáÒ&&“¾.aîqÑ\–ºèß–èÆ¡…LÊe¢ä/ùº[œ²é¼bOò°H^5/źaðA2i3L‰úè‚ÝÒ<×Åà¡Î/Š‘¥R‰µqÛk†é˜3µVt[0›ÜYm4£¬Òn=$¤Võzô$²Dë,í;ÈS˜4÷*PòfiÆÎwj*`†Êi*»¼,ò%Ñë¦eûÆ‘à ¾B|yž‚‚GÀ—“²¡ÓS6ðÝ^¾'288~³bFÒ¯$/Ê“¯êy9Z¥bµbÀ+šRtFÔ*¢Nü˜ß-OTx‹ç?=-Éw@E<nªÙù
-rö¦¥4NEC‡FÇDYåíì‘nx‚hõºlW´
-äþNØ9. §j3A-âúõ¦Ö‹nš´7ÍÈ6Íh²™&BJÓÿ0 +†Y÷=‡‡…²=ÏvfX+BNðrS‰‘³ÃAÞ? Çíñs±¬_ˆÚÖO̸ oZ[¥ÙS
-Œl•‚/ö”›ù$“:Û/1c:(\æ×U
-~xeSaÑy…Ðbõ·/5QÐU5ýCOQ`P¥öM½,g|Æ—kP_4
-9Ž<¼ûŸîp„ïN†¡÷!˜Âðó_›§…ÄÖäéhQÀ›Krà‹’Ó|h®i¶Î%„m¡$Ín|^WiydeØÿˆW»à´X•-]¬ÀH¹Õé+QºIe”•¿ãá¶7Oñ#T³ë”ÄA# €‚„ÒD“¦øZÿ —Bà|+VB'B¼õ±µÏu8öv\ýÂo: W>{W#"ñƸãëw\# ¿Â)› %ýŒ™%V 7Ðß ?Ø™­Ðv%{úð“åmü: $ÌIßlB©FNœy(r:·o9¸¸ñ0Âöéí Úô|Ÿä÷×ç/îØÜ¥v‰·~çcÁA?3øñÀÐß
-Ôí‰óhR¢ÔûÒëoMKÆNÒg‰Òòƒì1>ÇÈ´w/SüL{lÝŽiáÝëÆT¹áÊt~ÚûÁùa¿w~ØíÎÏ(O é\òøø»Q$ab† NÌ°¾ÄÁ3&fØŽ‰¾Œ‰YÈ˨XIñg>cß’ûu“Þ&kØåÉäOü#ÍùZxy˜¯×rz›¡a‡².lu…šâ
-±?ÈÙÓ€¯7%_2ÚhúDi;'þuý «¢ýö„\Z‘iäscñšÂ&øÉgƒ¢ûMàþÁôö×äoýÛG- …ÀŸo°P(¸³»’w¿¬Þý¿/œ|endstream
+xÚ­]sÛ6òÝ¿Âo'ÏD,ñè:NÏ‹“sܻδ} %Êâ…"U‘²ãþúÛÅ.ø%JNÚ&3!°X‹Å~ç!üç‰Be£sc£@‡BŸ/6gáù#Œýp&gî‘æ}¬ïïϾ{§Ì¹ l,ãóûUo®$“Dœß/™]ýóòãýõÝÅ\êps‡³ïonßÄÒçêÃí»›~º»¼0ÑìþæÃ-ï®ß]ß]ß^]_ÌE¢ü^ò G~ðîæ_×ÔúáîòýûË»‹ßî<»¾o÷Ò߯nä÷³_~ Ï—°íÏÂ@ÙDŸ?C' „µò|sièH))Î>ý»°7ê~:Å?­’@'ÒL0PÊEí(>7Ú±’Ê1°¬ÚQZÕs¶¤NSÑw±ÎŸ©¹ªvÔ¸¤ÏîB$³lQ¹ï²@Ï\˜ÀZcÝ䟪MØÂÌ.ᶒñïh8%(a<æOYIpG€n>>EYyV65sF{,öÙäìpœÒÚc?oÖi3±~íž²S¶HK Dù=ŠÀj-ݳûmUfÕ¾.^˜™eýœíúŒú}ŸÕnÝ+‰+‡Ü
+%èf±Øiãáô©³†°¢o'§nJ”U° Q –ݯ6Âsv;d\«¨³%µó²%²qÿ¨§lÅÿªý®LaRÙ–é2
+gõ~±¦Û$wó!h±NËG$¡d
+Œ‘LÊ° ¦Ô`–oOLŒ® Oýö›ÇhWCÄ.©À¶;_œøêÑÒ’³°˜¡37ðÏ]îOF`cóú£$ò\ìwþ8¼#Z§5kæý:h_«§‡'„éN_¼š:!B9ªÊ‘‘pP&>­Ê}¬ãªÜb9,Aps2 ‡ºl)’èôò-ÖÄúƒ­êë@fHÀuÉAK"goo?}º¾¢v½ßB,ÐP'/§Ì/œmZùÚÙ†àÍUÜrxAŠöSÉ’•øè,ñš::Äܳ¶ê¯«™IìëR˜„R3ÖC¶æXHKù›¯øË$/+ºHvFwÕÐÌtÌY%.ÔùqŽ€ßI‚| +ŽË3œ
+œ]ôŠ<÷°NȳÇêÉóSZäËÔåc™†ƒ`O“ÐbMÐ0ÜnÈÄc@„—i¥L+ÓØîQåúÓb­â VÆ~«Xk#f·U“ML‰˜1ÞU¨ühæØZ1a‘ZŒ×kj6 zàMRa‚D|ri ”GªWÀÐ0îÇy2!×.Ñ«’·tS@ ãÍŠÆH¡1Iƒá|D"¿Þ»4[u6 fîŸö—‚ï2¯]üùm˜Ça›)ì›)’¤
+¬h‘N“DÚ¯LZ•Œ‚m<7k}œ óD*æÔÝRUF[€fw‘Ìöu3OËÅÚ•å
+~£åuûbþpÔ%Až¤ EŒ#"¾”U³‡}Cà”>ž% ô|ö¦…:@HZî!ÿx¡Þ¢*±&ö¸§¸bIÐ}íªG´Â„Öj þ²]š,’-石—)NÄ`4c­Nå+óD9NÄ€ÒôñļÐê6}©ÈƱÂõ'¢!XTj¡þ÷¡´©Íi÷ÑÇ:î>Z¬žm¤l}ž}Ùæ;²¾ÃòÄx}’Œk‚Žaùß‚
+s¾d $·
+^”'ßTË|ò¦™ÞÐYÑ4ÐDçÔ \2eßÇé‰ @ÞÚÇ.ÛmA¶ÃDdq¿s@õ\:+0o _rÃ÷ò ÑË%„ÑÐûŸ pø+N„»«A,®”à;2“92ÜÑ{’‡l¶!ªòÄaÓƒXiõìî-=ÜÃ. ä\<|o?½¡Æ§—Üzÿ37èqìîBëÙ¨s¸•hº{ÂßÐ奉q?àŠhKØwñïëTMÄÇ{|Ðé‰Wa
endobj
-1727 0 obj <<
+1722 0 obj <<
/Type /Page
-/Contents 1728 0 R
-/Resources 1726 0 R
+/Contents 1723 0 R
+/Resources 1721 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1701 0 R
+/Parent 1706 0 R
>> endobj
-1729 0 obj <<
-/D [1727 0 R /XYZ 85.0394 794.5015 null]
+1724 0 obj <<
+/D [1722 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1726 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F48 1253 0 R /F21 950 0 R >>
+1721 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1732 0 obj <<
-/Length 3626
+1727 0 obj <<
+/Length 3259
/Filter /FlateDecode
>>
stream
-xÚ¥Ùrã6òÝ_á·•«"..^;OÎÄ3qOÖãÔÖæx %Èf E:"eòõÛn@$EÙ3µ•š¸Ùh
-`k8ú\T[ƃ—p—jä`› ô0‘/Û]åZ¥Ló ,Ç3wÌ‚ßúÇ?p_òþ%³kAO úd÷CÆ—¶³›uY[R…þÖ5Ô™Çf7rGn爛mÅNëž·­wc;rÔ
-œ!9¹àܶd8ìךÚ:ƒ;€€‘~ ZÖŦ¬ö</^Nš;úy[>Ôn7kd·%è‹î±èè«lÝ”¬G°+ÁÑnyœî
-j‚M$y$€³\¿9¯AN%>\,ú¯z9•¤‚—L½‡žÊG[gröØ{ý¢ï3ï 5›½ãdÊìe*K¿Àê³^äÐ!„Âý íŒQ›<ʲ¡)rèNã^~5å'à{ÛSNü ˜”r⇘Clw3œšâ8OàRè&PHHÍaÕÖ¦°îÆ‹n´;;r€(OØçoƒ„Lå>!C¨—¹ä½ì ?h‹œ³/è€y/û¢Iî€8Îø€\n¹ tÀþªlÿEY/Ñ!ÊÕò}JÄ&ò™ûm7ò!7çÒ\à4ÔãÞ‰ø¿‡@ګ⧩5¹–')Ìœž²PÏ4yÞÄO ú‘HU2Œ£_ÑMHTgƼ^NšPNº º^M,& ”à&ù*³WIê+ÕpÕ¶ ×|lç:Æ.“þºñd\b>Dƒ“¾Þ û0ùË®¾GtÚÓ{¢žzTM±DÛš—ã7PùúT€LÒÙDÇ| ý`I‘ øàä+‹±´Ã?s.Àyü]4õB¨‡mˆ›ˆu^nBbmCß„*¶]3§³Ò44æþ½™ ¨µ1¹×¤²c¨$ÎBÎÔ´e×lög 3´}Êá”a‡
-™¾ÓG*•\rS6ËrQTTFQ×ÉZk AU å3n¤¶;Âø"ÎÌ‹gëw¡2êÌåÒïâ‹þösÙr}Íëüƒw/ÃÁgä—!Á)Àž°ìÎ2ØwÎr¿ ÈÜ–ôžO0Ò!¬^$öTtŽ)DKPÜ<œpÛS§@?ïO8Ö§ãu{š Ç{°5r”¹80âIC¶ç°\‹#ÅT¯p¢E™TzÀ ')ƒmU)aô—^E £uû1Àv a{ò.ŒPèkÓ—ï"P½ÂÊñjÈ
-î NܨØʼn‰ð•ãM§ÃèÜÛw"óQjÔw]ãkªF…Њ:¡ÐÛ£u ßpÔÊçý¶^ìi £=¡)ºrA_#7à(}»^‘䮂Um;Û⹓Œâ#¢@øðñqm’<¤ðÑ/'ºíIê
-Wò£T¢ZÃȨC·Ý \{Pùž ã±\o×ô1É ºEm2¿“œà%‡B\ Yñ‹Ãô¶¥ŠO‡ý%8äϯío ÉÈ…W iÌÔu€/P2”ßȃ2´(ž¼EÞ`'O‘?tåã+3Xϸ¡\D)èCØ–ÔƒÕ¾_*.·‹8ü„¼W"xŸêtTÈJ·ÙÏ»ÅÓ|cWÛ>¿³ÛÔC/2¨&8¾³J&Y2dáî"‡KpÉÍL)lNí#R_Ó·õ´ësûUÎîÞþB
-Dp¥ŠCOö3A®V‚¿Nv‰u•ÊH´ÜÇë÷<Ç•­
-rÓt–^S˜S‘q ªŒ…WD¸: QT‡!j¢H†ñE²Šž“¦Šdq(’'kdHŠ„ðþ€ðoÌ°åÓ¦|.üYøEЇVšo!ipÀb”\ Ôèòß3¡°¦DÚwÎ4½g0ÊÁC”7l9ƒY|sîÝÓiË1xø5æöTŒ#*Ä éCá˜ðÏ™ÔösÇ;@Y5q¿#Í‚˜g—SÕ $™9êCuŦãtr´î<Î" È\t ô?j“ð¿‹9G`b´+6K.èG[gX)Ê8>´ìP<+7‰ŸËHx«bA)”£X¬i÷<…±ÿR
-‘h
+xÚÅMwÛ6òî_áÛÊïEX‚
+Ží膶B:M,iò¡ÒIè"ª¶Ý–ôx,65ˆZìÅ öL8¸øÈQ÷ ©»¯§êÝ·ª»ò´û´ï¿F¨Èßßì?ôßHÄY¢† |(7 [kUÑä­_NVM1'ZA=—–IJÞÒõ{x:ÂqgB¨5Ž@ÑÏ[\aßýJOö 9¹¹>3fòováL$Y²ãÂä]³Æ;²R’‘ kÅ*¶†„èb>g‡e:4Þs­aÁóþÈqæèê–;ˆq„îWhI8coÑ%ʯUËSɤaæ¼\•÷EWÎǼÙ;"HçÒÌ,!qe)‹ N\»·1R4õꉆ«zÊ:ô4^ë²å}Ì‚1«*¿a%¶pû7ÛnÚ,ü2i°Ìà¤)Œ×ûB¦"’RsÀÉó©ÝÑ®º42X1ŠM4ú¿f©DrruƒÏÝá Ÿ†ÝqyW®šGÂv‰pA>@½P"Fz¡àÄ@(Öl¡Ê¥Ú BnwõñˆŒ¡YS·` e={b„s€É eþœ •Œ8ÎÃF}œ·ÁrdÓT
+ÉoòÓ‰Ò1l¡+CZŽLj_sœ|H°‹¿{lƒqª •a¢Ä|Jð‡fUÍXÇ—Ãc³áUG-•wûëí
+ÈÓ›Ž20¼=BöeµCþòöa!3yR-2øá’óDÁV n£É]C«ù`u†œiúñySÿ¥ã”Íþ—³MÓVK£;-×Uב‚{™>Æ/*¯ÀOm·.”í%:žÅHîEªµsiJm ¥ãÐ
+µ?0Ž±´k xSh«GÓnHu8ízªž·õ×é ýe/ë*H9Ø÷Ñý=Õü›
+ —Ž!o#Ìᮥù Jƒ•Ñ Mê¤Xq¤oKTlfPÛ5¡°}Efƒ•qæÕ}ÝôaßprIÆÓû'©Ö4„~}uþîâ†Ý]ªDd&SCë9gì‰7`/ \=è¤ö û∕ˆuœ>kT‘ÁrB?cTÕ£rTÁo¾µªãû;¢‘ýGlJ 8`SJg/1)Т M*Éؤ’Ü™ œI¥Ê™ ­IÁs`R0­/O`pß®
+¼JAù›]OtÄê˜hÄ観ÂÚžéÿ¤‚å1<Ñ>ƒÓ!(äC.Èî$”฿õ~™Û†1âz÷ÐĈ Õ„#Ln ñhhO„³f†€Õ;Z3³ž(9Î%)ñNÉÖò@Gä° 5ªù\$ÒßðëfLïR
+•
+÷J0ÏõG>PAaß0Óé3-‹êp å©÷ƒ¦¨¢l¤ß­¤-"•?ƧácàI.¢Xùàk›TLð‹“ÄZÎH…
+QÒÿa¬Üý6¦„Œ}û³c&Qìö–“1·O”È ü¯Ï‚Ì¡|
+… ¤͟Ír‘ít;9u§&¨Oà*Fõ DÁ€€s{ʵ”“R®ýÓçv;Ú)ŽóN )U‚v¥„T÷«ú´0¥u;^t;»s ˆùÈw,Î]A†PP¹äAõ…/´EÎÕtÀ<¨¾h’= Žó> ßµì:`¸*ûQñgÇœùÒP!6rî¶ÝN´ð屜­tÛ 䂈{ö‰4¸¼'Ò?±çJL¤0súuÌ À<ÓÜ}!þ†ü‰I_Diœ óè šI,Læ?¹Kj—´ýä!5~‡L^äöq’ªð«‡qbðé`àçÊ`sI½¬@<˜¼šûl ý€vÆ_Ž„ØÈoù§ÜØÿòS§BeÙVGœB™Á"Ì”ýݧÞÏR‘€€°þ?è²endstream
endobj
+1726 0 obj <<
+/Type /Page
+/Contents 1727 0 R
+/Resources 1725 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 1706 0 R
+>> endobj
+1728 0 obj <<
+/D [1726 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+1725 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
1731 0 obj <<
+/Length 3449
+/Filter /FlateDecode
+>>
+stream
+xÚ¥ZÝoãFÏ_á·:ÀZÕ|é}Jw³{é]Ó½lŠCÑöA‘Ʊ°²äZr²¹¿þÈ!G–d9)p(¶Qœ‡?Ò‹þ‹Ä¡Jõ"Nu`Baùö"\<·O‚yVži5äúñþâû*^¤AÉhq¿¬•a’ˆÅ}ñûòý?®>ß_ß]®¤ —Qp¹2Q¸üñæöQRz¼ÿåöãͧ_ï®.c½¼¿ùå–Èwׯï®oß__®DbÌ—¼Â™ oþuM£OwW?ÿ|uwùçýO×÷ýY†ç¡ÂƒüuñûŸá¢€cÿt*MÌâ^Â@¤©\l/´QÑJyJuñåâßý‚ƒ¯nêœþ´I#u´X)$¬1«å0 hm›4ˆ”T½–¥˜Ó²çB-uÛÚ|U5YñÕ¾´«²îìþ)«¦Çp5:Vb1ÜãD’žkF9E†*ÐF›±,ÿÙØúr¥³Ìèñߦ¶4*[zæMýGÊÇÃþR$K[õ¹ì6(ðäÀ„ a“€l¸|vèš—¦m38-üûç%¡ ´Ncž[v,
+xI)X9˜»AjŒtS·‡¶ËÒzù`ñ©–ùÆæ_Qv$îì¾lŠ2Ϫê…(]Cl­µD(×ôÌêúRÛg¢à•Ñh“=Y¿‹½Ëš§…ߨÙOV±ßʶ+ëÇãRß±
+¤Q%ñH¢Ûî¹ÞD¡«
+¡Ç’duq²­˜hÂøï*¢çK€“uªhm×kÏêB«0Hc%_×EÏõ†(§«¡(¸/Dc-Íò~cgW‚¥0 gCû8wñÆ(%aøšªBi¢/Ú캲Áh^ :iiÔm, ÖäÞl¿©YÓÃÈ6ëJ ""žÆÇâ¼}/
+Bï>uèl‹iHhwpG.ì:;T½@˜s‚ë¡6T Y1%K…3‡[iQ vä¯xÍœ1—›æ°GÅ¿Ã׈NŠt«Ü¶ø"æ÷B±Žüuˆ™í“ ‚Ûe†Á¦tæÁ¶èî ï/ óû‡gö׸À€üþZÏi@ÂùCdúxòeøÃ’à
+€Ö«ô\3Œ"ÄWö5’àþ2 ÕƼ¥z°XôÑÙ; 8§ß¡uɉ÷ï?Ó
+àNYÓø$‡"RƯ‹ÒsÍÈ2†s€¯Ã‰,WUÕ<cXKœ“á²x©³-ÅÍÔÛŒœÝÀçnŸÕE9,§ƒ›-}uçp&5˜O>¡ÿœèûe`#pØÇÚEÜ¢! HA^3I‡š8]Vˆ/ÔÃ]YJH F—Ÿ4€ðáöË?¯£1 ”7îY`ԥ䨟ø¨8­£÷Y‹S þ$I|à«›9‹ŒToqn››5 ‰Elæ :’¢O+Ç ßaÒ–Äqý’÷é=KÅq š%ßòz‘R-ïîœP8ÌÜSr*
+GËÃ7º fi!\8 Ïg[UgWÐ"Lëð>é€çjAжDC±žO;…ÖD-;~¶ÄŸUmC”Úæ¶m³ý ¯ÍdRÔh?Ck¾Låò
+ª[úèo†ƒóžH9:9y
+ÞÎh
+˜Æ]eyµâ(ÏàP4$׈*ΘÉ9<³~V³çŒ±kꂼ-¢ËTÃ5†.éÔyûMG$‹†Êf®esW‰ ¡Ûd—ˆÓûä6=Þ+YRÈñ|©d.0zàë¶ÖG\æ`¶¨Ù è±>t}8:B„Êf­ <âžÈmƒW¦Bã% #r®jáЛ \Ù…$*»4SÃ÷3e± %”Å©š-‹ÃcY<[‡A†}Eí“ÚÒ–»}ù”ù³PuŠdV*/
+qêÐÍZe9ZtùPá|r6Œ‘@Å7 & »Oòš=g4‹5#¶Q¾K¤ô`žÊo$õù¯ô1sB
+©ýN¼rž-æêÀÇz¤äÒvÙ¾c09Ywe’@¥!
+.'D\ôœí ®ß'[†¨y@aDèÍßÚÚMrnEŽ—·ÎrBPŽ#ÏØÒx
+¸¸¿û†YèRøö#²[³¬háG¦ÂÙÕsY°‰äYî…hꑽ¯±Çáf@Ag÷®šép³ †5Ñò9׆¸ŽXQ‡Ëª¬¿¶4tR«BŒµ‹J@Å»¢ïŠÕZœ.]€*©†qôÀ0æ‰e1Xݱ‚áÈâ¤ÚwáIäú0*xzÝ0Áuwf"qÁá*G>³ј`•‡'@¸ÁÚ¸¶j¢ûá#†çÒô~J¼¬šæ+;âqj*æ*ª‰wbê9#D]iÉ80&àjr€h<£©§Á¢M=w]ݦi9tö:sqÕ5°0"oÊ|CCJUÆ_WÞÝÓiÏ欹/;ðó'Ÿ²kÞEc§ìÜJ.Àô¹_žÃ½k âÀÙðY¬ïú2Ö¯cý!×y¬ßs¡žÈiOºJòŠ‰EúúÆ=×ÌΣ€eµ1J·¾§¬p¢o£¤bÙÓ育µY 6°>TôÅ¥´Ôƒ@r U%öK‡ ’
+a Pó¾kªV¾‡‡>=¹ÍÁæÔŠæ›Ò0ŠÆÀ|šÌ¤4pÀµ˜4\IÎáp¤6žŸ;KÄ´@Ö–q¤bÐÐïFZ“Þ½`ðX5YÕ=‘br˳š97wòb.²/‹Ây50'VeôxÊ ý:u÷fMDH÷‹
+•ÃMôµt0nMÚ¡ú+Ò×s6¢ß²"}q)vºäL$,úÀ⓪›ŽÁâ{‚gšÞ2€Ô÷O,ƒ Šw<?Aƒ³0®ð¥ªÞy sÒ«SQ‚?ƒ›ƒ‰
+‘ÆoýNäùWà 3¿¬ëœÀ¤Kéô³» éL#’NgñH Ó߈<×bœ®Ö÷N§‚à ¡f+ ÅЇCV­ ŒÊ¿Ò¾0Æ~³NtCœˆ9¢¥÷¬o2ª¾þ ’µvâ5ÔÞ
+®±–FÔDŽWC Œòsy'ÍŠn€HYxP'=òÂïôÇHuu2P2jïÄ I§½gTOþÆyý~©û­Üá‘޸ˆÓsvÞѤ&*<7N‡1udß{†«™ù[z¢)áH-=1È {,ýþÓK©J|j˜·Èi614·ƒ¸M°ø¡§åT–óYu…÷Oí4"IÍ$ ²…8mF=Ê¡~\ÅÛú§­}êlñ¦Š3~ž7Ûm_CW¥ï„#³Áã\ð–IDqèÿ †ºbnÒJϨC‹ NÔà'eœû‹,eü3ªÞ(þï¿Ö:þ)
+endobj
+1730 0 obj <<
/Type /Page
-/Contents 1732 0 R
-/Resources 1730 0 R
+/Contents 1731 0 R
+/Resources 1729 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1737 0 R
-/Annots [ 1734 0 R 1735 0 R ]
+/Parent 1706 0 R
+/Annots [ 1733 0 R 1734 0 R 1736 0 R ]
>> endobj
-1734 0 obj <<
+1733 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [226.1733 390.233 304.5885 402.2926]
+/Rect [254.5198 731.9163 332.9349 743.9759]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-keygen) >>
>> endobj
-1735 0 obj <<
+1734 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [325.208 390.233 403.623 402.2926]
+/Rect [353.5545 731.9163 431.9695 743.9759]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-settime) >>
>> endobj
-1733 0 obj <<
-/D [1731 0 R /XYZ 56.6929 794.5015 null]
+1736 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [367.5469 220.4734 428.747 232.3736]
+/Subtype /Link
+/A << /S /GoTo /D (zone_statement_grammar) >>
+>> endobj
+1732 0 obj <<
+/D [1730 0 R /XYZ 85.0394 794.5015 null]
>> endobj
478 0 obj <<
-/D [1731 0 R /XYZ 56.6929 146.0228 null]
+/D [1730 0 R /XYZ 85.0394 471.141 null]
>> endobj
-1736 0 obj <<
-/D [1731 0 R /XYZ 56.6929 117.3366 null]
+1735 0 obj <<
+/D [1730 0 R /XYZ 85.0394 438.6197 null]
>> endobj
-1730 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+482 0 obj <<
+/D [1730 0 R /XYZ 85.0394 198.1284 null]
+>> endobj
+1737 0 obj <<
+/D [1730 0 R /XYZ 85.0394 170.5486 null]
+>> endobj
+1729 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1740 0 obj <<
-/Length 3122
+1741 0 obj <<
+/Length 2746
/Filter /FlateDecode
>>
stream
-xÚµZKsÛ8¾ûWè6TUÈoòèIœ¬§fœ¬ã=lÍÌ’(›ŠôˆT<Þ_¿Ýh
-ÊT @”7îý==mÃÁ`/D(ܹ{§+Ëi  !è€H‡Òm´´1L“ûû n1øãá §A*×}¹¦ÂNŽ'Pz&
-AuD›™‘B§8Ès½¢Æ©4T#™9ªX@Š6ŒA8 ÄaŠXQI¦°1MÓèý¡¨ã®/Ö_i_l9èfœ†«„A±r†/
-¡©Ž`¥èè7\I?(­ @"E7`'^eƒ‰ua! P\žl÷=Í ÿ#ý©ÝÊo͆~?âÚ–´ªË[#Ÿ$®X?«ª®0FQØæàÔóUm÷u°Šfô·Ãã£ÕÉù' Ê
-¸ñõçorìÏ@Ñ>BèI¹ mçdí@·ª)ÏVL§Í˜þÅŠ9ä:_1—fáãîxô£Ê© Tú\½¬CàšQbT; àfc-FµSHå,#¤Žšbç‰hQ|Nê(rY‚)gG÷ Íë5pÕúÐV-Í*whV´u'˜´§f+æ‰b2›à¿=€7tLî:×Ùba2Ì¥ÂäVÔœˆ Ã
-û9°FmáØVeÙøÒÙáImÎÄùºÝí¨5FÄÊä~.yó,O´4OÄ£u¯ÇrÆÐtšL0Ç`ÚIEPø5”﹊ ]E¸â]Ûôû¶~½„—$'ëIBZ îÙ•›tþÜï«uo÷4Àw4ddKÉÂ,˜–#0M6G9]5(©³hUyîúr‡€ ÜúË)z™L¤ÈÔYm[á—ÁC`ü3E{*u @/ðÈ„M•Q GÆÍP™“Ę^VÁ'h/ÍEîñ›óß²/ªº»ïCû4ÛEnŸ}Ys12:ëß]¾õ`
-HÿüåB6ä:_È—_ìb
-iÿ…bD÷+‚‹Wqàš$Þ˜ÐÞÈÉ”u¾J>­HžkFQIB<‡ßFŒk’8Ö$ÖíÚ^sò]Dd®Mä
-6Eí_êñæÕ¬Ñ%A“Á— ›¶·]¸¢O®3Vu}Šœ«Nü ñ²HÙ0“Èð•RjhtJ¼q"2µµR ª“ÔþÛ/^ò $í÷¥]Õ»«­žç ¤ÍÔ0õ}ˆ"Fr¯ªõÇ ?À£ôðå“TªÉÇ6º¤Ë¥A±õ—?+wftu‰£Ëw¿v“(UïÝW`/‹ö½Åœ;ܪï>É̺1é¿óÁÈ.˦ 9ÆÄ9PÄ!C‹ò
-J€œæ0šïtÙ£±€Ñ˜Ãhð´jøóŒ.ÿ®#ø©ht‚¹ÄÜ8é¿Ë•Vg ›ŸÄÿ¹ù+Ÿ€ÙN#|î/…´ÑBÌŽ4€¤þ+¢ãŸXI(-Ù¹[ÈúIÆs㕲7›æì•Ú©êÿü&vøendstream
+xÚÍZßsÛ6~÷_¡·£g"¿ALŸÜÄɹÓ:=Ç÷Ôö–h›‰tD:>ß_ ,
+-ûR?]Ÿüð^˜…%Vs½¸¾íéÊ Ís¶¸^ÿžiÂÉ)h ÙÛ—ï/>üóêìÔÈìúâãåé’+š½¿øå[®Î~ýõìêtÉrŲ·?ûíúü
+‡tÐñÓÅå;ì±ø8¢ôêüýùÕùåÛóÓ?¯>9¿Nk鯗Qáòåä÷?éb Ëþù„asµx‚J˜µ|±=‘J%…ˆ=›“O'ÿH
+{£þÓIÿ1J¸Ð|ÂœM9PY¢ÉL n¡”fg«UÙ¶añMÝíš[#hâ=Mt$WV{é#ɳ®qO–u÷%v´åîk¹Ãöª¨qô& îNYž•m·«V]¹Æ¾›¢Å&Ëš:(Ê.~Ãb½Ÿ†i›Û$ š¿<‚òª¾ ¦<·]¹…½ÔdŸÊr¼{<D½‡„ Æpãüˆƒ»»6®zŽOòËþèø¾»õ:¯}*W]W¨ #ì šâÆöÕÏmÿ¬iû9#93¸u·Í7{]vEµ ;ï­‚ç}ó„ ¿«ðlÊUuûŒ/~3à9Ü èØTm×’ÃÕØ^hˈ RY
+-ûRÇC9I¹µ›M󴬛ÎY8šœ1A˜¤f~ö$51}ß•Œå„AÏ`úOÎ7PÊKçβ§ûjuïš ÁÞ}…ýÞdí0â Ï°/ÐÝWá»pŽ
+
+qI,‡eÌ£POj…¢Ô>ì!ñì&@BSH;?y’š˜}B†P¦Åpú!
+íc˜ç6¡;f … BîT5¡³ýŒ]Wu±{Æ¡w—ŸpÓ+îp«×9ÀAòË89å„3ÍúhÀ#à©Ë[(cðó<¶y€®ÃC<§1"ç KÚ B@åÁsšôGïBÓ#Nî‚݈>·…å”.Å Üó>ÿ2øï‚á*C‡¹ãŽY/£ÿ×›†Mg_Oéèln6‘ILQ‚œe•¶@—Ò¿‚/»@
+MüBŽT-£uKi ‘b¡w“S!š áâ\)àÄÆäÞÑ—½ SZ2¿Õ”(™7ì#
+ *_ô÷îÛÂAÀ>k EÝr_‹}[°.¹%y„ J
+‡Âôkˆ(ˆÅ¢Àxè°=JFЃÉTô’x:»Fê,cý•VAÏCÓ.'웦zDgª›#Õ@y’t¼0¶^Å~O‘¥Hèš Ý‹+¢Ü³ª ,wu±YÞ+_†þrQþæ±Ãƺj{:!Ø·C…å¿:Ôæ@‡<4΀Œ©l¨?UÝ}ó°¼.Ý™*vU$TŸëæ)}•ðßX›øQ÷Ôì>GŠ5Ø0’,ɉR›Î×â
+4ÝDæ“ÂetsÈB¨ŽâË1fAYK@w`…RC©S®>ãÍ
+u-4öÉ D¼!¾{Ïàå¡Üm«.\@èìæyŠÍ0E¨aêulF!#êùp̳3Tž>A@¡R2ôö± ÛtSöR­7Îu†-»iº{l½ý%îr,æ«.îzÌ¿Q.ûÖîgK[h^½'2í ²6&C çZ~Z6æg,ð3&Žq" 5Ê M
+Y±q­†{h%re†{øªX6Z¡nqtpœþræ/}g;<âSÜMCX(R¾w“ß‘»q •¾±/q7Á”[e¿'wƒ5>³ßŸ»õ5Ïp7@‰ïÉÝþbºÖß®ÿwº&æé—2/]`F¡1j «Æ| „¹Ü4ÉÖ‚Ìáô®&¡6àœþüª&DºÀtÍpuàš)uú—˜›„@„qweFëö©Ü…ïö•¡{ËEhø•ºß_”pw¿Àå ›j9Áâ&3ºHgœH*ó^X …×[¾Ñ–¡ÖÖhã~aÉÆìÊÕã®­¦‘^BÌX;šO‘kU·i^Ï+ÁC0óî©j'SÀPF½öN%WT¼fj×Ùc½q‡÷pZ ”P*G—Äûuƒ€þ8uÏ+áH h›“Å9¡á¯ZÅXƒ®xÕ:¾\¦€ÐAM Œ`j28¡qµ?™[²s®¶=çúŒB˜>eL×ûUtòfÚ¹ˆÚ}õ¬¸ý¾²ßÝ9™2 Œç<]÷ ?ªL
+öik_¸ãèKÍ„k”:‚ÁÃKÈéFªy’Ô„ÃKw«ªF& 3§Þÿp͘9uïÒÝ¿¤Ì©‘*¹§»©ÀŠú5} ]ûÛ÷Å=ÆðãÝ}ì¨ÂÐþ—B÷ŽVÓiÕù\*-¦*—ÍÓ/gH Y8&&$×s,:œc¹üX¾Ë•e£ù" Å,æz0rcæ( &è«”€ú|vêôÛDN)‚w0Èå}Ò9^¦K: ŠOÈIÇÿÔ>—t¼Yš’NfÓ‹q•‘fóǵ'4ó÷&Ah"¾¦2‹„Ær9k@:´`Hs ±Öš ÃÃÊSZ<¥×;J+nÔ§?n$]çø rª#µ’â/¨<d7<,Ü…ÔñÞa§Èé8^›IF–|k·O@E&&kš*éoþ;§ýÁ–Áy:ò›'T‘D:
+ŒòÁ¤þÝÌ¡éÿ­ïwbendstream
endobj
-1739 0 obj <<
+1740 0 obj <<
/Type /Page
-/Contents 1740 0 R
-/Resources 1738 0 R
+/Contents 1741 0 R
+/Resources 1739 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1737 0 R
-/Annots [ 1742 0 R 1745 0 R ]
+/Parent 1745 0 R
+/Annots [ 1744 0 R ]
>> endobj
-1742 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [367.5469 618.1183 428.747 630.0185]
-/Subtype /Link
-/A << /S /GoTo /D (zone_statement_grammar) >>
->> endobj
-1745 0 obj <<
+1744 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [483.4431 422.7733 539.579 434.833]
+/Rect [455.0966 729.9671 511.2325 742.0267]
/Subtype /Link
/A << /S /GoTo /D (address_match_lists) >>
>> endobj
-1741 0 obj <<
-/D [1739 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-482 0 obj <<
-/D [1739 0 R /XYZ 85.0394 603.6296 null]
->> endobj
-1743 0 obj <<
-/D [1739 0 R /XYZ 85.0394 580.9712 null]
+1742 0 obj <<
+/D [1740 0 R /XYZ 56.6929 794.5015 null]
>> endobj
486 0 obj <<
-/D [1739 0 R /XYZ 85.0394 466.9592 null]
+/D [1740 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-1744 0 obj <<
-/D [1739 0 R /XYZ 85.0394 444.4603 null]
+1743 0 obj <<
+/D [1740 0 R /XYZ 56.6929 752.1513 null]
>> endobj
-1738 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F63 1382 0 R /F62 1379 0 R >>
-/XObject << /Im2 1368 0 R >>
+1739 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F61 1369 0 R /F60 1366 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1749 0 obj <<
-/Length 3416
+1748 0 obj <<
+/Length 3401
/Filter /FlateDecode
>>
stream
-xÚ¥ZÝsÛ6÷_¡·“g"ߦOi“´¹¹ºmâ{jû@K´Å©Dº"e×wsÿû-°
-+‰¢L-Öû+ºx€¾ï®XàYE¦UÎõÍíÕWD±°Äj®·÷ÙX†PcØâvóËRN®aºüöÇ›¿û÷§·×…\Þ~üñæzÅ]~øø¯÷H}÷éí?¼ýt½bF±å·ß¿ýéöý'ìÒaŒo>޼Ë?gýôþÃûOïo¾}ýÛí?¯ÞߦµäëeT¸…üqõËot±eÿóŠaZ<Ã%ÌZ¾Ø_I%ˆ’BÄ–ÝÕç«ŸÓ€Y¯uN’¢….€2„3ã ¦ÆkÑÌOKa3ÑRËócá{Æ
-d|c<ÔÊ0¢¬U‹•.$È©lÚ^ÎŒ«wûk
-Â ÃA¨k‚í½q
-öŒ–(-™ãc”(Á% î8~¼^i¶¼…ÿùòd;Œ&¶b¡a±–7ñâ#TZ+'£ýJ ø†¯>îùâ] ëYäK
-㮲ýŠ´È
-Nl !¨ßu×øPõ¡·éž«CxïÞ¿×îñÉ#Ã~±Î*±üxŒ/W— š·ËôDQŽ¶d‹Â-?š6ð%%NÖžKRi2l Å—MÛ#ÑU
-³2ðo¯À5ãº
-ŸR] qÍH0BªÏÕD„qäÔ&y3 cärˆœî!ENù’ûÝ—¿‡ndõkz
-M þ-bøø° uèêªÃ¤yp|
-2® Pˆ\Ž›²?=í°NHú/Ξ¸f¦ဃ:MQŒçŸäfÈ/Šèµ]kòÚþ!zmÇä÷
-–já cøÄq{›vÛ^³ö]…Ϩ8'×Æ ã
-m`Ýžà0¬ð~Á÷d!!¿ú M®!@ʘ¿ÿAJñٓÿ›Ëw)à€ÞyƒÃG:*8EaÑG@cÄ~Ü÷:”ÂÒB}†–ÆÕX9qùè^$„áÚ»%iPIÐòX`¤½KRV‚ÚåíµåËyª¦¼Û¾4µ,rÅÂÈo9Ö)gôdáÔ¤ø8œ·«z^1v^AµpL‹šýúUÕúrCüÞ¿x ¸úÙS¹;bí-䌡¬¶-›Ñ]9‚‚‡úk[\¸*g\.lÓ̸œhüÓåÍ
-ŠÌ:/»—^AŸ/ø°n  ùÑ渎Å;š'§hÈ`\nDÁÈêfíöÖFË
-˜¹‡ptc‘©ëÓûªñõ@ÉÒ 1µÒßyA'@»Ç–u¨7þ
-?»ºë‘jïCÇ´ZhHUH¤|ópÜrT(Lò¬¬É³ËxÈ®îÝœa„£Ï9n]C Ý=UQ\<8Ib¬žD9,º3Æ–T?çµÊ,®"˜bñ|zÛç}ÄHÂã]•—DÝAa#E߆ùnÏ!ôôH$ÀdA‹ìöùŒÑ3*^»c®œÃõ+•õœëT#ø)ßõ«W%üÍAV%.‹¸fd˜BV
-Td˼È[‚«¢>X»dÕÖCH‚xç½îý·qì„c>l¼ñ~É(8GMo[Ð/ù:ö]u?œ¥
-pJp’‚ù|Á<Vã
-:.Èc2 ľnêý1TÜŠF7ö`7ZŠˆFç@侉Kõš4xçÞ—†Yð2àt ^I¥ObÄì$aù©8ån‘?W}ŸJÿu¸è¯Ù²™DYR"ÚÃÜð“*D~CÃw/
+xÚ­Ërã6òî¯ÐžV®2ăP9M&vâ­ÍdâñÖ’(‰±"‘‘²£ÝÚߺ>DÉ“JìƒÀf£Ñhôd³þÙL§q"Œœ)#ã4aél¹»IfŸàÝw7Œp"õ±¾yºùê^¨™‰MƳÙÓºGKljÖlö´úyþîû·žîo#ž&ó,¾Ò,™óðþ[„üy÷ãûû‡ïþõøöVÉùÓÃïüxw÷x÷þÝÝmÄtÊ`>'
+&Ü?üóGß=¾ýᇷ·¿>ýãæî)쥿_–»‘Ï7?ÿšÌV°íÜ$±0:½ÀC3cølw#S§RÙÞ|¼ù)ì½uS§ä'S§\f³(å±ášOK9‰“¤)ÉâT ¤ÌÙ””=–•r¾ÝÖ/Ñq¿ÊÛb¼e&ÓX¤ÜÌútÏVXËóÞò,…
+ɇëÜËò—$áEâOôüeS.7v¨æ›ºi šn™žô`y.VˆÔÖlŽ‹]ÙâøÛS•ïÊ%"|ûþ#Bq“ B×õ¡»¼i ÿ§®Šô„›lþ´qò€3
+<¯Šê„nI
+cÇ5¨Á‡ ëj‚u& 8)®þØ+›ëx>à˜&èrp7rD¶·½)ª –d4¥¤-›#Èó„ËúX6ï1­ŽKRÁ@2Â&}ËiËçâ=t0²²ZÚ³5Þ2@(fìëª)å¶lOˆ€Þ‚F
+ÄÝvÈÍÔ¾pµ-*² N>Hö£8B p¿gßgö?°ÔªMÕ;­”Ò‹Ô¶ùò·ærn Œk…75*Ö)F–+¹AÀúÎCÑ9Ý/É $䫆±ö‰ŸgÞë¤Ô±L ™ðrƒ]Ýùk™Bš x5Sèc]ÎVçLŸ³¨9U ¾ ªA®¯’˜Kó
+k‚‰A®¯Ò˜‹$rñ´ÁL9×{:"¿ä˜Š¶Á%9„—(H ÙàÙÕµóx€(XzRÙ ÃNçoáðj‚dø›W«Ñç
+e…¿¹G<2. L>3v8_ŒbŒš´xWT­ËAYXÁçÓ0\æËZA™[„Ô ¨C¹rUÃen”Ž¹@”Ä9«jüV{âƒ
+’Aõ82Ç«â3PöŽ7à-qí-L²'Ä7œ7!æ„¥3ݺ-êh„jS\°W™ï°±ëÛǺl³Ën}±…ÜbSoÏ›SÜjä++{¤‰•F+$D)>Zz`¶‚s—¶Á϶´Y©ÕkzÑ¥P—’G7*pr<Ω²#w†ŽäZ{>‡Ò“êlÙ­IŽ.3äXÏZ
+C3DÑ8S‹ÚrWÔÇöL)Lb›Cê*#霓Á–畱+N®¶c“ïlÙcç·à×2E#Öó"„«J\¨¶É©£ÖB@‚hçJ];¿Æc:!‹Ø' hSú>\š°aHD¿äØ‹bÝO
+œ”N°žë”ûœJ†xLža°+«rw¤V{Ð"6hËñ8“ÂkK¦”lL„.\ Þúµwùï´
+Þœ¯bÀ+¥Æ{%1¹m?ô£D¦¡ˆmÛÐó/é& ½eózbZJ ¯ëSkhð¡)ä¯6`íL$£¬ŽÎ°3ÂêZJ±(BV!i5•WÚd’,ýµW^ †W{%Dz8½X’@Nc{Rë|Y4üCÃmÛ9ÓRsc3¹0Éõ„ðˆàž>¸ž3 ©?j¸o±‰í˜â—›Ü¼xhÀö¡]ßé„à5¢†,¼86(·øTÚ(¡6`VÜx Ö;¸Ï‰Gw`'˜iN&ñ
+2R™~i)b-„Çlóß\Â!m Š¿¸Hn­_¦N¤þý* žk#X&¼¶Ù@c{HãžLc% Îq0©°œzíB•ÇFk=}ŠQŸ¤s“þ„Ô±âN4¬PZ z&T|I&þB&=ÅטÔ`N}À¤ ã—RÙëhröºÖbæ}9ŒP1èœ+<áÜûÁY ö:Ò¹±ùâÁ'v‹ÓÈIœµQÂ!•2”¨ ’ » kœ9ãdÔç Á'Ú¼?€+÷ÛIëLb™/± kŠÜP¥yùô[$,Úõ½ï¿ç;àâÍ„Eœ%$ ¶;nÜ
+çèß„¾ÁÇgé¥ãýGú­JÙGz[~šî³ðGòl³Ñs6u–Å”Gƒž õv¨5sÄ I5ïB­OÜø^Pßã ¯Q >Ï´séÊ'ÈÓœ«ëÓ
+B&ܯö„
+Ð5ÞÎ"¨—2¥ôØû.ë]Hµ>÷Ëõ¦¨ZïíÈ=›Ò©Û†ñ¹·"}ÑUãpJIÖ ³!ûµ½©Ð`]¥â, µá…dÁ~s@œÕ<:
+{zQày æãD –½˜'p¡ã45!ƒžà+Ú/©¤/% P„«Ì—;ôù“º ‚;‡Úˆ}±½A¬öf]
+ËHû­Vxí…XÕþ#,ô
endobj
-1748 0 obj <<
+1747 0 obj <<
/Type /Page
-/Contents 1749 0 R
-/Resources 1747 0 R
+/Contents 1748 0 R
+/Resources 1746 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1737 0 R
-/Annots [ 1751 0 R 1752 0 R ]
+/Parent 1745 0 R
+/Annots [ 1750 0 R 1751 0 R ]
>> endobj
-1751 0 obj <<
+1750 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [184.7318 419.6605 233.4785 430.4449]
+/Rect [213.0783 715.1325 261.825 725.9169]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_security) >>
>> endobj
-1752 0 obj <<
+1751 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [369.8158 298.4384 418.5625 310.4981]
+/Rect [398.1622 594.0531 446.9089 606.1127]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_security) >>
>> endobj
-1750 0 obj <<
-/D [1748 0 R /XYZ 56.6929 794.5015 null]
+1749 0 obj <<
+/D [1747 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1747 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F63 1382 0 R /F62 1379 0 R /F21 950 0 R /F48 1253 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+490 0 obj <<
+/D [1747 0 R /XYZ 85.0394 345.8108 null]
+>> endobj
+1752 0 obj <<
+/D [1747 0 R /XYZ 85.0394 323.3141 null]
+>> endobj
+1746 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1756 0 obj <<
-/Length 2832
+/Length 3218
/Filter /FlateDecode
>>
stream
-xÚ­ZÝsÛ¸÷_¡>Uî|@òäKìÔ7/çºÓéÜÝ-Ñ–Æ©%û<þïÝÅ)QŽ3ÉøAäX,~ØoZŒ8ü‰‘3Œ+¯GÖkf¸0£Éò„îaì㉈s²4)ëÎúñæäÍ…²#Ï|.óÑÍ]‡—cÜ91º™þ:~ÿ÷³Ï7çק™4|œ³ÓÌä|üãåÕ¢xúyÿóÕÅåÇ]ŸZ=¾¹üùŠÈ×çç×çWïÏO3ጀõ2r8²àâòçôôñúìÓ§³ëÓßo~:9¿iÏÒ=¯à
-òÇɯ¿óÑŽýÓ gÊ;3z‚΄÷r´<ÑF1£•J”ÅÉ?O~ivFÃÒ!üŒrÌ8i
-
-¾t rÇ
-4è™Ï0?”d·ð$Bz‚ÐÿÍ|²]kz'\qF·PÁÁà$”pðP,ššfaBŒ”~ÐWÒ†œG h¡±Ðú¦¤eáa]*#¢táƃ€i«4¯c©üˆ…v¡ˆ&ÚÏGjˆ˜ Ðë}Ô¢E[\Ô1Mzš• ñz/›™–ÍœVFƤ\,*ÈÑj†ï;G='^ßóœQºp‡UÍë+ o™ÒêX%òtÓÿNÀ¹h¾TKHÎÅÛé­{ûö’ï†wxM9¡¸iË Åc1€D*'Ôê(PƒZ-¶-€‚ù)R‚æ!¤ ‡hK0¶oK0ˆžöi¾™Å DÄ+ Òók4ô'šЩcBR ØÉõ~„Ox4)$>íɆ“ȳàà<RB „Š~L8²¢Åh_ÒPïfˆ´;,.im9ŒÑ©â>D¤’ùâSHˆÊ/ºv„eÈŽnN½שWðP¾P‘´•ÓPAn5e¿ÇüЗóߣRÕUùú˜Gk8ËÍë}D.¥;(k92}PÓéÔõÔ®§ꃰR‹e[Ljˆ¥n±Ôb/]‚¡mµˆ¹ú~Þ(4s<¥‚ÙÐy8Hot·.EA;q ä{š'ˆ5}¥zj‹˜> –yy4ñDç0ØYi&±)>ÖÁµ­ðÞÙçš)ë_<äß9÷{¬{ÁMÉ1‰…ŸÖ½JüÔcviÛz°Að€@‹(Á%´,%Ç„À®Üň„”rkÇw² ¦å]áo¨6
-|ðÐlC¢ƒ±‡
-ŸK¹Nh[ avh-àìšàZL˜ÔçÄ9ó$IZ¼K5¤{Ê.6ÃÞ/õDxïH¸‚ASÕª{uØSØ·%Ë´'tÈÉ3«MúRò·!Ñ×&I†A´
-°&
-w/$<SÆê~Gƒ¥ÑùP7!~–|{ì_H mÃÿûø‡>Jøó¿—ìþ÷!wNîÂE/6C4s`cI¨Júƒp–þåPôÿp¦‡endstream
+xÚµZYsÇ~ç¯@ž ¦„õα—ôDK”B—EË ]•”í‡0 ¶ìÂØ &•ÿžîéž½0¤h§R|ØaÏÕÓÓýõ1“þÄ$Šƒ8“Ù$Ét…"š,¶áäú>\3sƒfýQßÝ_|û^%“,ÈbOîW½µÒ LS1¹_þ2\Â
+áôí·ïo>ü|wu™èéýÍ·—3…Ó÷7?\SëÃÝÕÇWw—3‘FbúöoWŸî¯ï¨+æ5¾»¹}G”Œ>O,zwýþúîúöíõåo÷ß_\ß·géŸW„
+òûÅ/¿…“%ûû‹0PYMNðOˆ,““í…ŽTi¥esñ÷‹ŸÚ{½vªW~" ¤Š¥G€RúeA¬¤²Ì—Ëý¥H§¦®A*˦7+8d’M›µFNëǺ1["Vå摨ë¼&RQ.ªínc~õé†:êÃnWí¢®ª=Qo>ãWHK¦ëêdŽf²eJ»çܬó㥘vŠš¾4WÏ·<k
+ØOèbÂ…S±ÙÀYÃhjÊ|¾A} 5+&Kk}HjU¨V+Fœ!%RD±Š‡`‚lJÐ76%èü5ŒÂSѬy
+â [#Þp vL)+G(ékÅ„=;šŒæõ…ºC¤î°8¥5eÛG§â}¬‘JÖ‹­mÞ,Ö`@ƒŠ3dG±ø€ïþ2“ÓŠTy›6cä»Å¶=$6Høko•!6~
+FÀ~<f¾Ð>ʪ4/W_ëÄ´€Y„ö‹^Ž±”é
+'(ÔŠR³(F¢Ô­(õÀ×Pס´ |~2%t† 3;ó‚…8‹4¡3ˆ@=™éVO34@úÒ'Ð$ÈÄ.´&bÃÒ³³ÒŒ¢¤·39ÂcõÙ+Ä9xoçËÇ:PIöì¡D
+¼†ª5¨Žâáù“J¦’@§¢Aç+eA¢£ˆGüÕÇZêÈq†4+Üõgëê@‰ÕÔÆhðµƒwßMCMâÂÎa Ãn>QÏu€»øÀ/Œ!skõæöêÝ»»qbç… ¯ÁBÌôKRCdišúÃY»â¬¿$e}ƒ;I·
+vd˜2JG΀ÚY„ì ×½ÚY¨N;°æãáH æ¬Ï¨
+8´0kCx¿®¨,N‹Q+²”´ÒÝN+lZG{0ëjKv†R ÿ”‡íÜð
++«nÏäˆo¶¨J‡C—Á X÷Á ÷ßá-‰vØñZ%XÄ@š¾Š\-x¡ÁMâXžèx‰Kð€D`*àp`º:RÓû5³ÀÙ9Œ¶|¡~×l>-ƒ‰K¤2LqHé†oT
+—ÆÎ0€ÉÙQÏËÝ 7öCR¦žU¯ÜuaîîxK¬€<qB„I¤úûÅ3› ƒ4‹íV@ΡÔј%……bbEIérFÔ•A>¸Ø–¨P'ù ˜c\q–ªðh#pã©ã$?VÅòkrÌ ÆÓ­ý„q– —mÅF•º CgåF&¤&Òƒú»)Žf㔑vâyô¤«!Ø`gToðË p.‰„x™ãWÂôY‰,PQ¢=ë=é,£;•r/浯H
+`8%˜</ˆš‘{‡^AÇîÃ,L8ÃØÞ ocŸW°eCSɒ݇bˆ€Î=.ŠÝVµ,‘i÷þHs^ª©*"Ô[[ÃAE§` @Úö»ŠlM*äED‹¸ã­Ç
+–•‰üC1D'ñ×CòqþòòEÍó¢ ´cÔ|Ò=j¥#ÂE§$8% à“I2´'žÙ§€Ïè`9xûÑ^WøŽÄ‹’°ËºìÃd—K÷ Ÿ®¸0|(¬ºWG«b‹ÜÝÞ'^†ô6ä˜úSÈŒmˆÐ]|Ne~$žÚr›GÒ8à&¾¦¶CX’‘Õ´º5}lp¸´.æEC’BH'ÄðŠ¾uµeŠ h  b"û’¯A"#d8Š×~¾½ùš¸dŒ¬é
+ E_³7ÕÉò¦pö6Ë|Æde'ƒ³—ÁØýšuup;чá¶ßí‹#àœÕ1@T´Q$SÌ‚ýìV É/Ó6“¶·ÐÂÀzAoBx` ø(Ì4PEb¨ì¼ ’Q§ÇJjü¤ö„çìîE£¬^['G%ŒVH~ÍÒ• 𙯡.ûS ¸š·ä(
+Zuë{BÀÑ´¼{Ü5Þ_C¸ç\: l}Eõ^ŸÒír!ÿ,£êª627“!±&Š‹_–f“÷‚IH‹ËñÀ¶d³ ¢Š-5/y´Å_øŽñ·p%,9Ü}ÅAŽCǧrö–_ç+ãÀ¨–¢á@ª½7Æ›>^ØîòH?q¨JèMÆ÷s øÏwÂ6'þŸ*ÔýŽ
+k*i*ý¿’Ièa¦ìKQzƹûMÑ9ëÿ>Þλendstream
endobj
1755 0 obj <<
/Type /Page
/Contents 1756 0 R
/Resources 1754 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1737 0 R
+/Parent 1745 0 R
>> endobj
1757 0 obj <<
-/D [1755 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-490 0 obj <<
-/D [1755 0 R /XYZ 85.0394 769.5949 null]
->> endobj
-1758 0 obj <<
-/D [1755 0 R /XYZ 85.0394 752.051 null]
+/D [1755 0 R /XYZ 56.6929 794.5015 null]
>> endobj
494 0 obj <<
-/D [1755 0 R /XYZ 85.0394 219.3808 null]
+/D [1755 0 R /XYZ 56.6929 503.9183 null]
>> endobj
-1759 0 obj <<
-/D [1755 0 R /XYZ 85.0394 190.7166 null]
+1758 0 obj <<
+/D [1755 0 R /XYZ 56.6929 475.3477 null]
>> endobj
1754 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1762 0 obj <<
-/Length 2802
+1761 0 obj <<
+/Length 2403
/Filter /FlateDecode
>>
stream
-xÚµZmsÛ6þî_¡oGÝTÞI6ŸÒÄιsur®3s3m?P"ds"‘ŠHYõÝÜ¿],H‘2eç­“\, `÷ÙTÄ„Ã?11–ÙT¦“8ÕÌpa&‹õŸÜBßÛ3tf­Ò¬¯õÓÍÙ‹ OR–Zi'7Ëž­„ñ$“›ü·È2ɦ`G¯ß]]\¾ýpýjëèæòÝÕt& ..ÿyN­·×¯~ùåÕõt&#¢×ÿxõþæüšºl°ñÓåÕ’¤ô8aôúüâüúüêõùô›ŸÏÎoºµô×+¸Â…|:ûí>ÉaÙ?Ÿq¦ÒÄLöð™HS9YŸi£˜ÑJµ’ÕÙ¯gÿê özýÐÑýœIeåÈj1¶&eVIå7ðÓÎmfuµÛ.Ütf9²<ߺºÆ¥M„4ÌÈTMf‚ÅZ?äïÔ%XjŒœô:6Õ¶ñ}2eI§#£ KãØö½ôò™ˆɬ5{ìÛìÞŽ¸§Ó¸ð¿Ö»Rööq&RÁd"ãÉL &¬%o/—A·¿ç)3"Á“B] Ëг]¾™¡3õˆíÎYÈv@µ1)$“ÜïÙ´_`³¨!†íÊzãÅïœK—ÿ02µL%V‡ae¶vùˆq¥X¢l´öÅjEæwnñ›6*–$jî5ªÛfMQÞRýP7nM]›íT$Q5£ €Mf&9‹û"w°¥L”áC·£n·ÙzíÍb_Q6n*¢í2ÃÈFISÑÓk»f[@·»o;ïBû=ë¿…Ir·Ìv«&ŒÍÀ> £·%œo¸Í[;0e+’øÓð¸¢14¼Ÿõnq/ý
-ùpeèrðWàø£ŠAù>+VÙ|åÆŽ)… ­yþ˜b™èá1Á>4HÕ–ö§ÞTeN‡›Ã!J·!Øâ^âéÅQV¶û¢GáGEЙ¯ P…õC:*®Óv'׫}IP檤E
-.5µ¬1ʼ¤öÿ^ŽÈ£ôú
-›GGÁ‡°qU5îÇéLK­³W<†@¡3À·$„&4ü„5µçAVï–¨Šy¼(\Ù¬H¾Ê¼‰Û`‘"õÝb·-š‡)l[ñ©½¢.H+L‰-†ZP.þãÚ¾+ó0wUÒó>ÛÕ.7Ùll!'Du!¡E4ßaL¨4Úc (t°4X¡Û(¦u/ªõ¦#"ŒXTe“%½d u®\V‡~aU¢©Î
-~çPƒx^4ª%õ†vl@Q0\Šõg¦YÕµš»¬®¢ŽG´0† ðÜËè
-‚òý+I¡•Sk=Pç<˜jªŠõ:ó™2€(kî<.€h³Ûn*J6©
-ÝŸÙz˜ 6Ø!ùaûpuùoLq0²¦—À
- UV 5 Ÿ«ý(çM`íZ=Ÿ²’Ûx°ö’(ŒŸ¯¹«víLô h§ßl‹{À9c€¨˜£(&Ò‚ý¡¬@s…wß‚/©…$ÀWáŸ_02>â9VÀG ƒ=TÒâXI`~åbµË +É’4¤±s§,r¾ÀK¤«[4.ÇzF½µk¨ ÏþbE"ïT@ñƒýx4,kà7Ã:WO:€·¢ív£] %‘ÌAoXDèªV;J„vd€Äš$-ÉÝ*ë‘IH‹æ‚bÓæV̉*Ö¸Ô¬ ÚáyŒ¿}‡ÃÙ—ä´èx¼èPtY ®ó
-L’<íN§5âÜ
-¡°i.†}íFµ‹Ó ãÊÚÏú5D@ø¦Fÿ` åÞj}Ú ã`*4ý
-F,g±JÄ3("$P¦„ëï‰"€Ô\[ýýA¤gø4†¤ ?.¢»¿Vž•
-¢ý*á„Ôôì°á‚dЖ$y傾çëØ KK›s^âšðé Ÿ«¼4üpígh _:˜ÀL¸2_W ÌöøÇ5!COeG-dþšäÐ,åv´øó.¿ù#Â]ÇL%‰<Á"â„éŒ(ÃÐîuÌó¨ðß‚VÏõÿGç“rendstream
+xÚÍ]sã¶ñÝ¿Bo¥gN¾I6O—;ûêLã»ú”‡6Í-Aç(R'’v}þ÷îbAš”)%©ýÐñŒ±‹Åb¿%fþÄ,1Œ«TÏâT3Ã…™-·g|vkÎDÀ™wHó!Ö‹³ï.U<KYj¥-ÖZ ãI"f‹Õ/Ñ»¿¼ý´¸¸9ŸKÃ#ËÎçÆò臫ë÷4“ÒðîãõåÕ‡ŸoÞžÇ:Z\}¼¦é›‹Ë‹›‹ëwçs‘ûe pdÃåÕ_/úpóö§ŸÞÞœÿºøñìbÑßex_Á^äëÙ/¿òÙ
+®ýãg*MÌì>8i*gÛ3m3Z©n¦8û|ö·žà`Õo’ŸQ 3‰Œ'(å”
+›•`ZÄ´ùºj€µ¹L{eåi”2x
+×8Z¾uË ®IKôÊm—w4ÑlZmNxópDÀ²Ý¥
+öOòÐcM01”®ˆ!¤Bôs± ëDQuÖ‰bîæ‚Q•ŽÁ8ÆÉié ±ŽK§Çêµ¥—ÌSlɈ“Tæ¢Çš`c$à#Ž¹óñRùXËlDOËg€uB>Ö„|ÚÝ*kD·¿Ïž)’”˜2ušk‚Ÿ¡ $èNÀŒú_Õ]bG‚>ã÷dSB²45z:›Ç ¡ßj•§Eû8Ð
+`·cLê)kÕ†3O<”HïÜ|°>·äu%”u]\œ± ’qf”ìÒŸMˆhÿetq( ©°¦c Ï¢}ž9û:Œë´Ù# `×'ø‰ï®¶rö¾‚Í—êχ”ý¥,ÚƒŒ50‚_æV>¥’Zê([­ö®®ñCQ<Â؉þW1ãØG;Êg”†(’¦ƒÙ9(<œKu±gÄ‘™TZ¤4þ¸ÀøÔÀÀú\q Oþã¶j6ýüþa†ì´ž –@ö=V‹w€'Ýñ 0”'6 “-†¤K4
+Ô›¿žAU¸êšÇ­cøÀ/Ó™×·Ž±riõéœ\r¸”m6l-
+ËbÌe8þQ•¡
+]œ !"ÿBPjNwŽ@ökµ‹”µÑ&« غå&+óz¾1ÁÂqWdÞ§ˆy…²q´Î–ù¹
+LvN6ó¬h…ÜW¦úôÉ=Òó£G%«J™ŒÍøì÷ñÒ‡I™`þ§dÝÕ-†~ªÈë† ÿ†°zõ) CXô]«ºîöw(¥ïkáL 5&) oN{igø@ŸåjW„ë‹«Ë¿¼…²;W‡\Lú†Wº{÷­ïO*ðàëÀÞ†f—Õî‘ ÒFÑ©*ïUžjP\BEu«7æ“`?>È©ŽÀ/2¡•§»ÂÊÍ­£Û?:ïOá¤ëÏSf@¬/+?®@%!™P7+c¢+vô|ÀèʺíÅŠó$m€àæ¾@ØßÝ„:ä%¬=äEAÐ×6_~AS¡í%Š(ß…=^0³Ë%ÿA×gS…ÅGo…¾}‰ÞÍ÷8 5#uß|Ô¡å
+€ï´Â8ªqâ!ÇãrÙr3ÑP”œ³4Öª Wcã:° ¡"1ý O
+MGPU£Z†ãCçV‡¸îôs´) êj$³&ÇÏÛµÁd€äž@x°²ƒá7˜€º¦Ñ(ôyJEoz¤K_‹ÏWúâ Xv„ÉÔº 'Œ% AÂ&! Ó¶‘dÁjJi»6¼7õ
endobj
-1761 0 obj <<
+1760 0 obj <<
/Type /Page
-/Contents 1762 0 R
-/Resources 1760 0 R
+/Contents 1761 0 R
+/Resources 1759 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1737 0 R
+/Parent 1745 0 R
>> endobj
-1763 0 obj <<
-/D [1761 0 R /XYZ 56.6929 794.5015 null]
+1762 0 obj <<
+/D [1760 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1760 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F62 1379 0 R /F63 1382 0 R >>
-/XObject << /Im2 1368 0 R >>
+498 0 obj <<
+/D [1760 0 R /XYZ 85.0394 223.2735 null]
+>> endobj
+1376 0 obj <<
+/D [1760 0 R /XYZ 85.0394 199.7072 null]
+>> endobj
+1759 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F60 1366 0 R /F61 1369 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1766 0 obj <<
-/Length 3271
+1765 0 obj <<
+/Length 3588
/Filter /FlateDecode
>>
stream
-xÚÝZÝsã6Ï_á·*35Ë}sOÛnv/kÒÛõÍÍ]ÛÅVbÍÊRÖ’7Mÿú(KŠìÝ^n¦“™¢@~
-Æø±J ç’x^¬g(‘¦*>=õ“0“¡Çx¨£{Ó,©–®w¯Ö ¥„KþuRd
-Üš#$6{oÐÀžÑ‰$ò))£AqÏq{¹LU´‚ÿ:ºšº†ŒÑ©µÂ)‹‚JÈØ9C<ÚÏôhßðÍõN/^70ŸÅ`JaÜå``?£T
-­÷MU5OeýÀ½»²©y´üñ±zæQzþÖ¾—üŒVBꀒd"4Iç×fZ¹Nƒ¡çò1A»¤¨™ÊV Î>/¼çš‘>JÆ %ñ¯‹Ÿ¥ÔužÔBð‘EUs—WÔT•mG”÷$|½þ‘™7›ý¥²QѶ¡`©ó]A-m±ÿD0ÒìyêK=ù—gh‹šnnW×oþCô$ä…ˆ
-/h·bC¡ÿHÞW,éæý8(IêëÆ?7
-f^Ìíçî¿2êÂߞʪ"êã¡\À€¡î5šF~à>Þð„)æU·åš¾˜‹í[‹yCbŽ»ê8A?é8Ž›}GÔ.&â® gûX¬K„(šžJ‡T‘¯·œ#‡QiV¸,6aÍÇ×$(X0l–þ I„ϨEQ³xÊ@@ð¤uÀç¨SÎpM´H—íÁSN d`È=‘à°:P›â>?TõžžPžÅ‰^1{ÃÖ¥·Õûë·D}(ž‰X‡)Ôºc c C[(oaê6² *ØÌvZÖ‡:½¡€
-YzÞ1g[>ÔÅæoðbÐÐ%³‘î>q¨ˆÆ¸çÞà#Jý,ÔÏi"j¶,+èSY<ÍÃõº~¹ÝÓ³øõ±*×eÇËÊ0~V«ÐeOÏ]Âß07næ€ …”MM
-áæIi A ª:ÑÀÞ‰ð|(?yGa?ó‘©àÅÃø¬üR–6"U:Ø©ÅòeëZ_éÈ{Fb¢¨°º¡—Ó¾Ü$±ùR¶2P£iÆ=V¨ëÙÉÛ J¦
-±åÅí‡ÕãPù7×ÍÛ\¬ú´Äu
-°ž6»Ã4žj@½¼àék7$ºfF¤ÕhzÝ×ñ3R@ ‚pm”!#¨XøùŒË¯Ÿê€— Œ9'8¡â4ù2ÐA%Ét0:-cl0vB{|cÜ8ÌCœPÙT(;|س•/.÷¡Í»c9­A ›Š‰QÝZì;®BY] ~–‰¬¹& •—OœÄÖ9Õ¡ð«“…j å‘KÌg
-Õ!×éBµç¢|ôë2ÔÉèÞeWîŠeY¿¨ZÁÒN§ñyMz®UFƒàq2³c]®ë;Ø``qeãP»5Ü´X%”uíü\5õƒ¯‘Õ/µDù’ÊbñQ?SÏ]Yº‚›¹(²T”ø.Å~W. XPL»TÙ1®jˆ¿Í!CiÉ` ""4‘[ØI·äññpàrwØÑ˧¼:㑵e±ùó`ÔXš‰Ä³h‚âW(%“óhrFSÏ5‹¦rSÍ£)…L[÷³šô\3ªŒÑ¤„2ŠGºѤz4©1š¢ã!IañGÏG¯{óp¬°ÕWûªG–ê‘¥otX–\ª¯¸ƒKMÀê:­ÿWp¥§°¥ŽØúÿA+N…N³ø3ÐpVà:¨šC÷[6°Ô¤çUé¹ftcˉ8F¤•¹=t . [=^ÉqÏ88ë€×aªÒ~÷ ¡lå¹icà©’»¦<Õ»^xíê.ˆÊAI'Ý_5[Ip•ŽÍg 5à:©Àu:[ÍB
-J$XΫÒsÍè2†T*Ò,›(s„”‘RFÊQ¾’꘯€öù
-ž3ù
-:ú|%¶¨¯ÏWRó• ðBÊç+éáåMÂ
-=׌#`¥ l× ª)ñ¾Ê?¡ÕŒ>ždiÓ§h~5›M¹öç8þ›×˜>Ò†•šý5m¾áéO7Ä€±ãË{jàÔH²ËœÖ‡Ýo‚KØäs,µhµ%­‹ðàûÁ£,ÖitEgÐÞ”ò@{ rzû¹‰¯µå3h£‡«z‰4ËËeG_ñhuÑ=5ûôr—×›§rÓmgÏV—NGhXôýi:’|.‡m½@{-°H#/îïqÛ«U¸¢7²Œé¡E£³¸§-^¬y@´?)ô,ý©…òG`°¡…M•å˜n
-³™©yu¥>±ÑÖ©H,Bò4ô'xÍ2XQ5Ú™ûí¾Šü¢ʺ+p½_ð:zàãYd9¦EAÝãì¥
-{BéQšÖM½´—]ÑÜ`âÒ‹õÁ–³¹MË#†‡08“ N—ñ¢ÆâákGi»ª¨>0át v(Pïo_q“÷ÚàìS3ƒÃwüR¶íÁý¡Ýœ»ð²Ñªìù+ÕrxKãæÒ†}¹ŠdRáöÛežž³±)®t&yn«žÛŽ{{2IÃkÄ]ÓmÃÒÁ‰ »ú…Ý8Ìy›úfH%±p6Îί C®ÓkBÏ51tIw£!΄”êÏÊï¹f-°è9 ÂHLíBnÑ6²[æÔ ZŠÓPö%PXÿ‰Ð4:ŽãQT“@:©ÒáZŽ± ­}ì»ڇÉú°'Ç{‡ûax%¡>\¢(ØU™éŽÝg 6ú@1¼Oô—8ÆÒ5‹¡ƒs|ÂÖv9:{îŽ>Pñzâ7܃àOA²$ÜÚÂwGMCò¬?®òì¼x±[–fßaÖ3Çï#(i³^¤vsÜ«>Ô|8=X*fŽå¡.1ÀµJêtäZ^=®k¼4¢e‹OkG«U8%]¦«UÌáOÚ±ƒÍqæN¤ŽãtO'„¼ …(]‚n©y…|™ ˜äeÄ,ÎìÄ 'R
-ì$¡$úÌ6fÀt:¡¦áõº¯Öï›ý.¹}è‡~ö¬=ÓKÆ)Å ëðHú­ƒrÉp·‚¯þê‰;þN^BŠÝá;=5Dl l„iðlzVšUûõÜ*f2a]Ÿlêb òŸ ÿ̱r Þí«þG/“€Vºã]MýÌãÍF, ‰ýàÏ=S<éžÔ„óx ÆýÑü ?N§D’N.3èꎪÆ7~ÍôÖñ¸"f}‘Ë·~|+éjfïåŒ=À‚ø‰7s´~No9úÄ|¦‘VdJ%ãìvÒ_&ZõÕUöÆOËßVgÑë›÷ÔÂeµú²[9ÿ5tyî&Ó·† xêLOß6ssÒI*@ÿø ‘áð§ùúëîÏýNüÄoM"ðGz31*ûŸÁýéß é¥„±öÄŽÒÈTXí² N'SS͉ÓêlFõ߶ò‡»endstream
+xÚÝZÝsã¶÷_¡·Ê3'I<^.¾Ô™æîzçL¦Mò@I´Í‰Dº"eÇý뻋]P Eɾ¶3ítô X‹Åo?A5“ðS3›ŠÔi7Ë\"¬Tv¶Ú^ÈÙŒ}w¡˜fˆ1Õ77|o²™.Õéìæ6š+2ÏÕìfýó<Z\ rþîã‡÷×ßýøùíe–Ìo®?~¸\h+çï¯ÿ|E­ï>¿ýᇷŸ/*·jþîOo?Ý\}¦¡”çøæú÷ÔãèïĤŸ¯Þ_}¾úðîêò×›ï/®nú½ÄûUÒàFþ~ñó¯r¶†m!…q¹=ÁƒÊ9=Û^$Ö›z6_.þÒOúW'姤Ð&ÕÔ:`®„uÎÎ2ëDj´ñ¼¾…-I3/jÜ ¼¡¢7´Âé4,ƒ¤Å¦muÓU·ÏLÏn•ÐYh7UÛÑÄUKÿwÕcYsÿK¦¹ÈµÍxš4u9±–6"U°"j»¢+·eݽi•žW~ådþTm.Õ|CÍc¹ÛUë’Vîîˉµ•Aê<ÌÛ<tUS3ûç7ŸgÈP:fH élar#¤…yJ g­öT?Ý{y¸i9˜L(›Äbð¤§Åopi2æ€Þòg
+ pÎcª§9)¢9m•š}wl–R¡”Sç˜èiŽ¸
+ìß µ KÅ r¶I÷¯‚èÜ6Ù\
+‰Û; ¤˜ê4”zªÓæiLF˜Ä½ÀJO5ÁËÐBåÂ9bæ
+ÑqºM¿"íòrÙÿx¶ºìžšÝoô°,êõSµîî)Ó“C¸¹tzŽ¢'¿©¶>/…€‚¾ž h{.0(3-ìbi­V¡84.š²ÍéaE³órO÷èöŠ'D U^2HB&‚ZŸ°BÒ”³¾5©ØÄÖ<»RŸH¤u*¬S!Bý®Y&tjy·OæÕÜ»DX¨ª»=%œPaAñÖ¥ŽŒƒ ¸"ŠÀìaïR…ŒOż®US¯eª7´3ض„ÀÑZ7Då¤YÓò€P;™gn"Ö3Ì‹+Näà‰”&ŸÃšYì͆Bô›‚Ÿ'´¾||Ë]þÐnÙ¼ßSçao0åá\a¤jÛ}¹fº©ÓrVä¹Ê¾î¼R-M”£ÓüÑ^ÚvFFmŸ óî 2j@«‡êÙLü°¿AêN"iØ=,›î>x ¶[øª·Oøk9gñíIw VÉ$çÝALuÚôT#AãÉ} (}au¦™X|à °\–€/¬îA©]0+:Ÿç¨XæTq,µB¢m–'x-š&B'I2PiZŠP°¡
+®º£Š™ ÁõLä+È™ei⸣¿uCëå¾åÉÙøeïy½°k‡],.œGd¯Y
+á€W!l,™2V!$=¡BüÙŒPY:òþ”dø3 V*I~
+HÓÚ® €à/.~_ùKþ·ãóç²,Vž¨™|.´a(}öVcxq¬ÁÆH°ûÈêU*|…*קì (Œ©N£°§¢0x²ú¸$¥s‘$F碧š`c˜C‘@æ3äƒKÏñU<ª¹\Rò`Îñ/Ôà‚Ì?Ò·:’±ˆ]K¦<ÂÞàýM/Ö\ƒ“¨Öè(€¿ð› ØÙ6¾ÈÏ9Q‹]:Xh‘áxË.•;€Ê
+¿ x‡hIÅÞ‰šzÄM|ˆ8@‡èY‰ñX†£ÒÝk….ÖFá±ÿ(Ió×Gf€bÃÿ Pÿ* ¾ÉŸ8q
+1c>”ÉàݸÒϼAX&Л©ê<_+¥\‹ãësxæ¹³ùß~¢ÌÅß ‹tYø¶´§O'nù 3*|§‡5áåPó­ŸÁVU+ß?¬Ag0c7:§/¾„¿Œú|ÝXßœOÀWöÊ¿ýiûá»ÿ$à<N|o¥3'r,[S(íLë>Ìú?ÓNÀendstream
endobj
-1765 0 obj <<
+1764 0 obj <<
/Type /Page
-/Contents 1766 0 R
-/Resources 1764 0 R
+/Contents 1765 0 R
+/Resources 1763 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1737 0 R
->> endobj
-1767 0 obj <<
-/D [1765 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-498 0 obj <<
-/D [1765 0 R /XYZ 85.0394 654.332 null]
+/Parent 1745 0 R
>> endobj
-1389 0 obj <<
-/D [1765 0 R /XYZ 85.0394 633.0122 null]
+1766 0 obj <<
+/D [1764 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1764 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F63 1382 0 R /F21 950 0 R >>
-/XObject << /Im2 1368 0 R >>
+1763 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1770 0 obj <<
-/Length 3272
+1769 0 obj <<
+/Length 2747
/Filter /FlateDecode
>>
stream
-xÚÅ]sÛ6òÝ¿Bo'ÏD(> à1Mœœ;×4—ºs3×ö’(›S‰TEÊ®ûëo P¤DÉÉ$37ž1ÀX,öbb2–yé'Ökf¸0“ÅæŠOîaìý•ˆ8³„4ëc}wõÝ;e'žùLf“»Uo-Ǹsbr·üuš1É®a>}óÓ‡w·ïùôúÚêéÝíO®gÒðé»ÛÝôþÓë|ýéz&œÓ7ÿ|ýñîæ eqïo?¼¥OŸ3‹~ºywóéæÛ›ëßï~¸º¹ëÎÒ?¯à
-òçÕ¯¿óÉŽýÃgÊ;3y‚gÂ{9Ù\i£˜ÑJ¥žõÕÏWÿî솩£üœI•ÉJÙc Ìxo&Öx–)©w×ÂM‹¦Þ`QÀ…½‹:|— uæñ»­›¦œ¯#jYµu§Ï¦hšü¾`È @ô(^2¸98MØ{“Wϳ¼jžŠ]±ûôfpÏBùˆ\ÆÝ7DTܽXaã7Îå¢,ªöôJ5ïÛH\œTWëg‚šýv[ïÚb‰Nf2ãÌy¼‚y
-!0˜}BÔ3*Dšã˜°™Þüæá“M-ZâÏ}Ñ´Mú- ä‰÷¿:¾ÿrS¶>•ëõÐâÓš«}S,¹ù»4ïàë 58l:¦Á
-¢Dî…ü>#…ÆgÌK%/Kaë¼vXC)LŽ¬jN„Q:°»J\¦¢Ã!cpbV\j3¤ƒ8,øA±‘„QBÔîPðƒ9ÇÉ"B=Y Í
-‹¢,b×<bžÈÞ`þ.ÍÀV'C“EJHŸ§
-!=ŠÄgQq,LÀ4ëRÔ¸,Úb·)Ag@1Á
-<=”˜#˜" %¦ùrë \¢Š6¿Ñäv¨+ Eùø¨ º{ó‘
-®s•/âœß¤Ô‹uÝÌÆî ‚Dä,P#Âq;ìX}(* ÿ ðâî!˜SÀ„H›}Z3ßn‹|G½e÷yˆk ×V¸ö?F+%"cFdÉ sê§Y§ù#Å8Ë4—ÉwøÑ(SÑ+æ˜ë¡o
-LV*EP
-ùO%
-èl¿CåC©PÙ´\B7)Ô9 \þ¢Ä‚ÅÌ\G¦…±dºi
-ÈXwŠCê,ÍX ç’Ù“¼‹´IŸ`ƒœì˜Lq1ÄJì29”üM˜˜þ‹Œ0t 0¶ãxNÍä€K*AÂŽÒH¬9ÀHrÌ>D(ëý’œ3tç£BnC~)Gã2ÓÇÞ3ÉÄÚEeOeûPV—ŠTÚ2kxbs8ñéÎàä2iµõn¬â ¡ufq?£ëpëS;‡õÇ0Ãë²90=(z÷û]N
-€Ø³.N¢…Tn×\1•ùìs ÄÅ· 7þ
-“K-I×
-X­.»¥ë‚[‹* ÄŒH—SÏ”°FˆH qL)î†Ô¼’Àûž ›½×+h JNVPzmSfcy̳-ï<Â㞉;&D—ŸgÄñÏÀ­
--‡Þ)>îÀ>~€*Kº¡9\¯´êø½öl¤pL†ÉíÞ™/y§$" |öBtÓC:/E éÔ]ŽoðÞí)éNIÈP²Æ¡«OË/áEÛ%áü@˜œë “ó=ajh¸Ž`Ö““¡êŒ`æÞÄ%»Hú{Um©ˆã\¿ˆýõX}|³å2VªzìÙSƒ°ve®¸•SÛÁck”…Ñ-dñVvE‚çbì½b6­t*HüÆ ×þO ]*%l¶y[ÎËuÙ>ª`ç~L¨ Ã_
+xÚÕZKsÛH¾ûWè¶rUÄé÷ãèIœ¬§2NÖQ[“9Ðe³"‰ŠHÙãüúÝ)QŠSÉÔîVªB°D£Ñhà,>`ðœÎ˜ôj`½Ê4ãz0Yœ±Á̽9ã‘g”˜Fm®_Çg¿¼–và3o„Œg-Y.cÎñÁxúÇðå?/Þ/oÎGB³¡ÉÎGÚ°á¯WׯhÄÓãå»ë×Wo>Þ\œ[5_½»¦á›Ë×—7—×//ÏGÜiß‹(áȯ¯Þ^õææâ÷ß/nÎÿÿvv9Þ_Î$näËÙ²Á¶ýÛˤwzð/,ãÞ‹ÁâLi™i%e™Ÿ}8û×V`k6|Úg?-]¦°=¢e@΀Vf`µÏŒ2°.š°%á†eƒO1œ³|3ojzk*zæô¨Ÿê¦X=©–Íúœ»a5ŸS{È盂ÈÇûrrÉr>'jSoòùü‰^n#gs‰|: ‹:®^Íð)‡Í9“–˦XÏòIüæ“j2¯êždÄyæµawE ›’( B>¤ãr8Hk-ª¦ ‰b9Åó[ŒïËšx:*!Ób“dæ«U‘¯i´\Æu®l‰²ÿQ£Šp(¼u(’›LsãAsTŒS=Žšu¾¬gÅ:ò·ÑØL18;b¯VMYÅ¥gUàŒ¤“™çàJS‘¥~­À˜Ëør[”Ë;$Á,qQÒ|Š^!Í°œcE_ÀNk¨WŤüĘ(Ðh’©h´0×äà%Ų¡OÀÇâ*Ñc&2#tÜÓvó Æ¨®6ëIÑcË2Á¸ˆßàÞÃyp4Xó+(\¿ˆ±"sÂl B¡ãvƒçÈõp’£¹ þˆÕX¡œN‹e|ó9½®¢neñÖÄf¾káÌm^OBò‰˜Êåd¾™³ãpÞëpÅ÷Z„gL¿ÙAô qÄù®O<–Í=z.F´þ£Q6³š%3‡®,ŸMÚVë9°ª3:)ìÓ+‡Yo"Óí¼š|&ÝÚ:BºÞÝfÓÀA™Ù~LNaÏ8F<#(KrŒëÊd¬ÉŒ­Ê¢ïÈŠdú¢+j”´&3§lÇîíY¡5YÙ ¼3ÁF×-+j£8…ùLK‘Lýî|døp ÿ‹áåi@¨Ú Œ7*ìgðe
+¯§ï‰#EÓÐ탊×8J׊V€˜Oñ^fç’EŸÞeŠ ã—ïÁó¬ƒ'ç‚ ?ãë@©7TÞBÖ…ómôùŽt ÒƒÍF;tðcž=>ÃI¡BÀâ5–1<YmÁé”m¡ Þ׶\G"ÙèÁ¸¥1™5 ­½Â[®E:°£UrO“q
+%u¾ˆTÞ—ŸµÉ¸ðü»"1ÜPçàªÒ7/HzñפX5DS~-
+£
+”|é² äµE€Vðº©)UyõþÁ8 M¼ÓÞœ8;´Y‹ëÄá%.Â&Í舺§Ûÿ8©GbêÑ£{v¹%DŸŽ"˜­E…Šõ2ËšÝá„ITµ —ÞÈà“n<°SŽ†‘y ˜v¹–=> 8Ü3cÝ÷¦c#Ó'³¼œ×Qi_=yW)hoêb„ÖŽ¹P½óRïá¹çÂ$i·y·Œn!ðhšÔÌd
+vüSÒ$ Q£¤ÿŽP—¾8–&•™µpßH“ÊCÚñ\ýÔ4©À ™¶êoH“mÑ'Ò¤2`qí)M^¡K36|¼SmèeZá“Ç e}O¹>áâ + ãíÁIð$˜ŸÂ„nHÙ¦Eä¨èyßÁK±JÌt5¨ï«Í|é¢!Û›¶·ïåÑäîäÒ¨,ƒ[#‘\»k.2¡u
+³P­«UD °+,2• ûêÈýkŸ M$5‘ÆBbZ¬Šeܬª%ÝÀíRx—€B
+²¯:WâDØWóò‰)A PÌíOãš6× J\‡áç4¶Á“7xò§”ÙrõhÓñ#Þ¦ ”ë¨ó±Fp)@8ßq)ß¹”ó-—ªiºŠÓ2 d:ä œÁò½Ž"·@Æ[­šm¨“S­f ŽW=2‚;cÐOXV=‡Î¸lò¥
+ö·†äÑn±qkEÍúW„ ’YáSÃᩨûÖ²€þÄó‰iFM"Ýî»ÔNX¬ò¦¼-çeó¬ü¸Â¬îNØâ:ᄉ‹ìÕ”³§cn§à¶`‡ìäò[®o¬Ï5qØô´ûEÌÀMS!4-À%å2ÔÛL¥f¯dPŽW“|N£ S­f*îb1¬ÔɤÞ0¾|õž¾ê½‰ÌÔFÆÙÛ"&fô-÷ÚZL°x§\‹Ïº ¦^¿_½þ7.@ü®¨áš#SÓ&ºM_䤦/N¥¦/СékRIËÌó‡Dë¼¢V ûû¾ÆCa¹ÅŸ‹ÂýºÏ±¹/¤Øëœa
+ (ôbë7
+É»MÜQB£vµwÜÔðŒy3Ð [¤ºfÙty±…EíÀB‘ž Í Ï„Æ „˜àu°ñ×
+Üd
+YL^Níé{Zº¸ãYÊw¡J
+Ç+ß‚ñU:Rš~©
endobj
-1769 0 obj <<
+1768 0 obj <<
/Type /Page
-/Contents 1770 0 R
-/Resources 1768 0 R
+/Contents 1769 0 R
+/Resources 1767 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1772 0 R
+/Parent 1745 0 R
+/Annots [ 1772 0 R ]
+>> endobj
+1772 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [471.1233 61.5153 539.579 73.5749]
+/Subtype /Link
+/A << /S /GoTo /D (query_address) >>
+>> endobj
+1770 0 obj <<
+/D [1768 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+502 0 obj <<
+/D [1768 0 R /XYZ 85.0394 117.3409 null]
>> endobj
1771 0 obj <<
-/D [1769 0 R /XYZ 56.6929 794.5015 null]
+/D [1768 0 R /XYZ 85.0394 95.0296 null]
>> endobj
-1768 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F62 1379 0 R /F63 1382 0 R >>
-/XObject << /Im2 1368 0 R >>
+1767 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F60 1366 0 R /F61 1369 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1775 0 obj <<
-/Length 3358
+/Length 3273
/Filter /FlateDecode
>>
stream
-xÚ¥ZÝsÛ6÷_¡·Ê3‹o’—§4qrî´NÎQnz} $ÚæDU‘²êvî¿]ì‚"e'×dÆÅb±
-aW%žúø˜mòÕX"†AÆ)ÎEa <‘8‚O³àݧ]ãˆ{  í:b½wKõà,Vߣ˜OZ¡]§ðïሶ[ò$ÛC'Ë~H1Ô‰öŸ‡K®>‘ó <hp™€h§¾Ó!‰4IpÍ8ô‚Ò$Öî¡Ô†PIÜL I(TÀ9AÚ¸G\õ¡)° Û†þsË •hð¾Ù6~œåCYVta4®P[øó° +Úa˜XQiÜ_°b*a,1I§‚ÁJ>‹„§O”ü” §”Pù„} 1æôÙ0Öyˆ1”¾ö†jgovT—°qY·g:K7Õkîw×1<þ~È÷O}œ äúHGÐ@tôé¸q qX•Ñ£wOd'¶4sö/O^îd¯ºD…¶ÕÑç P>–‡õŠ:QÂ
-²ˆµ1¢bÑ ,dëª$ñ7Q>…¡{¹]óÈ~)ÆA ¡ö"H[v†}á‘€„èÿgvþªÇ/…<w¥aT”(ÕÇ™±cÓ32¨¦ÛÇŠô6a_Øí‡í*óûª<ÐË@Ï°|[å¯yyò§¾p v%iÿlÐÒ”Å*_…PϤ`‘-¿IÃ*„ýÍNà¢XõÓ ÀTß•UU,ÖÜ\À+šd¤¡»&7ðl·;í3á`$ßH9ßø¸Ë‘„fòù©ªó ßüç!Õ¦,dSŒ.ñIR2`~Û¿?eÊ›Ýs«'Ú@d7Ùö‰åÃÐPæ ߀
-֤
-ü܉¸7‹grâF~ÄÆÞÖèígÅþ“¬$èx«/MÚ³føQ3H½`ÃPÚñ¦ƒ£/ckûYÁ¸Ö½Ô^›8«èËP¨m£¼6På!tbO‚Î0ž
-u“¸À;j9ÖB4 › 3ý\¹Ö€ô&s$ÀÄÊíw_‰äçšê+¯ KÈáé#Êy˜K›K:À ;ý¸eÿýK4`‘:˜Q%P-%ŽøB¹gB©ÖUuðÈŽåÎx#|ü°eÃåà‚ß_øðc˜\l‡¯ÛÒøïåÏï¿2B>T•û| ¤Â¯9êùa¡á¸½à¨6öžDkAÞS§?ó׈kÖ»Ô9lv ‘ó çƒG‡×3
-ÌIâ^ ˆi®ŸÏ¯ˆb`¤{aI:RϬIò–eu6¾(xU'Ôó#7R#C÷—%ŽD*mlòg*;ë/m©ìW&ÞJÍ7%æTX®Cÿ¼.n¥×F«vœvÝàetÝðëqœÆß¾n0PøyA«ƒ€ŠâÄ©þõs±06ä?m
-b© ÜPºv奓ð£¬å…släá‡=—Ö¹O­}ePßNÓà1YC’ž€÷76ôòîæsÛ«Xý|| ü9ó)䊜iÖ3íÇ6*‡º='>Ývžß»ö×GX—Ñ㘱ŒŽÃÀ ÑÅùtEÃñ+`KûDÅ3±€Ý95Yp;ÐGŒ‚Ÿ”6ÏôiTðM‘fwBË>+*n$a×é¶Ó]8¯Pb”í2\×0\Gá9oY²ü†n¶ è/© ¡é÷û™Ÿ‹iáo¼FpJ4ŸßÿöOÉÚßÙAî¡“D!uˆ'Þ ²Q¸±>ûUchúÿ
+xÚ¥ZKsãF¾ûWè¹*bØO6wN“Ä3;©d&k;µ‡l”DÛÜP¤"Rö(©ýï 4ÐIQò&ë©)öl Ñhà(1‹áŸ˜ÙT¦³$Õ‘‰…™­6WñìæÞ_ ¦Y¢EŸêëû«¯Þ©d–F©•vvÿÐ[ËE±sbv¿þyn#]Ã
+ñü›Oß}xÿÓíÛëDÏï?|úx½&ž¿ûðý µÞß¾ýᇷ·× ጘó÷·?ÞßÜÒ”å5¾þðñ[IéqfÑÛ›w7·7¿¹¹þåþ»«›ûn/ýýŠXáF~»úù—x¶†mwG*ufö8i*g›+mTd´Ra¤¼º»úG·`oÖ¿:©?GRY9¡@)§hÒÈ*©¼³e½oiWOõ 5Ú§œÙsV”Ù²äî¶Þµ Ïì®…›óø:oóݦ¨ò5èQ Pz½£™üs¶Ù–ù—Ô{)Ú§‡‡º,ë—¢z¤îª®þÇòq¿ËÚ¢®P½_½Ó¢·‰x"%ãÅß7ùâÙ.öëí‚¥³q<ÿƒ»¬zÌ© /XGMkŒ2o¨ýŸ7È"J!£Êžëb}~YÃß›‡™E‚XŒŽb´‹Ÿ¾ý'; +)æõ }øñÙÒÈ&ošì1oh¼É«–ÆüYÔæÓ×–Hà‚¸TCäSe›|=!ŽkuV1ÕKQ–Äc™‡¢¢~]åCáü9zŽçˆã^-Íß®®ëÉÚšæU
+_zÝ/$˜¯NL2<T²`c©é©é%²¿jÍW÷”Îp4¡ <æ4RI0}:fÝ;æSÕ¸4ÒÚÕ Û -»È%à«âsÖóÚ²« ,cá.c‰f½¦¿)ÙÒ…{ÆS?• M#i\úÚ1«´e˜ª3ÏgõT× ÝCà–54Zøûp k²0°\G±L»“~¹¦ÞûW¸zS¦V†×hŸ2n =—e½úÕo—<àŠ¾…>öÿ’¡mâ˜w1@Ù®ÎÚì-]ƒáòÚÙv[+ïnš7üÞCOðtþÛ>ߦüÄ ]AmæÞ‡*mÙÅáPF¾Z€äÄ™nϾsè½eG›W6åˆDUó‚âcû¥Þ—kz©ªyåǼí¯joŽI«­Tƒ]ÊΚ€
+_
+t…áõº*™³?Ši'ÐÛ ¯¸€8²²»\Ó.@â•°ÁœD¥ÓE“$Ò¶[OXi>
+‘„£1Ñ2rš}?3uÍa{Z„¥ë­7mZ· ÛØaµï«uæ톼£‡QºC8ºmò7|¼Oùa¸9prÁVwƒŽ¦~.Öù:„zËlõë ­°a³…¸,Ê¢=Œ|ðêÛºiŠeÉÓM¸¢x8Œà{$Øæ«Í®ö™p ’(UJuPRØŸ
+bI‡'(D&ad€)âý„6"™d1‘×’y’ÇVQ¾2î€:'ØÅP@.’ˆ!xkᤞ`‹¶-ãp™¼ƒƒeY+ÔÉz»¦­zx„Ü+–î±xÌ–‡6Ÿ2C Бձ9¦ŠqB(D HÍBÑ!€Ïm|´V¦÷.uÀ•£  #ta ±É>›ý†:}¸ÝM½¯Ú)‘¥‘³: ‰uþíËvX¦Î™£[lFüYi4–që%c²¢bÄ¡!¯±j„8СÀÙÙlß„«æ§3N]š6Ûµ]ªr—磗 "­v…÷š40iC0•„­5Åïù8TÒ
+sÓÉà¢[qÑ_’2½¾pJºÈH@z™—Œv⌤Œtl‚…“ÊÛ°à…VƒmÐäîqFÛ^:ÚÑO9°“u‘ÿ]¾:jÞFb,Žl[§Òœ¤ÄÕ+2œ®†2Dlup÷EbLÈdÏ+5H]¡ÛÅY ¼ÉÛ0zŒ"Ðí|9´O}'¾I¾3pØQ£ < ‹6måX á ñ_Ïïê@w`Ú‘8ˆ  ±ºúý— ·ß2N…ñƯ…-ïÉáéCÒy?çšs=ÏŸÄfþ©âö«'n?pFà`Fƒ
+ÊúËÃTì˜<\ˆlO¡ üÆ•zX¥ØwöN ­á–‚õ^¼S}ªówª£
+ѤøL_°eý¸˜º_XUÔJëËbtTr n˜‚´J€Ý!ä«RuÄH)c$[6u™·X?×V{äÑŸÎV«|K_.°ç‹ÿ8ýXÕÇO")×°A¿O@GÃÂ9»Ò\ï=£"üq…cβžÞ(ü(Ë~Ìþ7\°¤³QÛEÎtn˜±g3È)¸eÆ&õ°¯zõ‚Ÿ½ß]œ·¥XàGjóŠ-õ¨.ØR :·Ë±¡'¸(@ š`lD1Ä®¡w¹÷:¦Ï=wB’Ø";€FžùŠ
+´XpêPhm7ùiMR;ÈCA)}9/óý+;]wPÌC‰4ºåÓržŠ¤6æ²v;ªW¤8]0˜Çõ¸xþO_#Fiø“è´ NJYmÒQ
+»åjbY4ô$  ht<ŠÆ8;„ËNq }Ìí¿V—ë¼iyp—UM¶
+X4¡oròNbìpv ­%Ogû¶Þ€SXyÿ?á÷É·lêg_—iÂáâxIå‘Äw²Åö´TPƒ®ÿzD¤>ƒ!IÝð…£.Ù¯=ˆs£°‹ê~—ð:–“ǯ¦Rsi>ck“ƒÃ×iéF?0‘äpúr’ •Âæð¢†~C3À§jà궔H/~÷~è[gS4ѹŸ‰)áo»&Lþó‰ýß?!;þ¾N'‘rîLùP‚+‡¼@¡PG‰<õÆü[³SÑÿ Ú¾4endstream
endobj
1774 0 obj <<
/Type /Page
/Contents 1775 0 R
/Resources 1773 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1772 0 R
+/Parent 1781 0 R
/Annots [ 1778 0 R 1780 0 R ]
>> endobj
1778 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [471.1233 483.7823 539.579 495.8419]
+/Rect [361.118 489.2586 409.8647 501.3182]
/Subtype /Link
-/A << /S /GoTo /D (query_address) >>
+/A << /S /GoTo /D (configuration_file_elements) >>
>> endobj
1780 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [389.4645 212.4953 438.2112 224.5549]
+/Rect [347.1258 97.3808 404.2417 109.4404]
/Subtype /Link
-/A << /S /GoTo /D (configuration_file_elements) >>
+/A << /S /GoTo /D (journal) >>
>> endobj
1776 0 obj <<
-/D [1774 0 R /XYZ 85.0394 794.5015 null]
+/D [1774 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-502 0 obj <<
-/D [1774 0 R /XYZ 85.0394 540.8756 null]
+506 0 obj <<
+/D [1774 0 R /XYZ 56.6929 572.5486 null]
>> endobj
1777 0 obj <<
-/D [1774 0 R /XYZ 85.0394 517.8101 null]
+/D [1774 0 R /XYZ 56.6929 545.652 null]
>> endobj
-506 0 obj <<
-/D [1774 0 R /XYZ 85.0394 293.4989 null]
+510 0 obj <<
+/D [1774 0 R /XYZ 56.6929 231.3705 null]
>> endobj
1779 0 obj <<
-/D [1774 0 R /XYZ 85.0394 267.9627 null]
+/D [1774 0 R /XYZ 56.6929 206.9447 null]
>> endobj
1773 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F62 1379 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1783 0 obj <<
-/Length 3373
+1784 0 obj <<
+/Length 3512
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ6òÝ¿BoGÏT<|‘çž’œÓs'M{Ž{}èõ’ ‰ŠTE*Žû뻋]P¤LÉíÜtR-K`ý^XÎü'gI§¹ÊgYnâDÈd¶Ü݈Ùæ¾½‘L3Dó!ÕÛÇ›¿¿×Ù,óT¥³Çõ`- kåìqõK”Æ*¾…Dôî‡ïï¿ýéáÍmf¢Çû>ÞÎU"¢÷÷îúöáÍ÷ß¿y¸K›ÈèÝ¿Þüøx÷@S)¯ñöþã? “ÓÏ…EîÞß=Ü}|wwûëãw7wýY†ç•BãA~»ùåW1[Á±¿»±Îm2{‚ˆež«ÙîÆ$:NŒÖSÝ|ºùw¿à`Ö:yRÄJ§jâ•\ •q’çÉ,Kò8ÕJû |nŽp&‘GOe»EÈF]C˜ªÜ•£¶ŽpÅ®9ÖŒlÖ„Û¹]sx&ܱu+Â.žÏ>mÝá‹;àE~™!í‰.Ø•v&Ó9Ý_çËb¹uó¶ü=ЗÁj™3yQ¯&Ö”6ÎÑLspËã¡-¿¸9’ÎæÚêØÊDÏæRÆy’(Oµ¬JWwíÄŽZÅ:±†Wkö]ÙÔ-iHY·+Vñ ‘q&e:Ëd›7-P"š©HžrÊ rñ_!TåÚó}³D~uß@4±ïHDl¬NÇû>z1ë åTîŽ;ÔÇÝdîa¯.ð8ôƒ.|ÆÚÁK îhm‹/<Ýì]Mв©Aj‡[i#Kõ|+¥ŒÀ~µHNL¬Üº8V J–^žÎtlRp0$¼cíµÝ­&Ä &>'(ÍE‘¦6‰µ’¯ˆtHuY¤=îØvÅòsPúáÎy§
-îÿêÎhbçá!¥Pq*E2Þš.ôù$UôN
-è¶+„ѧï®mŽ‡%sû•fÊ5ˆÙ\¥1XIrºG­òhÝTUóTÖÚ“ÏÀ¹ÖuT´*QÔ„ëÂ
-á"Áþ?$c
-úˆ6qõºáW4]Ö;ÔEöåÇàÍÑEŠ±kœ”î¡
-㯠zOÏ“‡H
-Kïù'<>ù–]óÅAn;WyÆ‘BxE!eCì€;‹†8æ}¿Õ‘Iщ!JÑpSnŠÅsçÚñ’r È É€Ê!mÔïO§qŠ)} b£§m‰æ€›UÛ´sp,H9®²ÙØ*r8C¾)‰)Û³ ‡hчÊ9Õ#W·åÃÑïMÍ”‹¢-Û‹>ͤYœi®û´!ÕeŸÖSáá¶MÛÍ!ëÊ¡ƒCyáÖŒˆ³,µ×™è©&¸96“ÄYýˆ{¼žÔÿžf‘E™ej`)-‘vpÊRÓAí‘r©
-¿x6š=f –8”´`F0 ¼îgµ(ãTG›Ž4#…
-?Š|dån_¹¬å•þ/F)£Lœ
-ÐÐëP]‘h ×¹ƒZv¦ v[Xè* =Õã@•ÆpUfÌÄT)!OB–0]uEíšcKTäuøDT5Íçã¾%—r”‡²w#ÓÂÔ‚H(w /Ÿj;–ßÂm‹
-Ù°’Ø¿Ïwò‡ÁÇ°ÃBh'}“ÔylsúXJL¸%¥!!¦¯R`½uË‚Ú#°8El„÷àóçž;š†/Z‚
-š\勲žJ†" Ó>dl12ÕP_I;vyó0xy&VxËZR@B´4þ\V÷‰°ªÖIø. îß/±&ÔtßGZÌ•Eú¢Is¹IµMT>jÄÐVÞã^ÔJ@7b<^¹%Ýká{WþP|*…R0ÕgFŽN¤ :ÖmY9î +`Ê©/X»N2(=MvÝÚ‡T—­½§ò’Zî/Ú9ä8™€Œþêæ=ÕÄîã–S›%ãíÉ@òt`ç0èí`¯‚ð{fç€é•àÇw?2²©k×'5€ "– GCo÷€d»ˆj¤˜e™a×x,É¿ÐuHUœX“œlyB %ÔvPN¿Ö(ÒÒ@Íx©ÞK~@uEòŠLÅßÃjÞ6ËÏnÚÍçÉõý™fbûsŸk©Çûûë„2·—¶‘$mÄ…aHY—‡rß5‡–ÜÁðÜÓg¾^Á)Ô©rôR8l»UÙ œd‘ë–à/­H9óò[;·b Ž–\”výI¬µ<ÓW7Ç ³1ÿ –ȤUˆòª@¯É0ï5p¾[².–®ôg*Îó,x§ºØM¦§ØHÀ¶QU›8¯ð°|S3±.d¦iÚŽ3«?/nòØ4³àuŸœ·8HÀÐÁMÄuÊ—r刀ÆÍŽ³b Ö „‡/2¥AäÇnÓP„ÒÁøíè8Å‚ïX PÖËf×sö /fÖîà“k/bžôvÓ B‘B¥ÜÞDª‹Æšâî  Î«¬C;í+—K½d(÷ ˆ§FŽ5J*;ï&QzðL\™ºMsÚÙ$R ™cŠš?³cåÚ6lé›s´gp~Œ €ù'®}qs®l`*Wú와ó>¨ QÖ§Óqr!@s²3Û[»#}÷Eg+¥†2jž@Û¢ ¡·ë*vänˬ!^Œ‹¬Ÿo¸ÂzÕ<]®¨”„hÿJûþDsÙ'3Íô£ÕÈC~œ™L_Û¹§y±õH™è²époê9;ìðpÂçaHÀ {œ÷Ù‘±ô8‡
-½“ü¤ ¾é“Ÿ™Lÿ²*®ÙT´*º‚ ¯MðËõž¢m äŽ+©"¯40åS3LrÓäôiŸ1
-úñ…—Å*¹-AÒµkÃRÑ÷ûæÀƒ]Ó+‡ ïEiE¿ z ³Ôð_o…Kí!éÂg !@Ò“Ë}Ó–]IÅŸ¦ËÇ¥áHˆo óêû·„Ÿ
-º9x«Cí*‚Ù€Zú´¨‰‰•8®£­…ÿò¢óú‡#¥ ÆVŽœ«gDÐÅN„¨”áùéŠç¶Í»¢~&ÈçúL}*ÚiÉ‚¹ h‹7+kéþV„+ë)…§Çî¼·yŸŠ’_’a@åÐk ¾Pê lµî Î,\ÿݾhÛðFÑñ @èøæÂÐ(Øoà$gÐHN4@š¢LÂoÈÌ”ý™ÊÔcJQ¶nâo„ú®þI”Ã?^æÿþ³Ó_ß™ Ê„K=]HÙñ~t`
-ÙÏÌKÀ‰ö’õ?
+xÚ¥]sÛ6òÝ¿Âo'ÏT,>œ{JrIÏ&͹îô¡í$B2Ç©ŠTõ×ß.
+q»»I•LT*eÀÔ7¿Üü'2ͺWçô—*(‘f·K•&¢`é¼–YÂhm™§,œó¨eÁç´¨PËOm×/»ÞôU×Wën¹3_Ïwγ"áBŠÛ1ûWBDª)ÄH
+ž£þ`K1îP~¦ÃùfùBÏ\,º½]W0&lG$ý“%
+ñè 0xa<$˜p‡Ï¦ëÞ4¶=vDu¸ãpB~DT·íóqßÑ€
+™¨Më$å,ó™5Þ3æy¢•(üí¾¯`3n©9ÑZOæ‹_1+?.íšôj:ôZ·)¯
+‘A–Ȥš ‘.ØXÿäí±ÚUÑëGʽìí¢H2™ëoxûˆêŠ·*wRëýE?—øŠüúâ‘jfõ‰ŸË–?[ü£ÈFnƒèæ
+”<B0>ÍîÈ„„#?öÛ–’” Î À_Gë«,˜¦$ jÖí.ÿÝ6– þ`šnc˜{¥;b?1ø+¾=ç¯@ÂS¿]ÅÅE‡ÕCê•L ‹€D>€ÁÀg/!óùõ–óx–Š©Eq¡çR>Ô÷Z„c#5¤!œ¥ãЙ+§êB•Á ,d·ÿeÅÚv]XÒ4qÍ6Üø¦ØòøËZœü §B~¥×N¬¼ìäÆ»Öy1"ªfد/XN~VymŽý‘Þ¥€Í`º@wà>®T>åÆÕ~2]Ⱦ}_û`n7Èf9ÿà‰»S Â¦l_º‹±9Õy’i-®Çæ1ÕåØ©P~Pïr uœ]vÕßöuý-V@|uýH5#ÀĬ¡Ed¹âS œ]ËtÔ$É´X˜]{Ä”‹®,Cª^ܼ+–
+Á–2ð±ßžl3pqV‘jè >5Š È„oáÄ¢4½!ÈY<}û'hY}Ec×Òq rS®RÚ7S뱂
+Sx#•¹`CSTPc†()–®YCøØtÕ¶qª
+,1¶öàb€f_)Ö]ÿƒAË%‘ƒÆ*ì%IŽ1jÂF}b£¾oÒ¾ÉF ƒò… q¨Å1†c|2z¸&LcÇ¿~ªà¨ÛVÆ¿Ñ÷ûöà»6ù÷¥ 'èÅ3pÊÒlUÈjÕœtÎœôiÎ6÷mWõ5‚’” yêS"BÐÐqç†8ßð‚òcXÀuŽàÛÆK\ÇPÃöžUKhà’æ¾!Œ¡aˆ:ˆ¢V±ØUû:HYÙj¦YŒ–gÛŠþ'°ß×T`áEŠÝ õÉ_“´“ëæèòÅ_6
+qÀÓ ÙB Sþ“ê*3
+ˆ´tÎûÚôx9ÚÑD(“0xôê!ôQÄ¢#½îU<²Í6Ü‹…˜c|H:Áû»eiÑöšp_6 )nÉL· mDR°,W…·ÈÈñ;ÏÎï–xúø f[Vkböè.áL÷LÃ{ìÒaîR´iŽÞýË™1Õåh©PÌuM%Ó²ò"¼¾†šiy]„H5#Ã4\åIª‹l*Ä£÷c±ˆRÐÈc‡|IÒUY€lW][[4Ê®Ùâ3yΗª=vu¼Cv÷-T# õ4Â/í±. ºC¿`,ÑÊXƒ¨Tž}Uñiµ¥RÑ9;˜êëò£òQ…€P>hA®ÓÜM®‘¦áyö¼Î”¬yÂÒŒ‡b¯jŽ¾Å‘¹ÿàƒ ôh\tDß3ÙÚn,ÝP*0åó(8@ëJ(g5Ä0X»rŸ´Œ»ˆök5î`š2 Ë–V×Ô ºt'®4Õmƒú4~@ñ>ådöª lOSa’¹€ý VÛ›]ò¸d®ŸwÕ9ò‚ó¤ÍoÚë-~,lÎzRD᧰Ø~ä½X¬p%R]wÿ1Õe÷T®Œ¶æЯ¬é¯ø†äúº ‘jFˆéÕOd¦øT
+ºeCÏž²¿“!š®á½3(scšµ¥©âiGstGË°0ðLð½Žp;sxv—¹€6s÷¢R扔±]*¡;îg úäJŸÝaÿg)Ìä:)y1n€bŒóÍ"Tb¹Ub0ogŒÆ#†w¬éÚƬjÿjÌù
endobj
-1782 0 obj <<
+1783 0 obj <<
/Type /Page
-/Contents 1783 0 R
-/Resources 1781 0 R
+/Contents 1784 0 R
+/Resources 1782 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1772 0 R
-/Annots [ 1786 0 R ]
+/Parent 1781 0 R
>> endobj
-1786 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [347.1258 530.9792 404.2417 543.0388]
-/Subtype /Link
-/A << /S /GoTo /D (journal) >>
->> endobj
-1784 0 obj <<
-/D [1782 0 R /XYZ 56.6929 794.5015 null]
+1785 0 obj <<
+/D [1783 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-510 0 obj <<
-/D [1782 0 R /XYZ 56.6929 664.3011 null]
+514 0 obj <<
+/D [1783 0 R /XYZ 85.0394 303.32 null]
>> endobj
-1785 0 obj <<
-/D [1782 0 R /XYZ 56.6929 640.0948 null]
+1786 0 obj <<
+/D [1783 0 R /XYZ 85.0394 278.8224 null]
>> endobj
-1781 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F48 1253 0 R >>
+1782 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1789 0 obj <<
-/Length 2719
+/Length 2713
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ6òÝ¿B÷tÔLÄà‹ 9yrS§çÎÕɹº§¶´IœP¤"Rv|ûï·‹(P¢”Îä&ãX,»‹ý„ø„Á?>É’˜É\MÒ\Å ãÉd±½a“5¬ýtÃÎÌ#ÍB¬æ7o?Èt’ǹz2_´²˜eŸÌ—¿Eïÿqûi~÷8‰„E:žÎÍ¢î~$HNŸ÷>ÜÿôïÇÛiª¢ùýÇ?Þ}¸{¼{x7ñ,á°_8
-6|¸ÿç~z¼ýå—ÛÇéóŸoîæ½,¡¼œIäËÍo°ÉÄþù†Å2Ï’É LXÌó\L¶7*‘q¢¤ôêæ×›õƒU»uL‰Ìâ$éˆS`’ÇZ
-iˆ2ss:`ŒEŸÌ¾l–å‚ÄœO9çQÑ~¦é}Ý™ýsQµgr³˜%p%©à1—Bß³Cš…XWØôXÈæ¢2E]ÖëYéX8å€k¢gò: =Ö"àë4VY®‡LÌ7e;ÉLD=4sP³šò,Z™EW>›ê•€ÍSÛT¦›òÈ€q¥LGŸöˆfžËæÐjøÍt¦xuC›Z nö4~iÕ’†´qÛ<;4óuWl‰ú
-j‚«žb]öÄ y´Æ±*æŠ'ÊXsu4ÂÂ0Ci“'rÈÝ*ÄLï‡BµÐEQÓ¨óˆµé^šýgÂìE µ
-‚>.å6!¤U¨Øœ'7ždg¹MÊ̲oS–L¡ªKô‰[ö^Åsmí¿èUø=R¹ EX°7ož§Þ¼ÃíhÞø%óÆQ`Þ]gÞHÍW¬yã
-ã$Zq‹ Ù[d2ƒPðñhÿ‹èîL5@T
-È‹ŠiàÚ58|òe‚`žKÂ
-ÆVÚ£,àíýVL~l@¦I(–§< I[¹ôÀµ@š<cÀ—1C¯ ­á²èu* ?r“r»«ÌÖÔ¶´€š¾î FùÙí«<µÔrê÷û® *ÙXçLNfÇW ï3¨¡€›~ã-FBMêàÅH¸#z#jv ¸ÃëH”
-›/‡¢Â§‘„» aö]
-#çQ‰ýØþεⰂ
-Öùu‡ßµ¦Zao¥úzò4Û30š$÷2Ýå R
-.9üÖäÝyPãŸã®¨GÎÁÂ\§Þû‹%UL3%s(€S9¬—{Ó¶cñRaR \ìí¯Ø·
-ªYÑ£¥íMúŠ[0ÂÉ3÷'@2;,Û±FȺ°ÌÜ ,ï;‚a¤A[Ëz.4 ð7ÍÞö8*èÒ=ÆH,»cjB)Ý)Î*‚c\|´
-pÑItKð£êeÞKpWcJl˜Æ"bpߢ?&¨æÞÕàá9Ü1d bVoãx'¹“—j7œ[^QqÊ`±\º‡,‡íÄ€%gHô2,CîeS¢Â2tuØS2smL훢W_Rfì;"÷K}ÚFyÛºD0$æH¸úöƒD2_ ¬_ÞP”P|˜’y3¡ø07Ì4äó?­Ðb þ‚5³·Ù»1üCQ ß
-õnÌäÿ$€ó–ëw4‘HÉŽþûÎ=àH‹ç±/O <ȹ4w™™žãlÛ Àã[L8£¯{Ѷ±‡«Æ÷Öˆ½5~7€p•"hzMš`7«[ú ¶ˆ$‰ñ0°'ukJd•Œ$2¥¶ÛÐ2± óuaü¯
-Õó.˜ƒüíÀ"Ç~וIŒ?ÆŽôö¬ï¾û7ßãâ*¡ŽãúœLä©g
-ÅM“SÎû‡ÏYÿÞ£éendstream
+xÚ­]oÛ8ò=¿B÷t
+P«üE¢OÙ6ífq›î¦9ÜÃî>(¶’•¥Ô’/ ÷ßo†CÊ´¥¸-ZˆÈáÌp8ΗyÂà'¹Î´6)¬ÊrÆód¹>aɬ½;ág1ÖO×'/ßÊ"±™ÕB'×·/“1cxr½ú#Õ™ÈNK_¿¿|{ñîßWg§…J¯/Þ_ž.DÎÒ·ÿ:§Ñ»«³_=»:]p“óôõÏg¿]Ÿ_Ñ’ö<~º¸|CKŸg˜^¿=¿:¿|}~ú×õ/'ç×ãYâór&ñ ŸNþø‹%+8ö/',“ÖäÉ#LXÆ­ÉúDå2Ë•”Òœ|8ù}d­:Ò9ý©Üd¹P4)3ÅÄ3ZæYÁ9 ŠgÌÚQÉ‚Ï)Ù#¡Žû¡ê~¨—ý¢n‡jóß²9<7—*ÓÆê$b>‘`DšŠ "¸´™.ؾ —åº:]HfÒ¨6~<J†ó"}¬›†Vn<vÓÝÝU+W@÷„’œ™Û”+ Hyä¸RMËÜÓ¬ëv;T=˜‘22½¾÷»¯ªÛrÛ Hž,$?EŠà™Ísá(ëÞ› bÉ#d]~®×Û5M@ˆ­‡
+aè»*Ÿ<äO–3Ť`ž Pîy_ÜÒJ_ 4:ú²ômý<V,ÎI±8ºñRb³CC
+®ÆªCK(Lút*XZùI½~hªuÖ¿ò€–¾ÞAÂÈN®^i› cM+÷ûîKÂEh ú_ìÜß÷YÓ¾ ˆ<×Çý`Ü,¼é1Øpq1„1xª§œó´{èà1<Íø0]ØÄIº>Ã7¤b¸G¦¸H‡ûº½ë |SÁ˜ÀÕ§mÙÀ›T©ï«6 W„| —÷]×WžEIŸÖyK\Ýar÷Øöi‹~Ðn7§Ü¤Ý:¢i/ß zKÇ ΋¢/qïAPiyZ•ÓpL«[XA€$¹q¥k«
+úøXyéÊvf0N¥‹ÊÕ‚ü¼‚gÈóBíûùÕ¦êûoÉ I$‚+õ5ö-2{ÔºÃEÌqjÝèÖŠÝ®.‚•Ãò~ֹȤ”æÇ 8rü‚„œCL0ÞÒYæô"y‘Rðp-Æ{Y¤.z{czÂ~5š<Nû‡jY— MË'÷°1),xz^‚bÜØÒ¢,¢!Zz'¸P5Árµßªìûú®­¼0~£Дí²ÊÈV
+IÍ;©\ví¢­îJç}á\=ò'}‡^Á%ÍKÞ”} ëZB€çWoôÐõõP‡§€Òû
+·4÷A'Âù
+'‡ë$¨?ˆ3ßð<7[äÇ Ú¨* ³õ+ØäypD› ȱè6žñÉä ª#.¦5,²¯ÛÃW•”Æ6O¸Âns=ZÜÜyçtµlGüEL0íÙNù¢8ª¥w# Lxj"“É3Ë@ñ“æñˆõ%I&ܼúÑŠ„ÕÞŠ@ eSš
+Û5áj·òxPzl›UŒWn6e{Ý¡ 9QN¾C0p.åºF¨Ú(yè65Üæ…ö \¯{*ÒmOÏ
+i\
+Œƒ]6_y~ä¦C2ØiØV©GŠrEüºJÄwž™Ïè·Â4ê‘Ÿ!3ô¥É‹¹çK!*–Ò=EÄŠí ´tÏ+ÜÔÕ*µ_rY<’‡2Çáw>ÉZîI;Pû'cânë³/Ùô?®SæçñŠ•cð j XfT˜ŠkÂA6/zq$œyÛt SPo¾Õ½"%ÑÔkF‡t»8ØlÒí¸Öy^#2áŸ=Í¢[A¯(0ÎÔ} uú1ÁL?mkë9Z# Ä»L;|â ÃG%Ý0污L«Bí†böÏf·s?»€ËPÁÍQrêãðwnôLŸŽÑoΟâ䦂ÚŇ& —çxŒÍ7ð¸4™ÁfpèàÍ6éУ ø«€æßÝ."ŽÓ$V€ôl—N‚[UF™&àÈð¸€nP¬Ä>ߢ“Zî·è›¶è6Ðí§i ²îƶÌ\¯ ™ZÅär œDIsÐu¢‚æÏZ¼~e‹¯èË BÊ\”Þ«Î=0¨Ð§—A®ˆ¿%aCóËñÖc/vèsÑvŸç~¬‘v?TLlYÀ•A*½c?i=Îq8EQVBLMS§úî¾sŠŠ:Ð`}ô–¸Û±cirÜQp©Æßd·}àï~3x¶¼Í3ü}Fl¬#¿ûwü]e§1F<£ÕŠTL¼PxŽb’1åpÿP$ˆÑÿ-w&yendstream
endobj
1788 0 obj <<
/Type /Page
/Contents 1789 0 R
/Resources 1787 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1772 0 R
+/Parent 1781 0 R
+/Annots [ 1793 0 R 1794 0 R ]
+>> endobj
+1793 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [213.6732 139.8244 286.8984 151.884]
+/Subtype /Link
+/A << /S /GoTo /D (rrset_ordering) >>
+>> endobj
+1794 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [209.702 61.5153 283.4678 73.5749]
+/Subtype /Link
+/A << /S /GoTo /D (topology) >>
>> endobj
1790 0 obj <<
-/D [1788 0 R /XYZ 85.0394 794.5015 null]
+/D [1788 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-514 0 obj <<
-/D [1788 0 R /XYZ 85.0394 769.5949 null]
+518 0 obj <<
+/D [1788 0 R /XYZ 56.6929 603.6807 null]
>> endobj
1791 0 obj <<
-/D [1788 0 R /XYZ 85.0394 751.9325 null]
+/D [1788 0 R /XYZ 56.6929 579.008 null]
>> endobj
-518 0 obj <<
-/D [1788 0 R /XYZ 85.0394 369.5823 null]
+522 0 obj <<
+/D [1788 0 R /XYZ 56.6929 208.0964 null]
>> endobj
1792 0 obj <<
-/D [1788 0 R /XYZ 85.0394 344.1885 null]
+/D [1788 0 R /XYZ 56.6929 185.8944 null]
>> endobj
1787 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F62 1379 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F60 1366 0 R /F41 1238 0 R /F61 1369 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1795 0 obj <<
-/Length 2949
+1797 0 obj <<
+/Length 2468
/Filter /FlateDecode
>>
stream
-xÚÅ]sÜ6îÝ¿bßNžÉ*â—DMžÒÄiÝiÖñÍ=´}we[Ó]É‘´q2þ÷PKiµ¶ï’››Ì„ ‚
-/òñä·?’Å®ýãI«ÜšÅ|$±Ès¹Øžh£b£•ò3›“'¿ƒU·uN~ð«Äˆg+dœçFÏ›€2DœJÒÅ<-Ú—
-P€Êð•úæ¾Ù4·_/$©5'<bsßWM 6™Ù¨êh¬›ž'¶÷›r[Ö}¹æ Æd+(§ÓiK›ÛE¨¬¯Ó?ZšÉS0€½ uŽMJd©Þ›”˜ñ©ù'p†÷"…G$‰Ó‡{Ô]Óö›ªëéëC_ôNzzºð:d
-ªeŠDAé¨=6*»û¦îÜŒMÒJAŸo/>Ð÷Ç]Ù~!p[|¡Ål£ãa¶¹¡ÉínÓW ÇÑÍΫÑìªq㺣¿'&¹¼ì`„uÓ´Ûª¾¥Õâ?¡À+O®Ü•Èg®ý1eÕZ±<`±.¶ ueû©l ~¨6^–ŠÍæ }ѱý®­é»'2&ú~gWWuäN'Я5m¬NET¯Ë¾Ä›ƒ:i–ïìŒ.Fþïs½CzI\—ôþÍŽÍ ž¾1ŠßbÛ˦e“1I,…ð¸Ý`\Ž<ð=y†Rè8Ms³H Öšghà´ØÞ²sº BÀ€¿ 7x'»gã.²ó¡\±füûÐ<YðË H <â  XOqr@ÅV$ó”­ZmªARÞ`7dM¸Ú¬¯»kv›uˆW´mQß:t
-TŠžÖ«ÎMeÑ®£g…{ê/ ¬×ÌjW2=òÓ‚ù
-0[RCsOÀ”»!¡M¤Y=ª1¡ÁŽò¡ZyÜu¥=âv×yú}WnnÈjtÔ`xäøЗ«LºœÊǨü|¿©VU?ÃNªc ¨{Eƒ±P­xP é¯~¡ÅeHòð…
-%nf²ýÉG݈°”à¿“žâSLæIl¥Uc&¹ Uò0{']5uIÊÂ<'ú‡†€’*VŒ™if(DDt -E€äWLòpW­˜´«¦¸æd2:ÿ…¬H ™¸žä|ûh TA඙·¹‘½òñy‚òúÍOP¹ƒ»ŒP’—á‡)%¶2ÌMA1œZ`Õ$&VJËo4˜â2$94LœfzðñÀN7W™ý†<zŠOñ¨Ó8—i:fò˜EêXe&gySâvCcéœBÎù!ÀÎÏXP:+„Ìæp\Ý•«?I»ÀtõU’O|Tq[Tµo,ôû~CPvc®¶7Bšp=€p‡ï
-•J„ò6FE¿† øÃìÀ0á« -LQ#×QwÆFÒœ»‰¿®2™·I€‚‹¹oîé"85yC:Ä%NSL6&ëR ã#¢™êÃu±ÕLBŠ—ÏŒ9í¥eò©´Ìèï+–fÖ5Í0cùpºæÓ}µ4ƒb¦ Ò²¡õ9á¾>caæ,ÌeLß2:ÄzpˆUKີ²±o¼`ì°†{ùN‹ñŸCï¹ÿ»bš$Ñ_Ž) µ þ>`ÄÚË—„rþŽF'¸ñ 쌒üÞ«Î.º©ZæMÅ
+xÚÅZ_oä6ϧ˜GØQ¬¶Œ}J÷’mŠ6Ûfs¸‡^œ'1ê±SÛ“ìbÑï~¤(yd' ºA Š¢(ê'Š¢äá‹þøÂhËL-ÒL1s½XmŽâÅ´}<âNfé…–¡Ô×G'ç2]d,KD²¸¾ tÃ×ëߣ?žþz}vu¼:Žv¼ÔIýpqù/âdT|øty~ññßW§Ç©Š®/>]ûêìüìêìòÃÙñ’Í¡¿pt8¿øùŒ¨W§¿ürzuüÇõOGg×Ã\ÂùòXâDþ:úýx±†iÿt3™½x‚JÌx–‰ÅæHiÉ´’Òsª£ÏG¿
+ƒVÛu?- ÓF¤3
+1 ÎX"…´
+~@Ê‘Í‘JŒÍA‹QØÙƒÂ÷¹º)Šš(kO±ÆÝ’¨¨w_àx|Ñ„>ïýކꪩ{Î _Wn0Œ~NÊ..à€"qq€gÕos€sØÆå¦ìËÇ‚ª»HÂå¼'¶³œ*ƒž>Ð0ÆÖ!@pÛ }*;h5 s°=ž92-¾È"'üÐÔã z,7Íã„3tº)îʺ.ë;ªZ
+ÛC¥te,£‹©L°*XµÎ%lpÃÂn´±ò'g…æ°"B*TXïTÏ,`WÀŠ[èL¸4Æ!k¢žÌÍ{8õ`š¨£Ø TîeiŒ½CÖ°TAfó|Ä3&Àk‰@©óýÁÌk\†*g‚‡ '
+àè6ÀÀh`(<ËŒéÔ¨ÙÀ¾™¸Ø™Àöìºò®FGCnNÅf™ÛÐi™õšdi«$ÓŽÚj*Ÿîbh¢¼h$´)ër³ÝÌY:ŸçýèÍḇ@æ•q˜9+.pÕŒq› ˆÛ¦ªš'«QšRî|óP°Ë•
+~HÝÙW ¤Ü¥¸kêüÆËÝ÷ùcis0«Ñ½Ã)HÒa”»Ï«#ÒžŽPNŽDàìŽÄÃI¦\R˜è¾}%îa*ºrSVyKLûh¡½qzd<ÔèÂ4OÞÉ{Ä’^{ÝŽÿ‚’DŠe싳â*Èõ±Ýù †+ ê2›™é¹ä/ó8"éSÄ!C‘å6½&Ýp¤{j”ÙNÇZäÙVÃü5MÂi`+MÃjl¨Üݼ ¦³dÅLlpɧ0rX{#hí•S1q³"Ø%öPqž
+RarfÕMr0`ÑHÂß2€C:V¼,Åã5„ÆéÝWŒ¦ãžLKŸê9›0kz;ö±-ÌãÙ|.9˜Ï%š¥Zª—²¦ij4MåQ£P9;àd&Ö+Ãâ8QV?⧈¢<…WW]áøÔ® {éTzÂÅÔ*ù=ä%paÝV}9'ç-׉쮬ƒD¿mÝÊv$ô5ÅŠ×Ý“];lsqÉ~ÔAÆSGáí¶"žÝ»‰½cã×™»m8ž‹w:r6.Ú˜’è]<œš>ãTU¾²V+ VÛa•r€µ÷’jlDŸy‚”œA°ñobm +°lüäuÌt*ö»hȇ¢Ý”v³‚!»ùç}i÷HØyB9X9à@Ç ôÛ™ƒv
endobj
-1794 0 obj <<
+1796 0 obj <<
/Type /Page
-/Contents 1795 0 R
-/Resources 1793 0 R
+/Contents 1797 0 R
+/Resources 1795 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1772 0 R
-/Annots [ 1798 0 R 1799 0 R ]
->> endobj
-1798 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [213.6732 604.364 286.8984 616.4237]
-/Subtype /Link
-/A << /S /GoTo /D (rrset_ordering) >>
+/Parent 1781 0 R
+/Annots [ 1799 0 R ]
>> endobj
1799 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [209.702 525.4389 283.4678 537.4985]
+/Rect [353.6787 61.5153 427.332 73.5749]
/Subtype /Link
-/A << /S /GoTo /D (topology) >>
+/A << /S /GoTo /D (the_sortlist_statement) >>
>> endobj
-1796 0 obj <<
-/D [1794 0 R /XYZ 56.6929 794.5015 null]
+1798 0 obj <<
+/D [1796 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-522 0 obj <<
-/D [1794 0 R /XYZ 56.6929 674.157 null]
+526 0 obj <<
+/D [1796 0 R /XYZ 85.0394 134.2704 null]
>> endobj
-1797 0 obj <<
-/D [1794 0 R /XYZ 56.6929 651.0501 null]
+1324 0 obj <<
+/D [1796 0 R /XYZ 85.0394 105.3909 null]
>> endobj
-1793 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F63 1382 0 R /F21 950 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+1795 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1802 0 obj <<
-/Length 2649
+/Length 2962
/Filter /FlateDecode
>>
stream
-xÚÅ]sÛ¸ñÝ¿B“'¹sBðI¹''g§¾¹sZÇN'—Z¢mÎQ¢"Êqt™þ÷îb¤¨Ø©¯ÓñØÁÅbw±ß°˜pø“Ì0®¬ž¤V3Ã…™Ì—G|r ßÞ 3 @³êõÕÑË3•N,³‰L&W7®Œñ,“«Å‡é›¿žüíêôòx& Ÿ&ìxf>}}~ñÍXz¼ywqvþö—'Ç©ž^¿» éËÓ³ÓËÓ‹7§Ç3‘ë¥Çp`ÁÙù/§4z{yòë¯'—ǯ~>:½jy‰ù\!#ŸŽ>|ä“°ýógÊffò
-¾Çƒ¯šwvøÍû¥e¾£‰kæ¾)nî+šs¶ OÐÅß8—·÷ñ~Þß™©§©ð~Ðù\|w€ô‘#YWùÜQ­Pí¶ÕÚc€)¯ÒN9Ñ߀®¢Gß?¡g“~D»ÙÀ Ìjþˆä g&•ÖÃ6Û|[,ÉmÁ–ëb³,±!ÿù¶töŽOx¶T¶r ðëö@ÆDq]°LBÌ뉄Ü-w‘6À[O<× IðéûÂÃçUSÓh;.·,…®ME°Ã}¡)Í8L döÃ0ÉPF³$50$&9×íéÛævBƒË(=à³Þeý͇X‘ˆ÷à%éP\zE6¨†i™0¥LÖ£h/Mi¡!dRÂè<•%´‰îû¶“Õ˜ÜÌÅR/ÎVQcÂ…DP
-À2IÓ§$l’Ù,ËÆÓµY‹q£$&{ÄI g­»Ý‘¯‹ùˆZHÉ47ÁîJš ù#ÔB?MIXóÊû[¥åi}˜WyÓÐFFÅ% ’_á7j¡zÓ’oàOC®”¶Ï—XÀ8‹Q:‰õˆ.ènc—®a´‘˜Ïe‰‘$™ÛݺáÜšHdГ
-W
-Ì3ƒeáK¹ú{åçÝ®BóªÜ–.\(>,x%õßzð¡¢ÚL.óíün¬·ÔÆKt*¤ì]LíŸG úG û˜Ë‰”êyzÚ©~×ñþ-‘X¦R© v%Xˆ¸¦Ý«mO|›AIà Ò¨mÃý€â)㢨tVûžŸï˜¿z¼™7_¢~^HQ{ïsS„:¿ §+rÜè„”†áè¶ü˜§„¿ ùh/r£í¿Š¬Ù÷ý„}ûr!dóÓÝÌóû¦=·]Üýê«I]8qtr°Ë—´m</$¢“ïéâµB®,º´²w:ÒJPR·¡GØ´êºv÷)Èš'"§GsƒÔ:„Ž#¡s yrƸƒ<9¯ò]Óov¼ßr®ÇuÚÎQcz_ŒOwô±‡?àÈEV¯=·Ÿ2k ¶©ŸÜ’LÐöíµÀÁz]䎖®¾Ø0×6àá\!(áÓóÚ<.lR•EãkH2®eß²_ïzUÍ¡ÇX=_úOOi‚›ZC-&Å“î1TìÖèƒ5@¦¨•ñôV BD{_œp–y±«mmL ¾ŠL¸¾µ0‚tê"R HE!3JÅxîKL¯à¯œž8µ@ÊR°=êíM>MãÚZE0ÑØqÚIÀM¼<_ÊÉO5ð3‰X
-xgbÇR"{MÃ[`À%„.¬78^-ðN
-¼žÝ~ÒfSð„pèd?âù‰¶o,èÌw$mú ¼¹ãI2v—À[;ö?XtÞDcß©ïM¢†aHð”aÚßI¦éP²íbx¨ˆôÿ
+xÚÅZÝsÛ6÷_¡ÉuS¡øÑ<¹©Ýs'uîÝÍܤ}`$:æ”"U‘ŠãÞÜÿ~ ,À‰²“¸77† ¸Xì.v» ™Í(üÇfJm¹+‰¢LÍV›3:û
+3³Äj®gËÛ¯”Ð4e³åú]¢ 'sà@“Wo®/¯~üÇÍùÜÈdyõæz¾àŠ&—W¯/pôãÍùÏ?ŸßÌ,U,yõ×ó¿-/nð“<¾¿ºþg,>N0½¹¸¼¸¹¸~u1ÿuùÓÙŲÓe¨/£Â)òûÙ»_él jÿtF‰°©šÝà %ÌZ>ÛœI%ˆ’BÄ™òìíÙß;†ƒ¯~é¤ý%\h>a@Χ ¨,Ñ‚ oÀóÊé
+»2¡þ<Å;ŽO(.¨$šB`)þbJsK êìXóz7gi¢þ='ÜÅé
+DÂÌ»yþÝhQKü3'"†©ôsbWH ¥æ ݪ(-"2”
+vu«z³-JÇT@T»º`“»ä%¤Û«
+ó~W‰¹*ÚÂ' 1ÐÓ%
+‘#Ì°g=ê]9dX™
+în weF>Þ»*©ˆ2Aí²Þ¡•óOÙf[b"ÿöRãÒ&TRbì]qíBSšüÛŸy,AF'JSGuuOßâøÑ9>°
+s£wuÓ’ ~óƒ½_NyÙ€
+Ãùe¨’Æ‚axüçå¤PoðÔZ„žàÙZ'«lßä8̪` 7Ûºj|e¥¯¬ü7ÔÑ·ÄCˆ‚IïóŽ;É ‘§ö.kqæ.ûXõUåèt¸åà,,Vn‡&œPâEKvPe:Õ‚>šý­“Ö#CÃ’¶ŽerJ(ãf|
+pya¿ EÄ)¢»håVBgŽåQÄÚ. :ñA©g YZ‰Wl×Ï
+\7gz–*w›¶¼‹Ùä£HaÌxLØ×o–S·³’*ð,9Ɔ˜%7
+#¡îhj‹´Ø‹—þÐTô) Ú@§Þâ}JFL„Ñ×oß^¼Â1èX¬³Ø6«ä6+ÊÐ7W?&Ñ×Ác–®í¿qrõŠÅÐvö­C5 Ò{}W˜Åó©Cýœ…‰ ®E+ñ·¸=*ù:ã ®¢±M0†°hâʬš‹œB)&±%£Ôê4JuTÞPÙ§Eå5Â*Æ
+×°Bø´±á÷‰é$¹¬d4{ŽD§Ñ(E3ŸÆ"0‘µZ<ºwGt¼ù‰ÀÊÆèÑî¡nR:"»¦jC ¦1Ä`pW¬îFkè⾇Ô}2ѱ /ªl÷€3Î)·uSøËây,t?Ðú\ˆÞš0)‡c_Ú¤!OÂï R•Üçùo8å638tî
endobj
1801 0 obj <<
/Type /Page
/Contents 1802 0 R
/Resources 1800 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1772 0 R
-/Annots [ 1804 0 R ]
->> endobj
-1804 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [353.6787 530.3947 427.332 542.4544]
-/Subtype /Link
-/A << /S /GoTo /D (the_sortlist_statement) >>
+/Parent 1781 0 R
>> endobj
1803 0 obj <<
-/D [1801 0 R /XYZ 85.0394 794.5015 null]
+/D [1801 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-526 0 obj <<
-/D [1801 0 R /XYZ 85.0394 600.9849 null]
->> endobj
-1319 0 obj <<
-/D [1801 0 R /XYZ 85.0394 573.3935 null]
+1804 0 obj <<
+/D [1801 0 R /XYZ 56.6929 691.0694 null]
>> endobj
1805 0 obj <<
-/D [1801 0 R /XYZ 85.0394 447.7048 null]
+/D [1801 0 R /XYZ 56.6929 679.1143 null]
+>> endobj
+530 0 obj <<
+/D [1801 0 R /XYZ 56.6929 271.143 null]
>> endobj
1806 0 obj <<
-/D [1801 0 R /XYZ 85.0394 435.7497 null]
+/D [1801 0 R /XYZ 56.6929 246.0455 null]
>> endobj
1800 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F53 1328 0 R /F62 1379 0 R /F63 1382 0 R >>
-/XObject << /Im2 1368 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F53 1333 0 R /F41 1238 0 R /F60 1366 0 R /F61 1369 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1809 0 obj <<
-/Length 3271
+/Length 3361
/Filter /FlateDecode
>>
stream
-xÚ½]sÛ6òÝ¿BòLÉà“ ÝÄɹ×:w¶ïfnÚ>Ðms"‘ŠHÙqý-° ~‰’{ÍÌÅ3áX`‹ý¦ø‚Á_è$N¬° cU¬׋|sÆ0÷éŒN¢!Öwgï>J³°±MD²¸{ì•Æ,Mùânõë2‰E|;°åûÏׯ>ýëæâܨåÝÕçëóHh¶üxõó%BŸn.~ùåâæ<â©æË÷»øÇÝå N%´ÇW×pÄâãȦ7—/o.¯ß_žÿ~÷ÓÙå]w–áy9“î _Ï~ý-VpìŸÎX,mª/ðÂbn­XlΔ–±VR†‘õÙíÙ?» ³~é¬ü8‹…LÄŒ
-”M²tÉp|U6Ùýº ]ÝnNô|IX¿1ÍîžJbž ›‰,e
-0äàsýùŽ†çŽÓ Bjq[­…ÇÝót §ÚlŠjU¬b Æ.=ð‡]_Ù~ÝâK ¯†ô¹T±MAŸ~ÂØ }Áb%¤"w*ÎpÏMYíÛ¢AÒn «V´‡Mö­Üì7øòœ­÷Å)vŒ‰…•žÎó“ÄŠñ;òØ­[DìltŒ§`8 çç ¬p1j™­›!P‘Ö‹µ^ûKÓA§
-‘ô^(’ÂGDÔY´I'*Ó'8)EKxÖ•#šêåKQ|Á!GÌ è”Í R\./p4$&)EwXý†âG7Ù+y¶o3óÔ¯û‚&Œ¶´‚ÜÖ~Wáû-T, ªtõÈÅÕÏ?àÚûw…ut9Ž)ÓåºnZY”hƒ£8kÁ‡oŠU ÚŒ377¿V»“7{wa7£Ñë[|úˆâ&ýñÝÐü{wpH1ñò(ÍCšˆàÀ PT©×{ï¤gr”-J3‡´à¸q'J½eg¬v°¼•U´«ë¶9°1Æ`¥³±S¤;¬Ú#ƒ<Ý*cÆÄ)r¤>#˲}‘¢SJÛHÞ5úRKFÕà$Q-B˜q‘Ý—”Fà,™iŠž®Ç*šv‚@ÆkGTÓ ÕQîÉ…Š¥êÕ4ËóbÛbûvõ‘Žä•Ä©6)1j4:-D8Pœ”ÇÚBèSÆU„°ðOí2õ=ˆt¾h­…½´±üø^¸ŽÁ^âŠéVQà|
-ɇZÓÙD_(zL*J§1œÄb)8†N +ðòŠµ!ú|%Ê(˃nF
-QÁ@ɨ8\™4Ö‘^|]ð˜)k%" `Ö^~àÝÕF,>Ôp¢ÅðP´q4ÜÙ*‡ õ–’ qGj¸v(¯e”x³]P¸b(w>©=¸m•ØX¤6] åù}W$Aö‰e`Ù}“æû(6NS‹3–„+{Ú™I£!Û7Z-–ÏðÊÇÈ™eûyïoŽMÈ
-¹Y :¶€5ÃÇè6µp-€1·Û"/]yâ#Ÿ é€1½oƒAïÛL—°\ã-€äbßî»Â׸£¨¥«¬a^eí –†ùlßÖ¨a°.Ž ‹Sáj³aèÉ!P»è öcQ;J áÕÅCÿÄíŒN‹‘_†çêµÊ6eŽ/û-T÷-táu*z:•Â ™@A •W*œÜ=’yÝ .¡Ã† /áp_Ìàrª‹€‹)7Rª˜'zÄ̤788Ø‹0©SæPñmKa ‚‚°É¨±Á(†9¹ßõÖ!£ÕXÂPÄÍÓ‰žÜ¨×ºµË] ©›¡Jº§úu]="t_<Ô÷îy}E£,B4=U:OÑ7Ã'NwÚå’ËD.¯pÖ—G¿h.ÕC¦WJmBZu¨ñRê@fï kBÑüA`’¿S`¾«|ÓÀ¡ßá;è·§Šò÷p/i· !„NÌ„UΦ|Áä5Öc&´Ó
- ö{,Ÿ]ÙÃÎ1YC79uè¦ÆLxWOƒ ø;ïn[§ZÒa¬¯ðàÅW>D¹oL‹ïñÂV¯E¶k¨1•£´ÉXu}!IX_ƒ÷ýW6î»"BŒõ‡ÊÊe‘Ôá]‡GP×H¸Ê´²DGáýyß8ÔITüàn¡¡Á{ÔÀE¾ßáxÕN‰†í€’ó ¡Ó4£ ÔQX—›²ëKtÍâAK6_×ùêJ|)^\ð¨Œ42ÚâG€é÷C¶’ç$²^…|ÞUŸ [fTk¬‹¬ii¬) 
-à-a\œÎã†XÇó¸+\#YtTÕ«â°8•hJ#N³ÐaÍð0v72f’Ù>‰{p‚à!ãCÁÙÀþþùÅE5>ïimñ r¥Ê›Œzgë¯Ñ7`äë>«Ú°7%z€à$AI\ÂcÅS;õ¹£Þhé
-uXS
->uF´qýZqšk†‘Ñ™!
-XúcNz=rèÆ%.Oõš¾\tº°×%×|Ÿ¦õ~©÷L"¤;~¬Øbù.—ÿäÑ7”P7zÂNÅH— —ròå´ ŸËHû|§9DÖÿ§†ÿ%‰w*6§aÄ÷[&’X3ýF±9Ä:¡akªaíë¶8ôQPq)%NsÐaÍ°0:­ÔPâ@¶?â¡×-‹ßBá±Ý•Ï¨
-ðróäá;«8äyEÈù'«Ñ?Á;}}ˆ® Ê)·RË/Qd\jÚui•’}‡ZCõîX‡ú˜€[V< QJ©æ¾ySWa PíB€gJˆ+GŒS;œké DD¬‚ay(`l³]¶)0Õæ¡Õ
+xÚ½]sã¶ñÝ¿Bo•gB>Iâѹó¥N_j;é$y %ÈbO"u"iŸó뻋(~É×ifz7c
+þ½»¢þñ’gK»ª\»®a/hB³µ ̺ڵMQ•(z8Äyl´î0‡R­l]ÇÕ°˜i°š”§±âJΛ¢GŠúX$I>gŠ ‰ï‹2:VeD™ K.²·IwX3´Z”*Fñ!ñ’ÐrQìÛ=̲l÷öH¨JlIDUCµ=>ÛcMSÍ6o¨WÔ4M"ÿÒÔYÓì¦ò{æC,[7#„†Ø2ªÙˆjE(Ö©4*–
+uÐ×l¾ZÙCc×p?%gá¸l¹¶›¼Ý54(œèß}TÙÀê“8Ó©)ãF‚P"Õ±IÓÄ#L '\›$•qÆxòß\j™9•Í_j†:Ž'~~/ZÇ`/ߥã­¢À]”0 !w¿“ ˆë8*]$ ƒ8™ÍmO:£r‹µÊ‹ãÓe”ðåüËë‰h`S :\$<‰•LÉ.¾,xÌ”1’°z}wÚ“àÝÍ^,>Tp¦EÿXa稿µ;WÂúÚÕpÄŒBÆJ+²–[gh)Øñþ°³{ Þkí%µ>D@ÏL®L
+þ1‘‹¾Hÿœ–d[ÑÉÿ9ŠÀ]à$^‘ŽÏ»3ˆi
+:ì7½Y‡…"¬‹§è9ßë¢yœû‡ÑDÿ©ŽÓ,‹>©g X3| <°›&F¹?ØUñcc’HïSÒôäÝ
+è,[>ÙÒs2:bDt-5~gr[Ì{fhׯe¾/V4hkØÀ/Ä
+NŒF~Á Žs îÅÙ
+L¥Ôœ6¯`×ãKÑmØ ·0K©ÝVí±ÆÌ%Ó>s:§Ì%p9§­Ï&;å7}ï­ÒXð4óáZ²™ü†«Ø2 Øï©x.ÐX±¾É¤^ÚC75dÂy+hSZÀß ã¶hZú3lŸõÉ( `‡ÖzÊywGaÀmõjócM—î?—&ßEÍ$¤/>ózèâNnY,¤q§tXˆ¡]¨(1•$gæ؇‰šÚ¶D«,ÈQ8—.$˜jãñ+j«Ò/CíR¯ájàbÕ ^6c¢a; „Iá&3FžÓ¹wž Èƒ|_µ¥Ï~)ÁgËÕ®Z}¦nýÙ¾\±<+#²•¾9q -¹·•³YÀÈÂŒ„lM…º‘ìÖ!«W# ¤Î}ű³yÝxXm¡ p†{¸ ¤ku¿^1¡„È–÷Ÿ®ròù4&¾.ù2ì*
+’©3(ÎÁ»§éÈ¢|¼Ùç5hüqçK ·mÂ
+zõ[º²;Áí“ÑBL?[š*Hz7úíÒ´u>™ë°‚ý•ŽÊjm§%j’Ä2“ÉÛ,tX3< ü dÁ2QfÈ„Kä6(r2Þw¼—ÑAßéˆ_ZTètí—Û¯2•î:
+ÕófÔÇ:oFÖØŒ‚c±¥,‰Á­§oóÑaÍ028³áPß ù8Y’ÐN ¾Ï]¶•s=
+
+1dádZFQN¤@ùÅ3Y î>Л0þ¹"c•zè Œvù2ŽÛÚy&èyíCÏgÏ>»RËÏÖSëå\jü*Š‰•’!dCù%œb`i߶%ÁÕ%!JC­#ÕŒ¸‡…î½,ö/x¦ô0ƒ¸Ab\QâÄ5F:(É«p­\/`òc¾·”kÃÄ>¥ŽÇÞWÏ´‰O¡9©šAÓøŠHñ&+HìAÛÇ"êÝ&u±™2PO5x.GrÙ¾˜h„.ÿÊÕ
+Â
+0y¦Þ¤Ý!M‰J5¨w¸1é€ú½ûý‰`á:ù|lSPÕãëø#ìýòágê<¶¼ç˜xdÝ͸R1^ýw7ÿ8 íЗ÷)ž–ÓW<ðtùê38\¾¬iì<[<ã×g¹Jáëè-òŸè½ë’½Ð¦XϽÁ„æ‚:Ž9˜U`!A“èÖÁ¸j›ºX[BóEþŽÓ
endobj
1808 0 obj <<
/Type /Page
/Contents 1809 0 R
/Resources 1807 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1813 0 R
-/Annots [ 1812 0 R ]
+/Parent 1781 0 R
+/Annots [ 1811 0 R ]
>> endobj
-1812 0 obj <<
+1811 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [286.8324 359.3488 335.1613 371.4085]
+/Rect [315.1789 561.778 363.5077 573.8376]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update) >>
>> endobj
1810 0 obj <<
-/D [1808 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-530 0 obj <<
-/D [1808 0 R /XYZ 56.6929 769.5949 null]
->> endobj
-1811 0 obj <<
-/D [1808 0 R /XYZ 56.6929 749.6432 null]
+/D [1808 0 R /XYZ 85.0394 794.5015 null]
>> endobj
1807 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R /F62 1379 0 R >>
-/XObject << /Im2 1368 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F60 1366 0 R /F41 1238 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1816 0 obj <<
-/Length 3972
+1814 0 obj <<
+/Length 3690
/Filter /FlateDecode
>>
stream
-xÚ¥]oã6ò=¿Âoç
-iWÛÝ•XÝÃØ÷W’q6i3Æúææêë7:[I‘ªtus7Z+ODžËÕMõëúÛ¾úùæõûë²b&×›Šõ7oß}G‚~¾ýéÝ›·ßÿòþÕufÖ7ozGà÷¯ß¼~ÿúÝ·¯¯72·æ+^á„7oÿõšZß¿õã¯Þ_ÿ~óÃÕë›x–ñy¥ÐxOW¿þ.Vû‡+‘è"·«'èˆD…Zí®ŒÕ‰5ZHsõáêßqÁѨŸºÄ?«óÄæ*[` R#Jm“®2[$©VÚ3ð©|¦ ý®e¾v»îÑ1üÁõn<´íüoÕðÎ÷º²6”ã ­J”È
- ·ªÛ¦nݦ¯ïÛº½gü1i–(•Fÿ£k]ŸœqX$ÂÂågªH”4fY¢i3Æ"†È%‰
-X¸í®n7wwpýÃf¨wî+:æ®ü¼öØÃáù7
-!|h•D uŽ½«@
-mÊ–Z$¡Ððš´ä}f­-w®Z¸,­“LÇÛzª½ fbÔ¦¹-ñ*KéJ
-,ʹ/>Ö„¹m‡Ë[ˆ[š]4UÈꊀ:k×n»#ܹ£n_Ó># ”Ï
-qg1—(¤Wgë»ÒsØhB‹dÛ/þGXœoZô¶@ßÛOÚk)xrŸ·®ïëCìy ¿7ßþ|-U±¾èÉLŠ:•§/{²1ÖeO±‚c¾ìÈÒÄØ<{y÷ˆµ°ýÔ‘I&¦»“Ó9ƒL ä X“CŸnQHa¡‘dïï;#[7>¬i¢„ €‹Zf’ìuÑýúUúÑø1-5Y¥7™c…øìy8ÙU‰É2;h@0wð¢SËÉŠa?†­±Ã~ôcÝû1³Ã&S ­[F;91ʑЉE–Zö?8M>vØäc“¶±ì³ì!­ mð`Ø{0ì{†<˜Ê’<á‹Ò8w`&±6³#†«—ô3ñ`Ç‘–Ž#mœâí6H¦pö`4ï«üB4žÎ
-†ñÎ؃)aÎ="‘óèä°9ö`83:% l2Ç„¸NO‘OËŸ| }ÖbzwɃ'À@Q
-õg£ˆ—£ßŒéÁ
-Å9‘*ͦî÷‹&“^ÏrÔ’+Xxˆ™)§ì ÄÔṫ³ô²9wZôPú£Tl/äÂh¨¸“™Ëþ@g*ɱÀù¢?c]ö‹4 EHaã6 À;
-‡&n!ÕIªtþ2kŠ‰[H!S P2>Ä’€WI.™if^Ãm¦Ï·Qüð—Jj'Ì>t¬èÝy²+ˆTÔä,4x¸_Qãý¸–ð¿pªóuIض(DQš@(4§ì-Joö2o#Ö¨8_í¤+M°âùÈ@'Μö¯ß˜‰Ñ’õP ÜçaA •N
-|· ¤¯8ùS)ä°éÔŠ>=Ô[Ì
-º† Sû•ê¸Û'””gIjÄcEpC…NãEQ`‰Ò©žz•wÝàK*xch==ø¨
-3ƺœÂD,¯MoË›póŸŽîð<úžbq|N%$ŠI‘ÈËdF¬:§aÄßRSBû®Hùå^„« +UWE,e ~ÊæODx¾…Ñøœö¸»ålƒOyz*¼’L“ó åÌíñÀ5Jÿ²ƒ ·l]wd£Á|£aþ΢€­Ÿ©qS[jGã³ ‰–œX8üÐ(‹å¹¿/½&ÙééñÚÀ¯>AL
-ÿ· ×ef‹æR¥Ñ‹þãÒšÙ¨6À¯Il¨Ãzô!Ügúä!ŒH ~"3}ØR¢¡,ÄwÝé© XWTÚï¹ÈÏÊ‘­‹Õp¢TèüË~À¦±>ê°Ó
-FQ7ó|šž-K)f¥sÜtó¸sa·’/»æƒÔLSåʆUB†Ë×ÛHÊÀ^jta³g¢vÃÛwm0UiL¤2–
-
-Hð‰òéxõ }DâY«ùÆ4Ƈdîèêu¼/Ü=ìxG€08SuäÕ¿Z|ÆX´oJFˆgkÿÝSøn a®9‚_lNŠ4†×à‰-aÜòXÓ=ÞÐpÀÇØ0 õÁ™ýóñ¡Ð#1uËzâè[βn9Zž‰ê±%3Q-**0v!–I >‹Ñë%§|MŽl<I“a÷i5[9³þƒ–é¼Û·ÌðE”`jt\ åyMM)ªåï­ zfFzfXÏôÈ'Zú´Ë7‚ÿ³á»+ÚbËŒu.§Â0RW±`L£dýöJ‘ÀªÑËÊŸå±k#Å•y#`Äcˆ‚ƒè©|Ìcì†ÚŽæ÷žQºíŽÈlry‹æ—-¡Ö»}çß<òRéØhÁ!©™C:„`&z)€ð6/Ô¸ž³ô6~,¦õRø'VaËÿûãìÓ—ëiiüRv¹¬,R,êe($<+æ”ǯ¸ÏIÿÚ!Vendstream
+xÚ¥]oã6ò=¿Â°Vù!‰p8`»Í¶{¸îö’ô€CÛÅbbÝÊ’×’’MýÍp†´dËɇ VäpL‡óMÊ…€r‘¤Qš«|aò8J„Lëí…X<ÀØ’qVi5Æúþöâ»÷Ú,ò(OUº¸½Í•E"Ëäâ¶üm™F*º„Äòݧï?üøëõÛK/o?|úx¹R‰X¾ÿðÏ+jýxýöçŸß^_®d–È廟Þþr{uMC)Ïñý‡?$§Ï™I¯¯Þ_]_}|wuùÇí?.®nÃ^Æû•BãF¾\üö‡X”°í\ˆHçY²x‚Žˆdž«Åö"Nt”ÄZ{H}qsñ¯0áhÔýt–RDJ§j†J˜É(Éóda’<JµÒŽ}{¹ÒZ,wE×Q«ßì/e¶l‡‡ î¨ÿÙ6Ôÿ]å@ö©¨ëð«¢gôº]¦æý¾xØÚ¦·¥_dýÙöü‹¢)¿k÷'¿ùõ‡_fÝôÀlØñJÊ(OåÈ/ˆ:–ê½Ý
+¸#GÜÁ‰ó(‘’«)¶@5¡™¨ud´É±žªº†yM²¼Vܸ eRÇU„]Õ<ˆ(
+wy¼¸”Y$%èï‹«¬™åÇ (‘Èu:]ÿ†4/$Z:“HR¢µ¶Ô§3ARYhl›îô±ãI?Ú®`³…Ô¬Agõ,b
+ü1pcÁ³!1:ÊsùŠGc÷‹4LÅ)¬í
+xKÑÄ1è$RÆÄ/°f¨˜8†ÂÊ,À„Œ›]WH…3ƒÀ3ò̼šÛLŸk£øá÷϶™`v¾“ˆÎž89­’x`&{¡ÁýÂ×£]üWvu:/ Ûƒ(J#†NèÉD”iÄ_ämÀzŠ“Ù:R{+žü
+*I)¶ô½cäÛØ}ÁÃ\£mÎÅfI¦a›­ØHCj º“Lƒu»ÝCœjÏ|¥Bé´õöHìWÊa»óN(;%(3Q‹øµXÜF°þ (009fÅzêU>¶=Ús­¼7†ÖÓÆEÐ*èC–JilB«)RYM2¡†'ó–—˜
+nXIÈ°]Å F×.†Ójø¶﫲¤Ì
+ÌôÙ‘}\±MÅì Ñ<Vö‰§,:Çl>Ó·jÖõPrŠºXy’§ ü c $ú*X¹o↌„I¼eŸƒK) iÁ¬¡€XÁ3óŒCT1¬‘{GÕîçònÒÄ{<Ç›ÙyRÒmŸxºÜï(k9•½DÙ;“ÂÄ.öPæåfŒu>… XNê
+8Ú­üÉìþ™C,0ÌŽS©4ØÒ \Ø‹d¬:§œŒ£8…ˆgB(Dß®(RÔ@lø« +ÕWE(e ™- n‡-ò4^4%bõÌ•Î°Ó Û;ÎöW2UpâÇ¥Wr¾¾ ¹ö\¥ÔXøÜBÐ[4¶:‚¬/å’XG}RehÍ35à× 5‰©®yHëåÄÈip¯FzñúÛŒ
+F×,7úú¦‘ă;ò“¾rg}ÑäáÁ–¡€ÄÐM…r
+—\&w,R0°)=@ê£H›}šLÝÐì6B›f[¤!}!ÐÆUs$j‹“\h¡¸ÒˆL0Ýà‰œ¡ƒ/‰º¤øxA‡fS#“
+C¼r_|¶L®;Œ@_×ÖöL]ÎñJº…3ÕòÃ=ØþJ¯é£:œm :˜ S
+$GU.Dz¹xu3Ë‚éAêâ\É#©§ÜuÃÖúÕ
+>ìŠ7R1M¥-jV éÃ,Wr#)3
+,ežß5+æØ®m¼µJC.eXb
+ ‚ÓšR” ¼ŽùÖ¹IÃC;™Âßå
+"~±ü~¨ê~åë !#s5ª±„réØ©2Œ%#52xôÀƒ¦ÂwtÔ>V¥å×(TžÆÖÆÖ»û¡&IJ*šâ®5 Nh W,ãGm™+O!ÜÇ r•Þ~û­a-"€?<¾£—œ Xz²´ëìP¶«¾Ý­\ÙqU¶–ÍÞ©(MŒ±îª¦œ¿R&¼•q$¯Mâ}‡7Fï~zûéffBÈ‘ó,dÙ.YÇG¸æóû-cÅ48î®Ø÷Ôr¬ÂaêŽ8=*èi}ön×›&ðø´qƺˆ…—Ôÿûåáyil"eêL!ÈdQœÁ$L²Çd§šŸZž’þ?ªòíendstream
endobj
-1815 0 obj <<
+1813 0 obj <<
/Type /Page
-/Contents 1816 0 R
-/Resources 1814 0 R
+/Contents 1814 0 R
+/Resources 1812 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1813 0 R
-/Annots [ 1818 0 R ]
+/Parent 1818 0 R
+/Annots [ 1816 0 R ]
>> endobj
-1818 0 obj <<
+1816 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [353.2799 369.0217 410.176 381.0814]
+/Rect [324.9335 570.1857 381.8296 582.2453]
/Subtype /Link
/A << /S /GoTo /D (zonefile_format) >>
>> endobj
+1815 0 obj <<
+/D [1813 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+534 0 obj <<
+/D [1813 0 R /XYZ 56.6929 123.8878 null]
+>> endobj
1817 0 obj <<
-/D [1815 0 R /XYZ 85.0394 794.5015 null]
+/D [1813 0 R /XYZ 56.6929 96.608 null]
>> endobj
-1814 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F11 1353 0 R >>
+1812 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1822 0 obj <<
-/Length 3338
+/Length 3028
/Filter /FlateDecode
>>
stream
-xÚ­ZÝsã¶÷_¡·Ê3'–ø"€ôɹó¥Îô|©­fÒ&y %Úâ„"u"eÇù뻋(P¢äË´sž#> ìb÷· @l’Â?6QY’Yn'ÚÊD¥LMë‹tò}ß]0O3 D³˜êÛùÅ_?
-=±‰Íx6™?F¼L’Ã&óåÏÓ,áÉ%pH§ï?ß~¼ùî_wW—ZNç7Ÿo/g\¥Ó7ÿ¸¦ÒwwWŸ>]Ý]ΘQlúþïW?̯ï¨+ó<¾½¹ý@-–>'˜Þ]¼¾»¾}}ùëüû‹ëy/K,/K
-òåâç_ÓÉÄþþ"M„5jò•4aÖòÉúB*‘()Dh©.î/þÙ3ŒzÝÐ1ýIeÅešb¥²q-³D3DZ¦‰•ÊöZælLË
-µ\7]ùø:[Uþz(2c<Q–›IÌ÷höžjdzMϘN”–l8ÿ|U€âµžÒ
-cÓwÐ`Ä´¬±#›¶Å¢©—­k•Ó‡¢{)Š¾«^–õ1h‹®¥RóHÝ$µ­‹¶ÍŸŠ–z›-5çôù£© 0al¼ Ç|WuT)[TÎd&Tb5îc‰UŠ;~ISþ\ýü’ªTÁŒª~ñ‰Â0“d&“‘è@Ô<Û¼ª¨²Í;ßÜ­òŽJ·Ÿç7ÿMåH¨åÛKf¦E˜¬öH>ìlQB?¦ô_XYç†7UU,©íÁÁáa­•pÝm±-ójöeWl_gn¹4$Þl­®4ó#’#gò›i›dØÎY³Ž©N›uO…3®óßgÛ6Ÿ¿o@𺛵åÅ‘}£w±Tž_FO5²Ž}g"‘–™áBh“m†+*×»5Uî §a}ÔŒ‹;©!뇦‡²k}“·h|)ݶb·çž/Ŧs»ˆý+ç!Àÿ9¯ÊeÞÍÈz KŒ…E¬L?cvúã¥åS
-R{ˆô^•=P àÌ&Bi1Pw]¼ÌN¡?$VÙ~{â|-¯^ò×6DŸºQ  5ÃtJˆÌôJ³CoHQÆqG@•Z9L<o0?†ƒÒk³£B]„ü·[–e›?TU:L,:)ßQy×îû}"Ì[
-P7¬SJʦ+ˆqƒq@z Ü<°Ž§ŸFöÛr)׊œÜ1õ"è_5ž¼ qiàƒ¹æ˜Uå¢ô›¸¥t¶P§!ƒ¥àŽÌ|¬1fƒí3}ˆä‹UŸÜ‡ä}Q•ã´'Óhi “ɘ8ŸFÇT§ÓèžÊi±è]%ž×¦‰ToLëiFfõ`U"xÓ`V3ýô®Ò…Ö> ÃòªÙUK*“kmšmçG—9ü‡@Ñé„ñ¬óu1’»pÀižŒŠÖ“œÈa4Þq¤*Ī²[ùY^7ciŒD§¶Ácç?ÍǼŠBÅ(…l’žAO†0‰Éà)å>Q…Â>zBÅ…
-ém–½1sO52õÀÊP·RÌMn˜eûE¸Zš{?ÄrðÃLýúÈ¡à?Á¡èó<å‡H…ptÊMšô>ëÝ'wC8ð€?%†VòUþcÕI×]ZžŠ?ízÀrNNb²à{-µ»L ¿t†Œ·›é\×w+'‹UYG´ÎÄ$atGÕ4÷÷]Æ$
-Ò N‡÷2­§Xt;Êi‰¾}µ9ü€*$V[*õÀáîeÎØ7\Ø8ñA„ûÛXȉV&À{l”àX‘¤2ÕÃÝû¿à€
-?†TÑí¶5ÕoúðùÓÕÍmÜÛnšº Ò<#T5$%‚ íâlloºr±«rwì}×~\Λq·vw¢áH EõD±H@½PÈ—K¿ê–úxtŽwßS3D5ãg÷mb*™Ã6>UZhÏÛY‡ç1"V¦¬q‡{è®Y¤ÈÃRY/ª»÷Ó2ܺÈÑ´Ú‹Fýþ™ûÃsF%g²D‰K}èˆ{“Æù!Ô<ÕÅ]Íý~ 9•õoĈxŽb…¾;È‘='(UM³yÈ¿ù[»Á²°¡^žº««›—úhäè<Tq. 0^´wÂUœïq|s—[»“VKÌï¹t (A kˆ-žUåïr–¯ÔPü^¶îGø±õ¼|ÒŽòÙDÅ“épỢIa/_È-–3„¿1#Šhú³É²€äÞDö?«èUêõ
-}þWT1•;Ò@lŒ’/A2‹xÑ›DʃIµ»¢æç' DÇ“¯Z â[«†“²4¹¹]}øp—\Ýý€o
+xÚ­Zßsã¶~÷_¡·Ê3'?LŸœ³/U¦çKmµ“išZ¢mNdR©sÜ¿¾»X€iˆ<M;~
+M•uÛã–™*ß¾æo µ›¢¥,¶Qk_ ì›Lt·(!?´?’G)CBáÀÌR'äÇhŠÏßê5ª¢ØtÖÍȦlò‡mA£Æ6 ÊÔ>4Ç÷ôuç®8úPÀÒX'Á~½§çs¹é¢— ­Ü¶‹²
+¬¸”:Òq·-#DÁEê¤(Èò7 ©ÀøªÊêÉÅ †oSÝw¼"(Å»m¹.í¦8mÌP>OQgŽ\«qž9/jŸskè%o×°ÚÎ?¶ÎXYTm½Ëi b"!Je¦s'´ð¥ˆÍy §tRf‹.Tzy¼I3û *£TCAÑ3½2Αên¦ÓºÑ¦Øà Û~®Û µ)¾võ¾µ_—95샘Ñ4ÍVú:«Ø‹‚¯GI@ÖJJ·¥v>ÑCÙñC/Þ±PbÊ%¬²}¶VÞvE( bdgŽîV?¯B¡ M©|ªrIÄãA9™ÇbH©˜ðI ”*:ÏÅLÁk¶Ç
+“2a,4hÙM¢ƒ^·eØ©/¸SØ6 7ë2 ´ì>B-S™ÌïwÅ(߆é
+˜Š2¶ÂÚj
+ Z
+d™õ-ø`·/_rãØ9ìwµ),bËÐ0Ø°êǃ4\Ú§)Zà%•)ͨ=+X=… R=¼„y<QìvÔ56á™Woë«xìк 9¦É,J¬Û•µ$ß¼ÂÜ {@j«=µ:ÚXˆlŠÞÀ·„jàã¤ùí/¡„ÙSusÇkTãd2b1¤‰ÿ Û)8ý1G˜Q¶ó¥N³]'…³³>3\”›÷”§à\«Å¸ùN*`¿Oz,2Sý cêt¾¼¦gë:ºÃ¶£;= ;®WTþ›uQ~¥•†¡œ·´±Ðº÷´. c¡êF0†nï—×6Ž`„È“sn*ë,¥ÊÚh¦¢@!Cõ"Ö2.ÏèÔË3»Õ8p‚q‘Bwθ¼Žîoîþys>V&YÒ¯yPñ©šGFp"JÏ©yŒº“åMŠNþm,›YU®h Ø‘„p´#!|CËÅ- áˆ#!Zígœ BÌp7ÄÖð<RöÜ5³<szxdÔ{ëÈ;Åöy$#’ïÈ»DFØ:’QœLÑ€-ûa Ì’žf$&ÅÞ1’ùfÈ=8FUaêªÉÔ›eªÄø,gêrg`’ŽDCÍÀoEÖ¹­¹ú€OÖ9mƒe‚Œ ŒàýÐBí¡*ªŒÇ·'d1š—ÚØOà0œ74jS,aŠÅ!û… §XóÑ1Ŧ1sÅ{Ü·p*‹ƒ 8·Æ—™ ¢² Þ»@©ø‘€„½´–çB
+Γ(‰œŠ¶B’16ÿÞݘäuó²kߨù¯÷2àÞ%X%ê»5›¸JΟͨØÝfÁÐC§{iGºõ1£¸÷_®h<¯¬²Û{zÚDP›çƨ«ínlW"Ìv5Öàñú :Hðkte`fI‰(PàTõþÅ(Py<ô$n0ê74Ò]ωLÑÌqÔÕOYâU]™WçC»ªÛ¾òhŽZ¦(Ël•‰˪-öUÑþÉê!"p
+,©!1AÁ†Ž
+/ÁF¾ÙØY7ôNx×â(p÷é# CZÓÖº“ó˜g²?&æ*•©Õm¼ÃêìP¢2m0÷Ð\´@0l›šZeµÞÌõ_»{—x
+u|Æñ¿çä|Oj¾“š†?fÕƒ?4†ï›çU}ZFRe¾ï ï„&±™<BÚ "÷mŠóê½DERðqÜG™Ó°­Ì$ê{GЃAÌžAq^'U„ÿ ˜ëþyëþ§ÔãêÅi$µ>AÜ’%pHËR7)„“fÙ+©#¥E˜úªTŒendstream
endobj
1821 0 obj <<
/Type /Page
/Contents 1822 0 R
/Resources 1820 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1813 0 R
-/Annots [ 1825 0 R ]
+/Parent 1818 0 R
+/Annots [ 1824 0 R ]
>> endobj
-1825 0 obj <<
+1824 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [55.6967 566.349 117.601 578.4087]
+/Rect [84.0431 755.8266 145.9475 767.8862]
/Subtype /Link
/A << /S /GoTo /D (view_statement_grammar) >>
>> endobj
1823 0 obj <<
-/D [1821 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-534 0 obj <<
-/D [1821 0 R /XYZ 56.6929 638.6405 null]
->> endobj
-1824 0 obj <<
-/D [1821 0 R /XYZ 56.6929 612.5722 null]
+/D [1821 0 R /XYZ 85.0394 794.5015 null]
>> endobj
538 0 obj <<
-/D [1821 0 R /XYZ 56.6929 275.0395 null]
+/D [1821 0 R /XYZ 85.0394 468.6268 null]
>> endobj
-1826 0 obj <<
-/D [1821 0 R /XYZ 56.6929 246.5203 null]
+1825 0 obj <<
+/D [1821 0 R /XYZ 85.0394 441.0592 null]
>> endobj
1820 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R /F14 976 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F41 1238 0 R /F14 980 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1830 0 obj <<
-/Length 1319
+1829 0 obj <<
+/Length 1328
/Filter /FlateDecode
>>
stream
-xÚ¥šKsGF÷üŠY‚›~?–XB
-®X¶ Y9^Å•lâEVùûiŒzøhzîUWÊ¥2’s8S-æÒ 'Uþé)yR6»)fG^i?ýñ}¥¦¿ÊïžWú•ÙVh‹Ô»Óê§'§L9˜0þ„c%R)ééôíËúáçݧÓþ¸Ù¯Ö6[ÔúÝáåñò“|ùïáãËÓáù·ãnÝútøørùñqÿ´?î_ö›­N^—û›×#,ÜáéðËþrëù¸ûðawÜ|=½_íOs öjeÏ!ÿ¬¾|UÓ·’ý~¥Èæä§Ë7ŠtÎfú¾rÞ’wÖÖŸü½úuõy> üöÇ]{çof¶ÖQ
-åüYö™‚5v>ËÚÁYÎåf²¥ Rç³ü»Ò±MÕÊ•;¹8áñî¬3u¯5´Z•Û.Üju" ^¶»ÇÇ#펟6Ù¬w‹'Ýi²Ae!(&¿Rr>g…üVÛÏG­ÎcùÆ–¿‹„| ˜üJÉùœò[m?µFåWÒIZü@1ù•’ó9+ä·Ú~>jÊ)”' ,~¤–ógJÌg­×ü;m7ÿFkÌX~Hd¢.0H1ù•’ó9+ä·Ú~>jËÂP¾W¤”?RL~¥ä|Î
-ù­¶ŸZãÆò­¦hMòbò+%çsVÈoµý|Ô?–¯-¹ MWH1ù•’ó9+ä·Ú~>jMÊ÷¹œ®¬4ŸÔrþL‰ù¬õš§íæßhM˲NÂâGŠÉ¯”œÏY!¿ÕöóQkƦ>ï•òbò+%çsVÈoµý|Ôš±©Ï»òÊ iñÅäWJÎç¬ßjûù¨µcSŸ?Ï ª¸ø| ˜üJÉùœò[m?µvlêóÊR²VZü@1ù•’ó9+ä·Ú~>ju™t~{¿+7|Æ€–ë+$ÆsÊk{ë즣3œ7 ÔÛÃC$“•°î‘bÒ+%·sVˆoµýzÔ?–ï2)­“_)9Ÿ³B~«íç£6„±üò,pň‰…ävF é³_β†Âµ!ƒ°Ç“^)¹³B|«í×£öüt7_¾È(/,{¤–ógJÌg­×ü;m7ÿFòX~ô”­ö8bò+%çsVÈoµý|ÔF5–ï#…óñø| ˜üJÉùœò[m?µQåÛL6káb“_)9Ÿ³B~«íç£6š±üó† ÎÒâŠÉ¯”œÏY!¿ÕöóQíX¾2”\ö8bò+%çsVÈoµý|ÔƱyÏ$G>Fañ#µœ?Sb>k½æßi»ù7Ú86ï™2 Yå…‰)&¿Rr>g…üVÛÏGm›÷ŒKå†?RL~¥ä|Î
-ù­¶ŸÚ86õ“)+ìq ÅäWJÎç¬ßjûù¨cSŸÑš\ÖÒâŠÉ¯”œÏY!¿ÕöóQǦ¾ò‰ŒQÂRËù3%æ³Ökþ¶›£McSŸ.WŠ\Γ_)9Ÿ³B~«íç£6M}Ú
-1
-H1ù•’ó9+ä·Ú~>jÓØÔ§m"§‚´øbò+%çsVÈoµý|Ô¦±©OŸ?`…ë@Lü+$·3JHoœýrp¦±yO+M)XiÙŤWJnç¬ßjûõ¨Mcó^Y&>aŸ åø
-‰íœòšÞ:»åèLc“^ðT^%IoãW†{ÿó†·ð}øþpáíûY˜âà¶?¼ÖyåKSöÞüÿÏÑÁæ`$›–>‰cU dr¬êrÁj¹/Ïh>™Øyèÿ–†b3endstream
+xÚ¥šMs9@ïþs´îÕ·ÔG“8YS‹cNÀi©å‡=íß_G£¶¬éFEQ)’øežß”<î™±žTþ§'  Á)¢¯´Ÿþþ±RÓ·üØóJ¿0Ûm)õê¼úãÉÆ ƒ Óù²­*%=¿~Z0°É[P뇷ǧÃóÇÓnÝú|x{ÜlWë§Ã_ûëwϧݛ7»Óf«“×ë‡?wïÎûÓõ¡ð²W‡ããõ7xýoa£§ýÓþ´?>ì7_ίWûóÜB{µ²—WŸ¾¨ékÎ~½R`1ùé¿üƒh¦+ç-xgmùÍ÷Õ‡ÕûyƒäÑŸÚÛ3³µRö {Ù#kì¼—µ#{9êü`È…ºìåÏJÇ65æíéd&º¹;iî¥ÆiÒàý­Ô èhàpÜîO°;½Û Yïw¹Ó`ƒB!žPL|¡ÄxNZã[i?žJ­‹76¿&0ñ„bâ %ÆsÒßJûñTjõX¼ÊËþââã ÅÄJŒç¤5¾•öã©T‡”¿^Rȯþ ¬{J-×Ï”TÏJçú;i·þF.ÇMõëñyg™è…÷J1ñ…ã9io¥ýx* ~,Þ+PÊ ëžRL|¡ÄxNZã[i?žJC‹Ï‰hMâ ÅÄJŒç¤5¾•öã©4ıxmÁiœ¢_(1ž“ÖøVÚ§ÒËo Þc~™ Ò|<¥–ãgJŠg¥sü´# 8Ÿ]¨“°ì)ÅÄJŒç¤5¾•öã©4ª±xŸ ¸è„xB1ñ…ã9io¥ýx*ÍÏd(ÞåS€¤eO(&¾Pb<'­ñ­´O¥y¼Š7ÞE!žPL|¡ÄxNZã[i?žJ£‹W’µÒ²'_(1ž“ÖøVÚ§Ò86á¹äÁaÆ!Ðrz¤rÎ8‡·Æn75ƱÙÎå‰À <¥˜ðB‰åœ´¦·Ò~;•Æ±ÙÎ9¥Ñ
+ñ„bâ %ÆsÒßJûñTÇf;—Oý£Þà Ĥ¿@b9c¬á±ßMŒqlªsÚ€‹A¸‚A)&¼Pb9'­é­´ßN¥qlª³èÀ(/,xJ-ÇÏ”ÏJçø;i7þFšÆ¦:›h­pƒRL|¡ÄxNZã[i?žJÓØTg}„pÙO(&¾Pb<'­ñ­´O¥ilªËû ,jáÍRL|¡ÄxNZã[i?žJÓØTgM^)¥eO(&¾Pb<'­ñ­´O¥ilª³Ê@rI¸€A)&¾Pb<'­ñ­´O¥il¶3ygù…eO©åø™’âYé'íÆßHÓØlgB
+Ò²'_(1ž“ÖøVÚ§R›ð´ÉÇ+¼ÓˆIÄrÆXÃc¿›ql¶ÓJC
+VZð„b %–sÒšÞJûíTŠc³]>òh„«ZN/TÎçðÖØí¦F¼ë!Ÿ Iwá Ã݃ÿÉÈwàuäþûnáîû¬Ã4xÑ.7ë<ƒü¥½7¿ÿÉ7rÑ/‚MKŸ¡11£’5åI]/@Ý=s­ÀØ`:OýÓUdendstream
endobj
-1829 0 obj <<
+1828 0 obj <<
/Type /Page
-/Contents 1830 0 R
-/Resources 1828 0 R
+/Contents 1829 0 R
+/Resources 1827 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1813 0 R
+/Parent 1818 0 R
>> endobj
-1831 0 obj <<
-/D [1829 0 R /XYZ 85.0394 794.5015 null]
+1830 0 obj <<
+/D [1828 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1828 0 obj <<
-/Font << /F37 1038 0 R /F14 976 0 R /F22 973 0 R >>
+1827 0 obj <<
+/Font << /F37 1042 0 R /F14 980 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1834 0 obj <<
-/Length 1333
+1833 0 obj <<
+/Length 1373
/Filter /FlateDecode
>>
stream
-xÚ¥š=s7@{þŠ+É‚,¾QÒ¥ÐËÃTŽ+{œ&.RåïG ‡%ˆÛŒÇã±,>Ýã»uKqRùN΃O:M!Yp
-ÝôõÇFMçÇž7øÆì ´§Ô»Ëæ—'¦Ék?]¾“cEP1âtùöyëAÃ.Am>¾<žÿ<vÁn/§/»½vjûtúíøúÕóùðáÃá¼Ûct¸}øõðér<¿>äߎñîôòøúôúÏÊAÏǧãùøòpÜ}¹¼ß/K íEeæ7Ÿ¿¨é[Î~¿Q`RtÓù?
-0%=ýØXgÀYcÊwþÙü±ù}9 yôú£½ó·0{c!f¿p–]o´YÎ2Zr–æ}.(Ô|–ÿRÚÔ‡QOôpwÒÝKµ&ÒˆàRr·Òó)TpzÙÏp8Ú%½=¬žr‹`¼JB<¡˜øB‰ñœ´Æ·Ò~<•Æ4¯M~M$/ÄŠ‰/”ÏIk|+íÇSiRcñ*/ûÙÅÇŠ‰/”ÏIk|+íÇSi¡x}~ñ{aÙSj=~¡¤xVºÄßI»ñ7Ò¤Çâ}œpY¡_(1ž“ÖøVÚ§ÒdÆ⥬°ì)ÅÄJŒç¤5¾•öã©ôzÁˆ7Áè(ÄŠ‰/”ÏIk|+íÇSircñhÀziš¢_(1ž“ÖøVÚ§Òä‡âÝ|²’B>žRëñ %ųÒ%þNÚ¿‘¦0Ÿ] £°ì)ÅÄJŒç¤5¾•öã©4MxÎEð6X!žPL|¡ÄxNZã[i?žJÓØ„çl~¼´ì ÅÄJŒç¤5¾•öã©t.ª×ó``ƒPO(¦¾Pb='­õ­´_O¥¨Æf<§ Dc¤…O(¦¾Pb='­õ­´_O¥¨Æ†<8/Œ9Zo/”ΗòÖØ §FTcóõtRš§S^(1“ÖöVÚ§Ò¼øÇêm…Éõ„bê %ÖsÒZßJûõTŠjl³FA°Âež@Lû$¦3ÆZÞûáĈjl¸³¨Á/ìcPŠ)/”˜ÎIk{+íÇS)ª±éÎä7AZ9aÍSj½~¡¤zVºÔßI»õ7RTcã ’1ÂN¥˜úB‰õœ´Ö·Ò~=•¢›ïŒ àçòõ„bê %ÖsÒZßJûõTŠ86ßå³&¡p‘§S_(±ž“ÖúVÚ¯§RıùÎèÌc’V>¡˜úB‰õœ´Ö·Ò~=•"ŽÍw&σÑFa7ƒRL}¡ÄzNZë[i¿žJǦ<-¸„•O©õú…’êYéR'íÖßHǦ<í=å„A‡RL}¡ÄzNZë[i¿žJǦ<m#(c…•O)¦¾Pb='­õ­´_O¥ˆc³žÖ ‚7ÂŽ¥˜úB‰õœ´Ö·Ò~=•"ŽÍz:_#lBi助/”XÏIk}+í×S)âج—ßÖJØÑ ÔzýBIõ¬t©¿“vëo¤ùÒ7V,¤|î„zB1õ…ë9i­o¥ýz*E=6ëáüE¾¥˜úB‰õœ´Ö·Ò~=•¢›õÐD°ÊK+ŸPL}¡ÄzNZë[i¿žJQÍz×µb„ ˜ö7HLgŒµ¼1öÉõØ”7ïøFo¤5O(¦¼Pb:'­í­´O¥¨Ç¦¼hòA´°­A õöIéœq)oÝpjD=xŸÖA~g$ÝŸ/ wwþÊÈ÷æWuäÎünå¾ü¢Cíw1`þ Zç)ä¿É9ýóŸ‰#L\ûtùU4º<©ëǪôÝ3GÚxÝyêÿˆ­Y™endstream
+xÚ½šMsÛ6†ïú<Z¡X|ã(Û²ëLã8ªzJsj¦½4‡žú÷ Ú†ô
+w…ÉLÇ£1-½äÃg ‘K hÒ処䕶ÙM1;å5ùéï+=ýU>{\Ñ{fSCLÝV?=Ø8e•ƒ ÓáO8VR:%šß¾ÜÜý¼}9ìöëñú&¨õÆ}sûô|ÿöN~ûu÷éùáéñ·ývÝÍáéÓóÛÛûÝÃn¿{¾Û­7”<•ýÍûvxxúe÷¶õ¸ß~ü¸Ý¯¿>¬v‡£ ú’¶³È?«/_õô­hXiesòÓ¿å­(g3}_9o•wÖÖwþ^ýºú|< |úºk¯~ÇÌÆ:•B9_eŸU°Æ«LªœËf²Å ¦æ*ÿ®)¶ª¤]ÙÉÅ wA=¦.±Æ
+þ-¶ïXÒqÈßç2^²&ÞSËþÇ”èÏROþØ®ÿ–tóAeJÂøÇã_S²?GÿÛ÷Gìüæ¿Oª°œà)Æ¿¦dŽ
+þ-¶ïX¢±þÏ»òƒ4þ!Åø×”ìÏQÁ¿ÅöýK4Öÿy3÷KÆûCŠñ¯)ÙŸ£‚‹íû#–h¬ÿó¥_JÖJãRŒMÉþü[lß±DcýŸ+>í„–íkH”ç'÷–ÙUG&ÑXççBT&kaäcŠq¯)Yž£‚}‹íë#–h¬ós.+MÙ
+þbükJöç¨àßbûþˆ%ëüœÕ*:áÆ!Æþ=$Ë3Hpo˜}u`õ|®\#] Âœ¦÷š’å9*طؾ>b‰Æz¾òRF{aäcjÙÿ˜ýYêÉÿÛõ?Ãõ|6z•­æ<0Åø×”ìÏQÁ¿ÅöýKf¬ç³>ª0÷‡ã_S²?GÿÛ÷G,™±ž¯ÔMÙLÂMSŒMÉþü[lß±dÆz>;׋²4þ!Åø×”ìÏQÁ¿ÅöýKf¬ç³Ú¨ä’0ç)Æ¿¦dŽ
+þ-¶ïX2cŸINù…ñ©eÿcJôg©'ÿ l×ÿ Kf¬ó3!(«½Ðú`Šñ¯)ÙŸ£‚‹íû#–ÌXçg\*Nÿ˜bükJöç¨àßbûþˆ%3Öÿ“U V˜óÀã_S²?GÿÛ÷Gì€9‘r™¤‘)Ƽ¦dsŽ
+æ-¶oŽØù?­{yNRÆha¦SËîÇ”èÎROîØ®ûÖørÕùzÿX`¥r‚?¤ÿš’ý9*ø·Ø¾?bš?˜ëý}P!Fa¾SŒMÉþü[lß±óÏ—.(§ëK`“r:H_H1%¨)¹JÐbû%@ì<Ù§Ës ½¾ó£’î|büßC²>ƒû†Ù—¦ñ^áëê
+hR)Xék
endobj
-1833 0 obj <<
+1832 0 obj <<
/Type /Page
-/Contents 1834 0 R
-/Resources 1832 0 R
+/Contents 1833 0 R
+/Resources 1831 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1813 0 R
+/Parent 1818 0 R
>> endobj
-1835 0 obj <<
-/D [1833 0 R /XYZ 56.6929 794.5015 null]
+1834 0 obj <<
+/D [1832 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1832 0 obj <<
-/Font << /F37 1038 0 R /F14 976 0 R /F22 973 0 R >>
+1831 0 obj <<
+/Font << /F37 1042 0 R /F14 980 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1838 0 obj <<
-/Length 2325
+1837 0 obj <<
+/Length 2962
/Filter /FlateDecode
>>
stream
-xÚ½ZKsÛ8¾ûW°æ²TU„/Ø=9±œÕÔŽ“u´§Éh‰ŠY%QŠöx~ý6Ð
-Î}ËêêëÕ¿ë ƒ^;´‹¿ZgÌQ)ÌÑϲÔ$åŒ×,S°¬ATx-Ãò·„f§Pi"`È¢p¾3«µÖ¹YƳ4Y¤m³”eÀbB¦wãë››{r}ÿe¤Y|}‘u‘Ee:€?ÐêÁ﵆ñ÷Y ðŸšíÆšý 䌭•@hõ ÷ZÃÈû¬ÈOÍv#Íš•5ö„ªÀhõ`÷ZÃØû¬ØOÍvcÍ2 ¹#կƟ*Ax*E?þPë2þZk¯Õÿ™ÙNü-³Œ˜LÈ^?•þT6€?ÐêÁ﵆ñ÷Y ðŸšíÆš5OR @½ž‘’Œäý@©‡
-‹ªØ˜„†]^}/œ<7 b{ØàcåY»¬1³ÜWN'_¡N¾xA³ù“3†0çÞ5øøñ¶ZþuAà­Ç¥@ŒpÜR)ãñ´Â–í.ŸÊyo‡ÇÒ }Zä;÷bvªyVfÁð`õ]Üš†y¾wÒsyxDiW/(ý8‚ÛÞ™‡Â"@EZ—0•Õr—ﻑŠóñ^°ŒB^Ú²ðã
-„*_®­¬ð Sïý˜íˆÆù¼Ø›ý•ñøëÛÑãpÐØñÃs'íóùÎîây™¯:œx.Bÿª¢XØÐ0slÚà°N}p[eQlW›¿+mv4ñ1¯*›PÃme}qûj“»!ùsîÚ‚œŽºD#t9äÒ iˆ$Þó?|SF´–¢ûÃ7 WœÈL°Ësá¸ær¢Ñžª9›£D&¢õ º 8œaÿSE#¦)QÂÕwAÆ)ä{œÉxn5>Ã^¡}aÇÄ“Sf`NAÁ5&2˜ÑD?"¸m­9*²ÅÚp`ÞO×,ºÙ
-þè%?;ŽÕ¢Ø¡xa›×ž*ŽU˜ÀØ ¾µQE³‘SßÖ@”?TApT ¬³)€˜ÄN*sIÐ(ù'bS»ŒÇruÛ¡šƒ>ðxuà›áÌ@ÀsYÓUµy¯×NÚø•4[vi\ù»`PŒ(ìúÕ¾­¿(Š­'º¬ÂQØEí_ÎBg$å)­ô¶Ýiò€Ô©ŽÆÍo\oËc(^嶊ʹèþeJÁu_*SCÀӰr¦¿:ÖZf…°°ÀdxV¸ 3ÔÚá¼ç…»×ê0ßÚ¾B©Ûö¿š
-qiŽM®ãg{äÉ9des´¹~DFÂÓe³äæ‰g3˜æ!†*s¶˜–¯Ÿ¯Ã®ùÆ>]§=CàBÛˆ¶1¿ BAýd/\C*ÕºáU] –®ú jÞwõqTLfþ¿¹ˆÏHn“€äH¨_çG”[oj~-UBE Õ^« Šù¦:˜jà,*4alÈ|­Õa¿R–œ:PG…ÉA&áxl³£ šmJÔaadŸ°\V'aaºlX4]MX˜N,­Tsóч…€ ™ –Â=ø añÁö6ÿüoa
-t·½˜TÍuÌߢZw´Ü³åÊ_ñÌ çŇ_n.óãêаïÚó°,Dœ—É6O%¶\ t™j¯tášwÆ´$L$i¯µÒ¹mžØ›p; ]¸©)åæ6°(ŸÊÅÑ–ð^ßîiÃl"Yh ˜µ*7MðÝ€Öwp;–ûÒ€3sw‡Û \ßñ/â0àK¦qÞfR·ïí/ °pkp ÜÖ÷ör]ôÔö’˜ÿdÒAaRÑoþÿ.áw4ÂÕ¥¯y<I‰b:óNÙ¹üÔsÉdG–u¸þ_ÑyP,endstream
+xÚ¥]sÛ6òÝ¿BÓ—£f"„ øÞ=9ÝsçêôßÜCÓš‚lÎH¤"RvÝ_»Ø J”Ü\&3°X
+œfQ6‹S)”ÎR¼zöu&Eç¹"$olyd`ïo6ÑìcÍ<¦ÜÁ ÿdËTzþ Š7À‚û5ÈMæÚR|oŸ:ÓÁÎnæÁ¶Ø™º#(¼2z¥àyA˜"…ÕÁj ²œ|0ü9·ÑÛ0ZïÀ
+FÔ` 2¹£_·cü¥1['èªNƒ1=}¾6Çi." Zä[Ò÷'º$‡œx1”Üßç:¾j å9Ô9y¢åtÂa_‚‰Ãý¡Ð‘_3ɉ&H…/D©ùÂC Á™"N!)÷Ï=º½Çš¸ÞÏNd$ECî>ºÿ3æˆ+Œš*^lÄÁdÇÙxÝ*Ž(XÓŸ)4À¼<èP¡!Ÿ?]úKecyцP°jãЦ ØÙ ‚ Ê–*œÛØ‚ë>¬8ÿô²Þw}4ªâžÿ7Þ@üáˆF.BBú²<ŽPüÞ*Õç…ê¼RøX§•¢Ç”¢lê“C­ˆàù´ÌÎ_ßcMÜ?ÖŠDèTïï•])úG³Ô
+[ ë×gSvD 6ø‹ò »ãB² pk¡ä´Û¦¨*N°PíSq QŽÃÅŽ³%tŠ¹eÛJ º ¬3 u,$x$NÜ »}‚–¢&7„ÆçÛš ªé–ªîÌŽÉbJhÁV©
+sÑ(ãpÿ­£H{ÄÂ"F2JüaB%< P@ÈEݾ†ÞÝ Ü6q—Ý„J€u@Å
+Ö*¡@ÉcéTšÌ´yL%ƒXaic°6¯Ú 'Da6„Ù©/ ×uó>ˆ±Ã¥þ¨k×Q#%ZÝa/ O˜>Þ~v:GP_Ãs`_[ …ˆíø&Ô÷-/Ë=ËóUGÁ+/Û¶0õ~pý »_4&½ÏòC½G‚ó@Aí»âüK˜„æÒl»ƒ­ww­éøÎ9¸É¥Øpûéf× Wª÷!Ö碖?˜uóH»ûŽØ­˜4®pWöФB&í,[»ha55…Šº[¿Î¥”7poø®ŠÁPævU¹_;À›(¡¼ƒWÈɳqYŸáŽõ`9§e×r¾çÊÕšçûl´ê
+wN2h,“¡!ׯ\mǮե±-Égsg @K³6…ë0k×ðÃ%‹4ñHë=ë-¼õ¤BÚndïOSëoüУ°Þ IT›ý†&£'A€÷žÒA
endobj
-1837 0 obj <<
+1836 0 obj <<
/Type /Page
-/Contents 1838 0 R
-/Resources 1836 0 R
+/Contents 1837 0 R
+/Resources 1835 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1813 0 R
+/Parent 1818 0 R
>> endobj
-1839 0 obj <<
-/D [1837 0 R /XYZ 85.0394 794.5015 null]
+1838 0 obj <<
+/D [1836 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1836 0 obj <<
-/Font << /F37 1038 0 R /F14 976 0 R /F22 973 0 R /F41 1233 0 R /F62 1379 0 R /F21 950 0 R >>
-/XObject << /Im2 1368 0 R >>
+542 0 obj <<
+/D [1836 0 R /XYZ 56.6929 267.0417 null]
+>> endobj
+1301 0 obj <<
+/D [1836 0 R /XYZ 56.6929 242.1896 null]
+>> endobj
+1835 0 obj <<
+/Font << /F37 1042 0 R /F14 980 0 R /F22 977 0 R /F41 1238 0 R /F60 1366 0 R /F21 954 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1842 0 obj <<
-/Length 3646
+1841 0 obj <<
+/Length 3901
/Filter /FlateDecode
>>
stream
-xÚ­ZKsÛF¾ëWð¶T•9;o
-rþöã‡wWßý|}qžØùÍÕÇç íäüÝÕ—Túîúâýû‹ëó…Jš¿ýþ⧛Ëkêò¼Æ7W¾¥–Œ>'½¾|wy}ùáíåùï7?œ]ÞtgžWIƒùóì×ßålÇþáL
-“¥nö)T–éÙúÌ:#œ5&¶TgŸÎþÝ-8è S'ù§¤ÐÆë j5Å@— o´é¨¼P)ðEJ9¿X­Ê¶¬7yEGýT,±ÊìÈ—åæO këÁÚr¶Ð‰Ðk°êÍCq¾0ÖÍóÁrÆÚy—ÃÎ%,W¼²OçyÕÔ4d™WU±â=†ô«˜ªS ›áy˜>A‹ÎDš$)ãõˆ ÚÐ.å¦-vLSBmMMåz»;Wé¼~䣴qDh.šm½i¸k[ìîêм@z€Ê
-)ñJ”™s:²Î7K˜¡“l^ßÁ7í$Z2A¸âù/ņúwçjÞÝ4uìÃK¾ÐƒçÃÆb“ßûÞ`k2\ž>OeÅKñ‘±1ç{ž„½ê]»XîÛp$Bz‡\Ò:!¦`axÑZ§J¡sYÃÊ›–*È©P(€œoš§‚[¯¯>Ôm7ÉÛ yЉ Ëîsò`@­Šò…3mƒC%=O¡k],òMÙ¬éRLD&•_j¸I7²oè›oVT[ÂwS·T ªò¶àø ì„·>Q¡'Èáõ|·ß‹îz2aÑ€ QC-6p³½Ú åÆÀ-¯ê¢¡æ@]è‡CßT&¡‡Â‘У
-öÞrJüÉ"aär¿£ÁIYЄ*ð,g›
-x®Û‚PPsQíö@½§Í‰J¤Hm6&bAÀm‚ï…•Ö¼jE”°^ºW­ˆPŠ«RÐฒ´±e[7M‰ô„Z€'x¦m±,ïÜÈ\`&\Ú ñ¿ÝF¨R•ëòHÉ;¹uG÷tºæ‰ù@{oyô¾™æªvJ8c|¼´üyÁœmÊ¿¦øš!K:ŽÐY4DP>3§áÔ
-Œ7!ëµ™_?ˆÆ
-Òëï—Ë¢pœ6t; oLm÷9íQMÛÞè±9Ž½ŸEy»LYÔ;”Ä—2kSˆ);P†é# Êz(?Rp£Šq:æ ÎÐØg_­¨õ–g‘… a1ÆÌFâƒ-Þ)
-_qß$€VIç±´a½WuزdzŒäýjDÈßÄò
-‰¢ü%Ã…VEÜ…£¿áâO% ‡ IƽŽã±jE 3
-Ü#† e@%“pò&.yWW•vëÅ4@θv¿^çÑF¿Xocàu"M0áøÀ\Ke’¯3×âEêR±V~f¥ZDšN5Ò ÅpÔéLc7jç wWZ
-ð½êõí»QûÀŽv¬ƒp5¥õ™PÞEÐp€ Ÿ€N
-T*7#Hi\„qXïÐmÉ¥(¾!ÚÍí“Þr„R,*2"¸Õý=Å"…êÀ‹Ôq¯¼íi›@]¬ªØpëèýÕ³ÛÅŠM¸ 9MlÎéÓÓ©cÊZ× `å6X¨=–ÅS0$0†¨†[æÛmU_pÁm¾çOgÐüH ú‰=W5CÚ™fzbAÏ;Ÿgzþªû‰>ÇŽ“
-œn—3Qþý”ÁIDfô\iÞB9 ¾V¢Š¤`ÒÓÑócÆÏo»—"|»-«–ðØ+Ž.¬CYsĵ}br¸\íPi„Å€oËŠÂ9¶cøŨ©¢üÎÛ3ryD,Œ‚j$›±ï¹{PÎ#©àŒbéíæ,‹]È{OÅZ‡mƒÄ“~%IÔ¯„>~I’¤@Kü0üO³ù'LÙгEůámÐP¼˜ø˜ÏŠ™ÇÿPZ" OzQ“h
-A†çwgÏ'b=¦T=»ç˜öÇY'É;€©Ý3nsB
-zƒlÂO¯Ò` ˜€ A íí¤ǘg̨ .>õ_$…™MÜðAÐ\e±¢†€á^ÊeFÌvÂN?xïÀS;Yüa–üÉL˜Œ°ÙC@»2Qc±•EJÙ^#±ÂHÆ£™Ø‚ƒé·Ì?­á˜NEšùé ÆÁêéì©Õ¤™–ÃlèÑÖ8—ÒùåÅSÙà¹pNy<7/(²‚RÀÖ0*ç{é÷>†u¡C¶߀Dx{¤X-œñö2)ºËœ xF‘#ÃO þð/,Ç;Aoñœã³;ÓW<†¬= ì‚~43aÌ9…XÖköž™cG"Š¸úÒ6‰€sê±ê|ÅyAót÷’öfB×qÈ(ñùôô$øœx
+xÚ­Z[wÛ6~÷¯ÐéKås,
+ë¢n·ØÎÚ¦ÛÕ›¾lìXµ4‘ȶ—4z×MK5Ђi)CwhéÂ$Û•LÉ5’ 6:òÁ½ ia"a/Æûî2ÏKÃ]Z RÁÑfĬÔs³†áȾ!B÷:í¨ Ÿë²±»‚žbu.âù
+ˆà+¤¤¬@mÇÍ (öÁ›[¿DIëÒhX`ÄvÜ™#æzþó¹Öó²_/ìþøøŒÚ]?©Ÿ,Šdü># G‘v1AH³H„ ȳªÌ¦è€•Ã>h˜ß°a?±ši~2+ï ì²ZbV¦1”„yöçd_¥}QUãœ/@ÝšnïN›œ»~ÝnËþÑÓDQ.bÁâD$c‰šõ:#ú@οi÷Å=ÐW{at7•*’*¼ù•óà¡èð†i¼Ú¯ šŽ†3·] Yœ‹y‡ÖsÁ§`ÐE¶6XÄ0y¤-ÂïÍržxÎ/Pɬ°L7Iä¼K뻎x†ž}Y•%yWlzlYí6ôwYVy ¼»i–NÑm@ÀEG cß]ŠkTE×Ñ¢«?Ê{c÷öTYLc»…)‹vk4ñTgUÌ„Šãƒ7Õ ·¨GáÈÀ¥ˆ,7¦¿_[u†žnÝîª{—4 =*‹”r¾©éÏ—HÀœ¤™D'išeƒ¯zÇÆÈàù`fÔã†ôØíe´ý2K«Êª<°ß¸xê>-›ŸRüéê-*š7»z‰D›†_à¿rÍɪ"d~ë´q´Ó® ‘F•?da8Ъp«
+Ò@Tî*í-´0ÌNÅþ
+?ÐB«Û{7ªO-â•|î€'ôM¿-mÄ À/ÁuäøÂw`T…ßïn~ÂɃ1iugÀú¾@g›pÐê47ÿ8yÜ,æJó„IÁžè@Àâ@¸™Yv}a`IP˜
+ TâUSè 9>ç\¯ð-Â>ZìàF,2ªhŸó—m8ÏŽr¼âÞ…LŒjŽ÷N§a|_–íl´{ZgP†@¿GeƒžÑXôD¦0ÒS ¾=Òϯî.?:—rŽ×GØÀ¥a¤¬w5>¤u»kzlc(•>i2mŒq =†MiÏÄüî:"HY:„,½€”?§Y¸u8g&óŸ-œtSì©/‚«q
+Õ#iÝZiàm"#ò©ª Ǹè/æѤäÂÕüºÁî|Àg¿ÆÞ ¬ÜX¯O÷e±·ŽÆÐÅpÉt³©J”‹!¸I·üqšôû‰©iwcÄL‘V>O‚ù³áÇÅ5®-&/á÷S'b‰ FàâÈòÀDÄZæ/!:+Ž©µ)M‰‰ä|!8çóW
+?!“Žâû˜´•$ÐFLVe×Oe š%t Äª5Ô$ô ¹w:yÑ<.HÉáÄtX“p1‹è¨Ôµ!«PàelÝ3æ¤û±pu»˜­
+›Vá÷«CשÆC§ÕøØå–ÐøRZ•igØÕ`}–6VU²‚Y³Œ“ Û¹CÄiøB·Ñí–]_ö;LC>ÿ}WØ3ôK†bžÛ$#äRBÚÙqÈQɬM…n0ëIC
+5ÀÔÄ% f™'@s¦„C & b‘N’§ÀHdòøRè×ðE³(9®r¸–ŽM!ÍÁ)C{dV xd¦«ÄÑac 4èdLÅ+%BiûàLò¶N-`“èÎíoS ;¢ƒÆ‚Ð<–雿’`¬ZG`‚‘ˆ?Úü=ÅÅä©ù+¨[©ð°òsæ±@'Îü‹ª¨!Ðwöb*¶ Æ@°p0Hc'­Øå<cA%pðqøAZ˜¨Èñ9…W&P9vX wª—81å•Ý@ÂM¿XmL¬¤X ½.Ú"Þ„Ë°‹­[ Ú…tkzI¥ å-Ò<’Q(hbÖ–à`ú’ä°M}(OnÏ ¿Ö9¨`ºzª´LEiƒé8 #óDµT{ÁÏ¿+ßû²+.pNy<×9/h’‚–ÅÖ0*%Š9¬ïb8 óÁ£ƒ äðX”a"TO¸@àõ•‘?çR_9Èœ"e$¡KBñ/M;¢ê:¼-ÒÒ
+€‡>.B&µVC°0<”c° B-ÿ´(x á5Œ<^ H¨¯N5
+еÖr|ø6EzJ´¾®ØäSi¤ñÓ»Œ%3Rød»$zïÙe²(<RñͶX•SŸq€=îYJøñ A.R]dÕÊÕ®zé¼Ì”DŠ2u
+ð®x<1¯(fÂ|DhÀ<Aüñ€ÌS\ INX,¸à°²=½|úZC)íøÔEveø¬"[Þ5Tf#Ÿ ‚ã –j,Œ‹mMÌü «&ØSƒ!¦wô`±—fr. ¾bÊPLÃÖg(ß± ~áœÀL•‡Cð
+Ø-=†j­¼ì2<n1ƒô°âËâ xa‹m¹»þiòÑeÞÛ«óÅ¿^›úõåõwt僨¥}2 Æ7,ò î%³ª„}MÅ©[¼MG2Á|ÈÁÓpŸ!É~±6f0HOó!jbÅ*t pYRƼOû>ÍÞu” ™üÅV;/m†ƒ÷ÖqâG©ƒg &OIÜ!a
+íÍ ÒN߀w)}\²k¼*MT¨Øúp¨/
+ó)”¿üæî*À|*âÔÃ>Yu‡ß;{¯Ä•f6 ¼´LpeµK¬¦·is"‰•$/4è©ÚÌs§b)bùŸ“
+1û›ÄèÚÅ3Ÿ²üå8>ż¦B™ ɬ½Ò·ïf®õCøqçÑç„®Y}jc´©Úà ƒâ˜å£[8?ê”Ï‘|N©Fÿ6}™Äþ½˜ÃáÊIË,z8Ò_¥K %ƒ+&Hû2Œ;rèU§\ûküT0¦&k^a/(:6Ð9( Cðì“h‰n1Çæ0I{ $I¹0†iÅ‘ÉO3£wXg—tã-Wž‡wSìgkS¶#@78ƒÿ/E1wa¾¤)ïÖtãsøÀt>¤ÙžÇó]Ut_L`³±™À °ÉèðgÈ×Kìú/þ K;ß $ù™›òrjÏ£Õ)Ûþ0JSŸ^ƒ™ï¥'ôžÏܪýYöá›u1ÇÁô=¶ä!‹°bÊì6–Çœûï·OYÿ±#÷yendstream
endobj
-1841 0 obj <<
+1840 0 obj <<
/Type /Page
-/Contents 1842 0 R
-/Resources 1840 0 R
+/Contents 1841 0 R
+/Resources 1839 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1845 0 R
+/Parent 1818 0 R
+/Annots [ 1844 0 R ]
>> endobj
-1843 0 obj <<
-/D [1841 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-542 0 obj <<
-/D [1841 0 R /XYZ 56.6929 769.5949 null]
+1844 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[0 1 1]
+/Rect [91.7919 146.7594 410.5963 157.5737]
+/Subtype/Link/A<</Type/Action/S/URI/URI(http://portal.acm.org/citation.cfm?id=1315245.1315298)>>
>> endobj
-1296 0 obj <<
-/D [1841 0 R /XYZ 56.6929 749.239 null]
+1842 0 obj <<
+/D [1840 0 R /XYZ 85.0394 794.5015 null]
>> endobj
546 0 obj <<
-/D [1841 0 R /XYZ 56.6929 258.4984 null]
+/D [1840 0 R /XYZ 85.0394 474.1483 null]
>> endobj
-1844 0 obj <<
-/D [1841 0 R /XYZ 56.6929 228.7653 null]
+1843 0 obj <<
+/D [1840 0 R /XYZ 85.0394 446.4867 null]
>> endobj
-1840 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1839 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1848 0 obj <<
-/Length 3431
+1847 0 obj <<
+/Length 3701
/Filter /FlateDecode
>>
stream
-xÚ­koã6ò{~EÐ/U€XE=»÷@º»iÓk³{ÙÜáÐÇY¦m]dɵäxs‡ûï7/Ê’¬th $‡äpf8œ—¬Î=øSçIèz: Îã4pCO…çùæÌ;_ÁÜ7gJÖÌì¢YÕ×gW7:>OÝ4ò£ó‡eWâzI¢Î?9¯¿½~ÿðöþb懞¹³0òœ¯oïÞ0$åæõ»»›Ûoþq}ÎÃí»;ß¿½y{ÿöîõÛ‹™JBû}Áð†›Ûïßrï›ûë~¸¾¿øåỳ·/}~•§‘‘_Ï~úÅ;_
-ÂO1šDnu}»3Ëâã«`´ò"Ë*é)x`à@¥Ü4 }~4&«ŠjµÜ—¯Ø¾eÕ”Ä`^ÒÔªÁ£y>ygqâª(mb7Šcõûß™Å8룜xg‰rÁ øÇ“éSú¸AÚ;>eÉ<Ï ·MQšª…w@£bUÕ,¿…ËTÊÝ "è¥n ˆÈŽÂcÕ‰r2nxG³­«Æ0dÏ1[É húËþmòÖ,²ØË’¶–v-€Ÿ=Ï/[³ƒ{‚Ǩà8ärÇ/Ÿµ(šœ5aa;íºÞ·<˜ÀLzCåȳ|m—V1Òáæ8ß0tþyƒžòúö{†š‚£á©Œ™Úv¿«ŒàC~©]Ë’¼,€/·£ˆdÍ×ú°&¦¢PÀ¾ST­©˜ÑH„ í–Ï}IJß÷ƒ7wxO΋jÑ¡ËÚ6Ë›K\'TÜÖøÚ—UýÅ`A—(Ô´[=Ò‡Ž$Ø<93øëÞì@ÿ´—8K¢öRÒ,/êMFXTeÃPV\Õ^
-tƒlÒ»òqœÌt6ÅjÝJ¤±5y±|9¾e}´ä*g_šæ«‰€l(Ç^ÐK
-A¾Ç$Ã(T£öõã×J!¯78w9%ÊNŽÜÁÖ/R¼Bêƒ^ˆXÖ­õc«A¤6 ARÆê^ñúe©éóàòE^õKM_k?†£p"Ž$rŽd¯Ôo "FC X“ÄùPT¹­æ@6k3¢¸yž@»Àälº ûÙ ½_|¼<X¡sÁ4£céÅâ³7‚òeK ^²Lãô•œFÊ'ùÇHŽïð–ýXt:ä’±9k°xx¨cÚ_6 –`1ªyÃs¨çØfÜ”fU´D¶öŒ&ìãð À:BUûp8\¤þQã¶Q“-‚&žÀ‰Kj(ÃßÌ$NêBé§ôè?­êþg¨:š{ˆ»år¡G— -S[Êý|߇ēô'äš4ú<–©¶ñ2ô>!]}T^‹ë´~¤ýÐõ㮶׷ÿ§ …6„‘­'˜Òl ƒBÍò“ÎÝÎÄûC"k/>ƒ…“Z|W·)¢@5H{ï„Z€TuÛ¿tJq"«úö’ûueј¾ÝÈÖM
-[µò¤
-š:Ë,o»WjlÔ3"aÝiåß q·Íw-9,~,t9Š.9ØwÊcÉq¼É¶[63¡ÌÙ@{ˆÏ>DÉNaep0;ÌàbN…pA—>ÆAwtè,™‘²
-83†ùm]PÆŒˆ–Ü>†mtàܶSÖÏÆ:ä”y»— ‹R~
-kȤ¿eG}tƒ€Ub çb`Ð¹Ý hj®Ž¦]4Ù¦Öë…6ðIû¼£˜täÜÇÇ ¨LƒÉÓQ‚Ô0«ÅtÛìå¥Ãˆ‚ˆ
-xI›Æf¤gåä£Nܽ{ÿì V^÷ÁJž
-‹ýÿ€ÂÒÍê£ÁB¸Ô4±ËÁ”ÿB.‡?¥í‡Ùœ4“CNu=@ÂÞð
-4T_L•“}7H;Uw_úÅ–]ü™ÕÄ7ïÜrþ»Íuü©[»:Iüéj²º‰ŸÆ–($< Ç”w?û:%ýÿÙB‰endstream
+xÚ¥]sÛ8î=¿"o§ÌĪ(R_»ON“ìeg›fÓÜäf?d›¶5‘%¯%ÇIý(Q¶r{3×N+$Aß ,Îø+Σس0;O2åGˆÎ盳à|c? ž3±“&§³O·29Ïü,ãó§¥C+õƒ4çO‹ß½Øý  xŸ¿ÞßÞýô¯ÇéE¢¼§»¯÷“0
+¼Û»_núéqúåËôñb"ÒHxŸÿ9}xºy¤¡˜i\ÝÝ_&£ÇDonooî?ß\üùôóÙÍSw÷¼"x¿Î~ÿ38_À±> |™¥Ñù^_dYx¾9S‘ô#%¥Å”gßÎ~í:£fé¨üDà‡2G†cŒ2?–¡4¼[‚@²ÀË+zê·V謁dlÛæó½£·R· ãéqÐ3f» ‘zõ¡±S &÷^ïíâzn©Vº=Ô»‹¯Úo‡¬Ü=¼*Æ,fÝðþ5sýGªŽGP‘¯ßòͶÔþ¼ÞàØ%*¤4ÂÏ¢(4GnךÔØŸ–þ£!äõý7à,¯8†ð¡Þ— ‰‘v¿«˜ˆ‹n¶uÕ0õ²xa¨]ÍÈɧ[%… _¨t‚|YvÜC€aÆAàMé!²Ð]û‚ˆ ´{D  “˜‹@^5<ž·E]!ñ4õ¾Õ\Í6ÇYämN¯(o/g‚ž×4‘pQÐQ í™öO_¯i`’@|âmòv¾ÖÍÑÎÍVÏ‹?‚ ÔLuK[!êmLV(Á'Ôw'ðÔr(Ê’ cŠUEÇÐ ¿ÛÀåWÔt˜°Ý
+Sà 211zœÈTø‰ ÔPŸ‡£f|_·]<ÊQ\*sÅ<SÕ­«õ¼,ßi ¯Ü Ip]Y2Ú ž€ÙÚÈÙhЩÍyî2Ÿ·›jÚå„…ug–r"óŠ«k¦kÙ!Ñ·å ,ŠÒª„ †+“Ⱦoòí–âLÄcŠSBHÏz")çÝ=Ðè )!¢ÞÑ„E½É)üªnëÈ[ÒA6ÌÈš90Ãñm [1¡%=_ MˆqZywí˜oŠÕU§`êížgä
+ Ê'è‰P>HV³¢ZÀ>lÌ0Çz3NÛì&¼ÝÁ¶»- _gL‡ƒçÍŒh΄•Äæ…Dxp¬²˜çXlØ;gß¼ÙÄ:¢nI+T]ÁH™›­Wš°MÑ’uFÞº>èWGï1ë=
+²ï¾¥ñM^ñÌ#/Rß«W°Rc¿–meߨúPFƒ@•kå¤xéÒ7µ©ö¢ÌÖ}
+}ƒ²Cù¦¦rЙµ*ëY^ò¼-÷‚!ôI -öðŠ‹ã¨L(ÈtÐlI®2ài2ª:‹=”Y×eÉîƒ
+—l]’í@Z‹TGj4CFy+ÆÈ´egrh¦†St›Ô“z…t¦c©{±Í)}Ž¼”÷ú¦‹RNßî0otüÐÇ«×t¡g.´ ‰ï!ùðºïT*Ö#Û¸¹^XHe>§Â'¢æâÔÀeœ¦TWŠÿî•ë‰/”MŠÎ½‡¹e¨YåYâArdð‹zONL_ÖnÇÿÃüi_ÐÏ?Ì׿¡G½Ö#Τ`™Íq•y”/ðG6_
+ºbŠ½ÅÂK_=¦Š>ÂÓ©ó,åSV!þ:I:•¤ÅÝðÇÖS#WÞ׈J¿0àî!°ù&°mJЗ~£¤|ª¦LûHKúÂ9¬ h'f;ýºĄ́˜ ê
+ÌþýÇÄò?ð?ÖdìÜ·¥‰-«M×!)}²3ˆµž¿ YážÚ™=Žt>éIÉ ª>zê6ë8ÛÑzâj=¶¿JMûñÁïä ±àÛF~ÕÿXÏÿ÷oèúªÄ—iŽÿ<.LR_¥@„™By§ê„sûc»SÖÿBÈÊÒendstream
endobj
-1847 0 obj <<
+1846 0 obj <<
/Type /Page
-/Contents 1848 0 R
-/Resources 1846 0 R
+/Contents 1847 0 R
+/Resources 1845 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1845 0 R
-/Annots [ 1850 0 R ]
+/Parent 1850 0 R
>> endobj
-1850 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [91.7919 633.8696 410.5963 644.684]
-/Subtype/Link/A<</Type/Action/S/URI/URI(http://portal.acm.org/citation.cfm?id=1315245.1315298)>>
->> endobj
-1849 0 obj <<
-/D [1847 0 R /XYZ 85.0394 794.5015 null]
+1848 0 obj <<
+/D [1846 0 R /XYZ 56.6929 794.5015 null]
>> endobj
550 0 obj <<
-/D [1847 0 R /XYZ 85.0394 189.4262 null]
+/D [1846 0 R /XYZ 56.6929 424.6308 null]
>> endobj
-1851 0 obj <<
-/D [1847 0 R /XYZ 85.0394 161.9629 null]
+1849 0 obj <<
+/D [1846 0 R /XYZ 56.6929 397.9389 null]
>> endobj
-1846 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F21 950 0 R /F11 1353 0 R /F14 976 0 R >>
+1845 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R /F14 980 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1854 0 obj <<
-/Length 3959
+1853 0 obj <<
+/Length 3719
/Filter /FlateDecode
>>
stream
-xÚ¥]sã6î=¿"o§t–¤¾;sÎǶét³Û$Ü\·Š­Øšµ%×’“ÍþúP¢dÙ¾¹ÛÌF$
-Ò»út÷áöç?î'gqà=Þ~º;»Ð¡ô>ÜþvC­Ÿï'?NîÏ.T*ïê—ÉçÇ›{ꊘÆåíÝ5ARzì!zóáæþæîêæì¯Ç_OnÛµ¸ëUÒÇ…ü}òç_òtËþõD
-?MÂÓ7x‘B¥©>]¡/ÂÀ÷-dyòpò{KÐé5CG姤Ð~¤G¨õ˜
-ÃFª+jz6–8 «OœF.³¦x-¾ç<×Ó
-ŒD»–Œ˜–bæí‰Wo#Zh-¨“LkWаš4/8?ÄÊJz2Ïl6cՌȄ{ûÊ 'ðZC1 ¶ÝعNîžÐe𼛢*ÇÔd¤žFFêðh-Ì wÂèöNÃnßaW»ïð§ÖÑv ÍYd µÙkN¤¬y
-Nñ@žnáðáqß)R¬Fظg1¼°–Ù”âÀ.Àk ©À¸øþ]ŒX§Ž…
-졘•Ù²šW[æ ¶F*Oc!e<0øYµ}^r¤5­–°"j‘¡üé'ø­(L4ñÀ8ì6°´8ä“,³™ƒó íym« ÉšÝÉ€/ŠcÑ’9+ŒE†øc”•ºy¼—2;š6fØo#ám³€ âëל u¾ym ¼˜c?°‡4lÀ$Ñ„!Ó˲f¥'o9µ£Û¸xÄf™–£Æ(0i³lšY`ÆÕIà°½<о›è²ëº°Z“(á+¨Š)v /]ð˜˜PÃ<0ÏRÞµà@c²è;Ù£…÷\PYÁ`#(_í‹ü´äÜAÚãFÚ$Ev‘¶QR‚‚)“<Ò.n†7¶lZ„a\&yOÀsÂ%Oƒ’Ãÿ¾Æ,ÖËóï©™5yŽcUxŠq(‚̆@À"Ÿ~%=@ú2Ç1ŒÚš=öØT;!>ž]¬ðÒ7UGlG뱫õÈ[_ #GLÖ¡£ƒÎej¶=°íïI‚P„*v쥬Gä ‰–qw$ã×IAsÊ ^¬“ì /hqjåòÀ¤"m³|£K•úÂȸo¼Æ…“‹j¬sæ®ú…Ùæ:«¢„%^̪¦Ye ÝùDúÔYþ’m—Ì‘ÃQÎÝw9+ÒCý?ð¶I½ê'ê èåv–[àÚ®ü5_òüHå6îJ"¡?².[9Ù¼ßUUü —ö¤àˆµÕ”‰‰í&0/&G€ì|
-' خԼqƒR·Ð[U]ätÕ+¬üÀiÆAÇ3‡°ëÝFÌ# À é]æÓlk–‡ÆõÝ6übM b3óç Ž«&ç®ljgLA!`™@žhˆ²ªŒ¤bŸcÑØYwKÔRù’Î2À«è2?^9£ØÈF
-ûÓNØC¦ãÂv™²°!ôv<¾‘¬$¾FVª c«÷7z§rêB=]º4^m" âÒ¦ÃÚòÃ…àvc9düncMÖ<œ¼ÒFÈHeõjO¦èäG1—¢„'_Ma …{ßzA_F¯ƒ:⋯®§É6æþÀ®Že4¶š}&r½©Œâ‘P9²÷cЛñ\é´üobÇ(õ g¦ÆÂ$Ž0¾¬òLÅ (í¨Ï˜£ÄÇèŸÐºH _0U &Öî iÊ™%%yWf„uº
--¤˜.øÚ !ø~<VÊÀêC^H“!?Î?ƒÂ_“~¼4¹»úôÇÝã?Õ~ SýÌÅ:`Në¨9bÚ™Óé¸9¹L÷xH´àìg•üVMñ
-#ë¬ÉÆkâqèž
-i@QÓsôsì@÷ èvæÌUty@¤lÃæéh9G½9'¾lk˵oºËúÍN®÷?½ˆàP ‚¤oa¿
-ÝdÒµ‹ÜÍóÆ'6MœàÛ‡ Š%R'ðM©ÞÌ¥ýªËÜØê[© à„©áN¤kY3©•{ÑŠ!úÔvÎPa¦UÔcGcF_Ù@
-šìN°éº“ÞçJŒÙs&©·t­Ó) ùAäß²Õz™‹iµÂb#^ÿ6üY㎺QÐóÂòVZÎWR=ÓY“õ1ø¥1©LlÂjˆÙê¯ôb|»8x¥H/–6À‹åðŠ4n“"—¦½
- ¹ý
-Û,lÈ0•R^4ÛT?Þý°ÕÜû· VªúFŒ½ô§¦IÓÒIÀœZÈ3Ó©À§lŠÙ,g8»ÑTyÙ˜I‡±ˆµûjäƒ(%”/-ÚtI×XÝÌÔž(Ò"ˆXÚküA=}—Oˆ$ˆ,¾SjÇêµ:Pƒ/)'FE6™geñ½Uœó&§³ä
-’%+íMÕÂÚ[óEcy䳧ŒòVùtêwTôä¤à°¦;…ºs'”&ƒ¦¯¶8ûkƒ¡À?
-qèðŸ¥ùÿíSw…Ÿ$zühÐ1¤Ê áI᪓hgæöv§þ£Ÿ–endstream
+xÚ¥[_sÛ8ϧÈÛ9;–Ô?J7³n’ö²³M»iöîæ¶û Èr¬©-y-9iöÓ@€eSron:­)"H
+–x¹¨ÛƱÊHy~šU"®TŠÙê !‹b™í×,ñ9[ï™n´;,%hWÁ„ÿwÙeCãJúikúC¯÷‹Â·fåÏÅšçG&÷Hu~{2 bPøšŠióéÅA8ûs_ì^©I¶i¶uÕp'Î ¢ÞRHÌžpô–ÖkjÜúOóšQ4kj"µ/Ü@ƒâ0›Ú˜©Ûz]æÑ9õ/"æYEG~ƒ}Ióòd_ièL/V ýÃ^1N ¾y¶×˃èp}÷Á€±! W,¼ãyÙ•m[pW–›—Õq¡‘ðY6µÖ”Bg©Ýº»AÍ( ¿PÀ°Ä×À ëb¸.i­Ë¼…F‡í_å5MÃàä‘šåmYWDû""Q·«bG]í
+˜þ'þ|ã¯×·Ÿço¹¹v9käÅqh6Ij@ˆ¤ñ7û¦%ÁQòUÝî&Ø縉õ±ØênbŽœ‚§Ý²cû§b%‡6×z0›cUl8>tqhÔ.«Ž•Ëz½®_X‘bÆ‹ÝßÇòE¬B/Ž 1™m.Þeh©2…fXcáJ¾©…JÂK!&¥v\Çb”Úa<{µªë¦8ÐÊÁÎCÒ±:´ù—öz"™m·E¶ãØöE×´#¯ÛûòÒìm–-z›7jŒ÷Iœ°‰Å5aÃuÚ&SR-›ŠuÛÄû‰±¤½+f¿rʵ²‚ηÖsŸ—ÄŽÍÚz½â3úáÈÓYp\ÏТüz¶¸&ôl¸NëyJª¥çC±n=Ûbç›Zo|[ú“Q§­7„U¶¶9°[û+¼d¶ SµÇy“µAæ!fH“HžEÃ<vˆ¾¯4DÜ ™êóÍ•+t
+l6n'{©ŠO˜©gš°36Ò„HËF2Ý&²d Y_ïÆœû =nvÏQTÓ=˜ìú× «0Á‰GÁ€õmTÑQ’
+óÄ|‡|TCC-kÒ"£µuwõJöu[ôé³Å˜„î¬Ãv‹õy±¾‰ö44e|É [”Lh»{íÄá§Â
+|ßK|%G}¼ž_@žzÀæîJš©Æ>:c(•è#e¾¢„(¶
+”k_c¢h&ŽKÀg„õPüg>ÄMó»«¿Ý=ü$ÇãAy* NàG›k¡ ×i‡š’j9Ô¡X·CÙbG¢ä‡TDl”_ê<[ܸÎÚÌeÄÔSQèŒH/” ý’=í4E¥³v`ˆÀߌ~tÞÅFWMÊvÌ¡ÓH?–•îm de*|Ø7FÚ_wWÍ‹AOvôh/ |ìWbÁ
+¯ ÃL†4Î|ØÔX!0[„'R •çbŠxÂ@ol ýÔ#âœGýˆ6áIm¨¥¡—@°ž›ÎL·ÊÆ…}°3ìÁ49 `Ó(AÈÈ-Tæ¥a8AJ³ÏWÌÒÐ+?xÅ·l³]^^o°ð‘å¶%ž’yÈFý[гd E§-ì­ˆàŽto¢£/[}¨Q&4 ­ÜÖ|¥å8ÈÁ#¡=h0ÈSÆÔÛu–묦ºã‘=&—Ž±‰˜ ­¥L™\ÉÙv¿Û¦£H Ïõô
+^h6ÜQÓ/£’‘Mër¦þÝÂÓäÑ¢_ª©¤3šJ@:#ˆ²“©ÄæO%×ÉT2)µO%Gb‡8™SÉ@ìûÛÞ¸NÐAì%¢û¸ É^ͽ„°+³2§\Þ)œÆ÷¦òZìz4ÐeùþjSìα‹(OÇÍ1ƒD8ºÊ ׄA ×iƒLIµ r(Öm[ìôÅm bc“ÿ ætùÛ÷cÇí+0hÿ‡Nm:xÆ}Iˆd0 <#Ê ¯|©y\³Q¸Êž 3^¥ñ£ð9þúÑ0Ýê€c&>ˆ7zJ ×gý$aD¨}MD•á·ËÍØ}p‘¯‡«¹K×øppšPunÎBŽ5¦§¥U€#uÅD “Ï'(±ÁÔ¹p¦ækïþ4ÔþÌ7âͪޯ™…îV©ÍW«oèéÑ|øÀWì<+&
+ Á&oÈ°»¹G¼mfÇ-Š~V`NóIŸtóâÒH‹*w]¼|¿¬÷Õbp+<=%ì´PÈ÷Ž6×øfí¸NnÖI©ýf=ëܬ±§@6B‚ã ).¼G‰åÊõÝûs„®Þò«ÜAöL:Ÿ° Hïê—#›{³Ä‰F&E_¥â%ïa^Ë°`ÿh®›<Ò×T&„—».Ù§1Nú.ëÕ¾¢«Û"oOVÆ–ÄËYå±èŽ“žx?:}/N¼$>uÅgsMøžá:í{SR-ß;ëö=[ìw—¿{¿Æ£ÏAà’ÎÏK¶R'°GæS—2žŸ'³Í5¡oÃuZßSR-}ŠuëÛû=Åa%„ѺÁDÍè-µ«¶ÛÃy§Jáð ¤R'TjqM¨ÔpVé”TK¥‡bÝ*µÅZW,\ÌwœcRO"6ú_¶¿4šôëÌšÌ|HÓ-~ߦ{s>úv³¥ã¼CŸ³P7"Ô&±Î©o_©@È_£â·—Jrí5ŒûÓ+òt÷SºÎX1GEÏzÙºÔØ×cDëÒ¼BçêêhMÝvâÐ`ªe~¥~*A„]ÎØïÖ‘„‡ûëŸ$Ä°çacb}jë+>YUÃøåPM½üÙ°¾ƒÇŸî#&hßJÓÆõé*]³i³ûݵOš±Fx.‹êà]§»\·?°½ƒîKÈ­ö¹¸4ß4ã=ºÃ%é…±JGx ‚Ð
+¿«¸ à0=;£`Gí©„mº9h˜NÎ^ÿ"Q— ^ʆ_ÈëªÍÈßO <µ?ÞæñêÊŒË/ßÚbW›¼’˜gÄúM©¡
+>ëmìX’wlÚ• Þ—–#/t9yðÿû$XwuÊ ’däÓ8°”—ø©2“ÂE%ÑáÌ»ÿºp<õÿîàaYendstream
endobj
-1853 0 obj <<
+1852 0 obj <<
/Type /Page
-/Contents 1854 0 R
-/Resources 1852 0 R
+/Contents 1853 0 R
+/Resources 1851 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1845 0 R
+/Parent 1850 0 R
>> endobj
-1855 0 obj <<
-/D [1853 0 R /XYZ 56.6929 794.5015 null]
+1854 0 obj <<
+/D [1852 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1852 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F48 1253 0 R /F21 950 0 R /F14 976 0 R >>
+1851 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F48 1258 0 R /F21 954 0 R /F14 980 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1858 0 obj <<
-/Length 2739
+1857 0 obj <<
+/Length 2379
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ6òÝ¿BÓ¹ù¦B~³Îœb;‰{‰ÚêÍM›>ÐdqJ‘*IÙqoúßo» @‰’¯sÉ$\,ØïÅR# Õ( …ôÓ`§¥
-Góõ™=ÂÜ»3Å4K4q©ÞÌξyëÇ£T¤‘fKg¯DÈ$Q£Ùâ—ñÅûé§ÙÕÝùÄ å8ç“0’ã7×7—„Iésq{óöúÝOwÓó8Ï®oo}wõöêîêæâê|¢’PÁzw8²àíõ‡+‚ÞÝM?~œÞÿ:ûáìjÖéâꫤŠü~ö˯r´
-+§
-ãV@?T¨5¢ó²1W1Äfؘ!²Ú¶.–wo/¡R•4/ª-/áµ1ˆ‰ò ¸žƒQr AŠèB·šà¬l &à Sãgêy ëú9oxÁ¼*ÛŒâ]²h
-»x°4_K§öÊ Ð<k4Þ?“ÚØ h3Ø97Ý´ÛËô#, >ñ
-s9€/Å bz3
-¾}ÖÙ—|½]ÓÀÔÜ< óE%žH%t¾ã°zBÂMÚ¶º2E‹eÿL'^”Ù¬&XöåqÌ
-£¼ej[2LŒzt²10íÁÞ“ÃÁykÏ!ý%[o
-“‡0z©¶Øw8
-|è÷b›åõSy¶ÔÖ<HÍvü‘‘Vc…Á›íI^³»2 `÷a–A¡­°Ó°ŠêY ñ²ÅÖ(’\úàw(k‘fð*S~¡;žà±”/a _ZšÄKǺì^Hu†6¯°ÏêmxÝÖƾ©^bn"|ú9àïf*iG#R$#Åíåt6=a¢ÒXx‘ N'l ê{‚D¨Ï”RRà_0fìÔz‘×æ•.â^Õ˜š>Ï7šNþ….Ìþ@ ìÀM}ë}û­z=b•õkåÁ#Zïà?ÆîâàöŸ‚\#.n?¹¤ú­o…hÏÓõæÉ&kšvUo»€q…{0ç]Ï¥ÉÞd7ùöv
-\5ûVþ"¸Ö?œ‡ì:Å}¥It$¨B
-ªC~~ÔÑ$>X˜c4<½Ý1å°ôC‘DaèáúÓÑÒ`³:ŠÓxÀ^=Mͯ8ï•“¨¿Ìõ¦íÐï’N ÂhÈ7=‹Ø‚0°Ò÷„:\*ÿj„Ùô¾¿Ü•Lsˆö”©Ž¼'‚Áñwìw=øÇ
-üß?©ï&ƒXøIâí{?2ËH$^[¡ŒÉ%C?!ÖÅCÑÿ ±IÌendstream
+xÚ¥YmoÛ8þž_a,î
+½¼eînËpUA"d ‹$¨s8 %ÅÈ·7ÂpöÅ–›Âå!ôë5ÊünÍp#}žsF#gˆk7­m³2«Z²=úJi‘à‰{°ô–wH¯‹i‡Ç¿éCû-¶¾»µi‘7íw¯©ÿûëßzG ·€­Òc…yÿ_ÔQ‰Un7<RڦͶ¬é*/º Dyd
+ìÝõƒÇѶ3¾‚5^ÿþg,%ÝhgÎTLç"±ó qIŠKËwcéôw¨Î´á›ëñ½¿>›½w}³ÔÇ5õÊ»­`8‰%B‡ðÜ”,}ÍßÇ´ŸRC­]1€kË@‹ :Â2+R.LÛsÇMî 7ûñ§«Ù‡ j‘¶Å&mK„$ßr¸l×ÀêÃMƒ¶ÆJ£3DPÍâ˜W-–F‘Ï[?6ꇪ£¡GqèM²¥ú’Ö¥Í+Áç)íÃœ3RX¢«A½ilËÕ?ϯ?Ì.¯Ì UUcu :P½hçßD
+eT óDèÐMûÞ …"‰ãh2 ƒ&hq}>[ÌžèàÉ$*ràè¨?P$B{f¬TÇøœ˜ýÛ,Í!>-û•Ã`éó
+ª–0
+ùMÇÝï€EfÛ]ï„€ŸbżØ¾ƒB—ŸUÝ=¥-9œ 'õ&wÕµ›@À ÔÞ—úÒ(Ǿby^VájÞv;ö
+ºƒÖã×Ç0‚Bj½ƒÄe ‡„²ì¡]äø@ô̯
endobj
-1857 0 obj <<
+1856 0 obj <<
/Type /Page
-/Contents 1858 0 R
-/Resources 1856 0 R
+/Contents 1857 0 R
+/Resources 1855 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1845 0 R
+/Parent 1850 0 R
+>> endobj
+1858 0 obj <<
+/D [1856 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+554 0 obj <<
+/D [1856 0 R /XYZ 56.6929 118.8789 null]
>> endobj
1859 0 obj <<
-/D [1857 0 R /XYZ 85.0394 794.5015 null]
+/D [1856 0 R /XYZ 56.6929 93.1819 null]
>> endobj
-1856 0 obj <<
-/Font << /F37 1038 0 R /F14 976 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+1855 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1862 0 obj <<
-/Length 2641
+/Length 4313
/Filter /FlateDecode
>>
stream
-xÚµ]oÛ8ò=¿Â/8‡ŠIQ”°OÙ6éuqMÛ$ûrÙ¢P,Ú*K^QvšÞí¿%KŽ²M["r8·3c> áÏTÌâT¤3FL…\Íë£p¶‚µWGÜãR0Äúõêèù™Ô³”¥±ˆgWË­„…IÂgWùõ<f‚…pþâíùÙëW¿_œëh~õúíùq T8?{ýïS½º8yóæäâ8à‰âóÿ:ywuzAK±§ñëëó—IéóÑ‹Ó³Ó‹Óó§Ç®~;:½êeÊËC‰‚üytý!œå öoG!“i¢fw0 OS1[EJ2IÙAʣˣ÷=ÁÁªÛ:©?2!c1¡ÀˆO)P¥,–B:V–åõ:+*¶¨×¬Ù| *›WÙÚ žBÐÀùÉ›S?f(.œpÎR¥„#%ìË°‚Cî÷›ã S›ŸŸ 1àHILp2æÅ»ÿ€~y2_d ²å1ü_šEKskših¼1ͲnÖYµ0`>‘¦óÓlqë ÔÕa(VÛ÷›œ 4±›º²ÆÓ¨ËbqOã/ue†xn ¿ í­yÈD[˜™R#+EèpAÖù²¶$Ëó¢-ê*+ižgmv“Y_Öõ§íÆÒ¦ô;~+}þÜšæž0œÒvÓ¡TöÎx ƒÎYíO6Ÿ³õ¦4Ï`&“ŽØËóK"å% C&º+ZTq(½"{%•hŸ¡NÄÜ9
-~ÚºEûˆÄó ®ýR±î‘ýüñžF{câÖÞ˜Cd‚-ÖE™54qFÀ½›Ð+FUMßÄ›aB<gð
-FrT蕧øv÷€f`x›9%(ÜZ¯$ùî’^bDóÃP9‰U8”¸c<a2Ž):{™üÙ$æ]S´­©t㥢8Žgt '‹z[µÆËSø-Té]¾T"LX*"`À? î 8úá –„ªm³¶°m±°¬'Ûë~9 „æL‹ž˜)•Æ}7š‡ðLõÖæ.šY›Ê«éU“­×YC„G/+(J(¦´Nˆ O#zÅæ#Dùæúù¦1Ëâsiª´ð_§b!YÊý‘‡\ÆM½ÚZÞû±n>âåÇé/ôù0uKüæMSïŠÜÅçeó 4F 4Œmˆ†É«ï–÷Û|Øâ‹!Pµ]ßtª}Âép ~Œ@ÛÀ+ºtîi»ùÔîÀ%*-ÿUH#¸ü¤ÝüÓÕ½‡Û~ úw<2÷¶ó1÷±5ªÕˆÀõã+Œ±ÞGÿúf=âàÂì%-6‘»
-}ŠØ§LÉ×S¦—Ëðʹíï6[™éžÀ0—ºšL!-¸Šá0ßzHK¤,Ö©$‡o!ŸçÄ›Ëgaº¸Íšl*£ü‘€®¼¹+©ñ›Y[/ŠŒÒØ°¯hp…>”ð®ëÖ×­ÔIÁÏ$•"…ºu9Ú¹¡­ÈÓgÚ[šc>¯Vp‚³è_ªT­UX*žìÆ,
-Ükr,|¥Â̺ò–¯Ò²jå 1WÇÊŽ'Kh©E½t °f|[•¾ö£ ÖµmN^<,'e¶íJÂl³) c‡ãŠêƒ¼t1Å•”Ë)/§SÁg¨’wÎEÄÃ\\Së8õ6Gýç *¾å„{¨”i­:TæC„ ­°FÔ>xaŠM¹èk^ˆ-®Tó /ÔÒ·º`P/®‚„aæ×Hnð˜¶Þ¤„R·ôøË’ô¼2Ý
-³Ø”.7Ël[¶vÜð€˜€‹N…‘šß×[ä…¥èèfí-^TÅNÇ
- `µå÷^ øX’Ú…”„®™ó—Ü〢̮۱©­-nJÃȯý;íC:“‚ ©™
-û>æ| O?¨`°ïT¹i=JÄ83uü4»C!¥òÖº
-|‘
+xÚµksÛ6ò»…¿<ñð øèÍ}H§u§yœíÞÝLÛ”ÛS¤*RvÜ_»Ø JT“Nç&ãX
+†Ü¼¿ýÄmÃ$PAÑØUM5^’­°K âoJ*| bçñŒ¼ÊxžíŠ*+âŠçn‚¥(úpš­-úYá±e=áŒßö¶ó|÷À¼Ó.•-¬¿qz@ŠÅlCðm nUÛWT]×m7ð×/JÅíÖ6ø gÄt‚JÅß•í{PNà 0Öë‘Á…vêJNÐô©ώJ}pkZBYõ¼*€;þãö¾}t[ƒêjòtëÖ þP›ÅeáŽ^ ]ݬª¦`U‹èîèÚx\f(™3çAÇ/S>q*?8Æ‚·µÍÚnû½C
+õb½n÷¾3=”l±s<Š=h<Êm…6Þò,Í~³²;*“’ìqx°…£y¡bgaîÏ_ˆÅk‚±¦ö:á´FŽ+KÀ­f\H‚}@…¼н R¼ˆáÀ}oÂÊø&Ê
+ ý˜X5YÍh^HÿC3‚ÈïAëâŒÁØëi÷G†O[£E´«ðòÐÁ:""ïëzÆ2±ÅQ›Ñ|ÎÛ2/ ±ëvýÈmÃä
+Vqع¡ï]Àvº#Ø~Æ++A7(sÁÅ l§cð(Ö&öÏ©±ŒÃAØZtô ®1v]vÛ‚««ȇFULŽr{¬_Ô<˜ˆ`àæW»Ks-@û5þ^v±r{¦¸”cþŒÂPõše£XfyxŸÎ§©‰ŒeoÚ) "¯Ù ‰
+f#PEéW+OŸVžÌ¿ÞU•:¤Ó‰h™Xš‰´n˜xHalÂEˆ»ãòëÀX7ÔGnž«º\³²ò1žÂð]géA†tG(GiœC-‘¿í •žmˆŠ,
+ð-AÕ
+|E„£×Ãħø?Ôƒ€˜DþåâÛF6Üc2¯Î„÷Þݬ }§ÌÀ!æp Ǹ¡TMǪæ0°ùgÜ|6^{ïÂ\/§ìF¾ùK C;Š÷¾
+³ûºœwgØ÷)Øiz¨U'hÜÕZ8˜3:fãýkp¶Ò÷(™œ*†]… »Ž^tê$oX@2IšÇiàœ±{› 9rÞ=8ÄIj7=2ièƒa{AŸ!Çž9N˜Æ­”ãŒé•ÇâäxR¾ÃxÌƳÚÌL/nlßs¶þÐsIt§‰W
+]]mçTGeép;p S)?•G+DgØéÑ‘6&™Òk]pZ 4ˆÏî`Þ—Md˜ >N º€TŸç ¦iゕֆ¹êƒÙëÁë°4k€ª«~?BƒË
+ã)÷kË€»a3Íš2×è³{{Ž=º–¾è”SÉYdøºGx;¦Ü/ô­šÅÃÛÚ’¢´ãü£Ü
+ôÒ¡yNæÆ%=~ဠ(¨#½…khz{χ
+#}}6¿Ç/«¼gŸËÚ‚{ÿ¢I>røèà>¿£nÝIçNæ:"ý²Õ:KCçæ¯F;A'ŽoÃ(R/ƒ7·¶ Ÿy¹mvÔrvÔr1cI•„ÆÉQº{ð9P2}|xõEwðrÌR´–5œ(œ£Á6†8Ñ x#âÉ#VìÂ~Îà䄈cÓ:°Plù‘Òg¾$ QXÄ‹±+øWXÞ =íçµµŸóHg‰{"îÃ…¿m»e·.j;÷#‰D’ªƒ8@k—ãÅŸ20©GN™ÿg¨óÕ܃ìȨ$ý+Ñ„/bõÙ’¯
+¥$‘R™u4Ÿ)[
+w&Ñù2Þ$âlÈè{ÇÊ%ËÆŒa<½W¨œÐç±ãX§jOýtA›o0óCøããúË?kó+d™šÿÅ‚Jf
+|~^î;KW>üþáxéÿÊÉ€¯endstream
endobj
1861 0 obj <<
/Type /Page
/Contents 1862 0 R
/Resources 1860 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1845 0 R
+/Parent 1850 0 R
>> endobj
1863 0 obj <<
-/D [1861 0 R /XYZ 56.6929 794.5015 null]
+/D [1861 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-554 0 obj <<
-/D [1861 0 R /XYZ 56.6929 608.2484 null]
+1860 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F39 1178 0 R /F21 954 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
-1864 0 obj <<
-/D [1861 0 R /XYZ 56.6929 583.2725 null]
+1866 0 obj <<
+/Length 3536
+/Filter /FlateDecode
+>>
+stream
+xÚµkoÛFò»…¿]XÌ>¸| ‡ÜÄÉ¥¨ÓÔQpR£ ¥•Ì Eª$eÇ÷øï7³3K‘2ÝØÎþÀåîììÌì¼Ey,à_›8Œ3•'Y!Íñbs$Ž×°öæH2ÌÌ͆P?Ì^¼ÖÉqf±Šç«®4i*çËOAªð0ˆàåÏï^¿}óñòì$‰‚ùÛŸßÌ”Áë·?ÓèÍåÙÅÅÙåÉL¦F/ÿ~ö~~~IK1ãøáí»W4“Ñ㤗ç¯Ï/Ïß½<?¹šÿxt>ïyò+…FFþ8út%Ž—ÀöG"ÔYjŽïàE„2ËÔñæ(2:4‘Ö~¦<úpôKp°ê¶NÊOŠPéXMP©)š,ŒµÒN€õêd¦…º‹,vMs"ÓÀV­4yÇK]½‡Æ½ —R†™T …ˆÿض³v‘—tHIdB¡£”!oórgá¢X󛢥ÃV6ïvD ºÈ+>¾Xßt¶"°¥]Ùªµ---wMQ­iœw]¾øÜ:Ä*x]74m¿ä›Òt<“ ‘,J Œ€tc”#g[ÚS¸æÔwEw3Áh¤B!eü€Ï™JÒ
+R¯!<Î(Êp¥š´ 1;SÏrI¨âÞ÷q
+éNè9€cóò.¿g¢–dÊÛ­]bj±ö‘4Wi“ùØSÛ)퇘ezXûÐ17îþàl—2ÁÄ>Fƒ¸{6)…IªÓ ¼!¡Ï é«ò1*ÛŒäwÙÞÔ»o%6äÎñ~;z/mÞ2XD3 ,¶ê%
+nd+ÁÜÒ*3fŒ–*ëâ/Œòå²À£°‚Æwbgþ <¼ø•ó_çØúá7úþ5 JÂfã“ÔÃûñì¸Üλ^Ä9¿x?aß) û|æ‚t _7pÃÖ+ÂÈô=ÿhF÷"ûÇI¦{Mû¯IKîZ&ÄôQ³çjkÁ–åýp®­Ë[{@8G vNFïVóŽ»,Ð%ÉAšÜ{Û4‡31U°ò÷ùÅOĦ;=ì5ŞϿN%2a¥Þ+¾½x3E‰P§Ú»º¿M¦*àBO²º|ÝYD^ìÌ^·`µáT–†2K}@8{JxJD(÷Þ¼àóZp†è>Ý¡.‰Iº€4ñé,Œé,
+uÅýç29™áo‚£„ãÃà‡üv
+ÙLÓ”ûo’þ?þ§endstream
+endobj
+1865 0 obj <<
+/Type /Page
+/Contents 1866 0 R
+/Resources 1864 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 1850 0 R
+>> endobj
+1867 0 obj <<
+/D [1865 0 R /XYZ 56.6929 794.5015 null]
>> endobj
558 0 obj <<
-/D [1861 0 R /XYZ 56.6929 285.9067 null]
+/D [1865 0 R /XYZ 56.6929 336.1901 null]
>> endobj
-1721 0 obj <<
-/D [1861 0 R /XYZ 56.6929 255.1565 null]
+1868 0 obj <<
+/D [1865 0 R /XYZ 56.6929 310.8606 null]
>> endobj
-1860 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+1864 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F11 1459 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1867 0 obj <<
-/Length 3830
+1871 0 obj <<
+/Length 4025
/Filter /FlateDecode
>>
stream
-xÚÅ]sÛ6òÝ¿ÂòMÄÃ'NžÒ6ɹsM{‰{Óv:”DÛ¼H¤*RvÜ»þ÷ÛÅ.(’¢b»}¸ÑƒÀ°X,öç~òÜÛDèÌœ»Ì$VH{¾Üœ‰óè{{&yÌ<š÷G}quöç7ÚgI–ªôü꺇Ë'Â{y~µúaöå_^}wõúýÅ\Y1K“‹¹MÅì‹Ëw_$£¿/¿}÷æòí÷ï_]83»ºüöß¿~óúýëw_¾¾˜Ko%ÌWŒáÄ„7—}M­·ï_}óÍ«÷?]}}öúªÛK¿RhÜÈ/g?ü$ÎW°í¯ÏD¢3oÏïáC$2ËÔùæÌXX£u„¬Ï>œý­CØë S§øgµO¬Wn‚JM1ÐfIª• ¼º-p0Tö†Ê,1^+ÀcvÅ/û¢içå§ëîãµ6ÉTªyðräÕlU´ÅnSVEƒßrv[´·ÅŽ:¡EÐu½Ì×kŠÝôÓ_
-uË]Ã}0Í0n“7-ÁAдOg—×ÔQÕmœÙ¾èóúîòõžñÖ׎OM[—¥ý“ͧÖòàzÛ–5怜ˆKF긫‡l"º”Ý•Å=¶ÒY½#Èͺ^„£DX@ØPÇÎø#5ˆúAHVÉ’Ó窸Î÷ë$Ôì²%è&àQë¦f¤L°ŒºÊŠ
-]Ý¡B7‹(ϾžPEƒ69Ë¢v=ÀÇ8ïF xÑÜÖû5R™¹ëûü¡¡ö}½ûˆZ‘¦ÁjØv¿ÛÖ ë
-ã†Zº*›œ†úxzÐè\Rà‘ïdZYqh{ªhÔ¢no Æ;´Iv \„”^¬æÞNò࣠æ<“¬é¸Þ§|³½
-XÕ–!"ÀïÅùp:µQ¨ª|S¬&èÔ(U]4ÊG 8Á8í‚ßÕ‡
-ŒHŠ†N»áùöSËlx˜
-0Ëd*˜¹"¬FŽR“)F(Éõ~M0f!@ê=5îËæ–:öŒ8œ`CðœÀ+0nÀŒköüUKà;0ÔâWÄÁíy„æLIN?ÌE’&ldGN? ÞH)CDÞ¼‚=^/ÆFð¯ ,!Ë…PÔ}ŸÇp0Fp§mBÙãp¯³à¡vqᚤèf€h».‹æyVr½hE6ù§Ïê7§Ž#ýYÔoÉCà*7û }DC*XÙ±¿hšü†÷è³V‰4Ö=®ÏÂuZÏr¨ªÀ#Í÷CeQI½-9¯ÌH<ºƒUŠTT)Iþ
-{’¬”}LÇ`ZÉ$D¥Ä~S€i
-Ñí˜ú(ªg#lg8ªÞÔT’úÄtI$† -²zXg÷‰ù<‰£ÉýÀK9”"È ²ˆ›ø3µ Öo”Z=¾H0x/Aâ!ÜÔÒY-~ @,KPfôâ}Kƒi¤UPs€ "V ÔhÁ¸öÕ
-èhëzÅð‚sý ã?@|ò‰açÃðmÞ.oIyÎç¼…Á®1] ZŒv>¤øO8±dbAæÓÌÌþ…¶4øyèX× f[,ËëúàÌ›¤/ÔnÜÅ
-¦xÞbN%Â+ÝôJ¡À‚N(p ŤÀj“VæÄF}†éÅX¹·‘€RõñzNƒf3póSª ]¢³ŽÿM›·¡€JK×F¶(”KܸE1ÊGDŒ¢—C¹õ˜6S+ß×I'bñбÓȺ܄j‹á4ªýfrwG•SÌ«å~wGVV‹z´É‰®
-,‡U`1¨÷ð§ ?A"™$oeÀªªž²¿`º”7#©8Á­…×Þ{{(ˆƒð4ò¬?º`@¾Œ&¹söÕö”`)H'žŽæù–ÅyRÊœI”é/**Gn2Y&Ÿ˜ÉJ«"¿>'Ê V¤j\n0õ¬@ˆG Aò)MÕ‰9Ð
-‹Œ/Ä*Ú@D£3Ÿ8 ‘í®T’yï§/æÆy%Ýì CiÐj­åaå ,Sñ”T‰?ÓªÀ]WÁt6æT\‹×vÄ€1“Ú&?6hæL/£œþI±E¾—FÁÁ[Ÿ}ŒóA_ALåìDC*2Ÿ_}¸|ûb|*R¦A¦)¸”4q^„Ë1êÜÝœSã}ï6­?ïO8¾M;Æ‹d|("éÞ_µGÔ¤6‘Rˆ9ºÐ‹ƒ£`Œ‹ù iuÎÛ}:kó5…ìgàçrÐÔ:`ôÀ~9%fÿ`D.8ònß±! x¿0µj?»
-œb\È .ÉÂÉz8X±þ0WƒÁ6­i1«¼©òvß[lWù³,`ðSTÅdpEŸû†Ø`c1&¡Â#À![¯n…Æv ©g„‚YPf‡°tžj7{5•ž ¯)C}¶¼)«¼w3tp7O(3Œ8ÝòtƒÙ—ëíø¢«JÜT±oñ׋È?X6™¬;¼ZCü·¿PÎ&7»|³Ô0| ç½S®.K\jÓGl·M„<ºbF¬ªÖ÷ µƒÁÆf¿nË횇 NL¶4°³ÂÂûÂCÝ(½¡Ô@¯E½Ì_l—\T©…“£(»V¬™‹œ}>·t.!¯ŸŠ1uZNÕn Õ*ó]Öh°Y§ñÎïÒ ÔQKŒïÆ÷6Æ’eâ­8@/¿»3â%€RžÒOþpÈjÅY!ã¤)åÉ’‡ ¦g
- УJù abF/l?£&&ÂÆâ•<1º¬Çû
-¼gÕøFýD}ë|׫†êx;…×ëa¾‹g¦FoT:zÛ
-¿»H¡¥zbf®S-S¸ƒý¬:eB¤ŸU'@hM—¿öžÜÓoí´IÇÊM(j¦1xw"úsÇ)°N%LéiSÒ×&ÍoX°cÁzñ‹”Û¡¿¦øE§a'%Ýžº˜G8àÓC'ŒßÂæ”Ù”§Ð5j7¨Ý ¤1`±§–oî:+ùø©ÚtèÐq±E«bL ?
-¦ÿ
-¤Ðþ:ût ³p®©|ªþ„庭b '€›Ó^P]¡=1 øÍìb.&!-$†M[.›ùò6¯ªbÍÉÙ‡C]6¼Jæ¼+,cFWÜWšª®0s„0…•þEâ[q¥òQVX"Ä–\¶ý9hBøø/¡:±Î`5_ù˜€âOÜEòßë ªÎæUèã>|üĺù U‡‡©²O`Èãn`¨ 5ýyƒ7%?ÓÛÁÐñ£}ÙG/Ùw’$/‡ävžüöòÔãpmñÞT¼#:ÁøÃǯêK´÷j:p›T¯2‰BÊ}6¦¼{a~Lúÿ
+xÚ¥:Ms㸱wÿ
+åªC
+€#IÌâÝeibþ–Ë“™x¶}‹j¦léuöêš–·GYІ@,ÖNI³ÈZh\xRsZÓ “(:Xá¦ÊÐx‹¥R>›×Ñj_7ƒÖf&õ7à§Ñ„Ç
+¬ nm8£n–øc O«¿?¹³r‰?J:n29Û|/‘%Òfò?Ýk`w¶ n‰›
+,P1ºm¹+úC×&Ñðx­×~г0Ó«KÓSc[µd}¯{@EUYîy €±õÇ~°…ØFóŠÿû걪÷Ônz^_lyƒ¢+s¹[‹óç8³êè¿`,÷;çæSu8P‹]È£×D»ëÏ wç©M¥scÈ@æ ) )T¯½"õæÎC˜=Ô`¢–x·¨Rˤ†ï‡h\¼E‘çaVÕ.`¿-¢ý‰â)'"“@KÍl·ƒ  ÔÓ[\¶Ý2M²,Š÷éÜ<‚M\W_vK‚§á`¹»·†vn[vè-WÇŠô@O¥çºïx½WÆ®Íc1„ ¡
+ƒW™
+„N@afQäGMµáö ]ùû(óÐ*ÉŠ[ÅÁ&κo|Q `l±}›dÞõÐL8IuäÍ’Š‚ÁšŽû})Ž7+¦ˆl•U‘D¾Æ¹ª RŽéÿß÷ûýeVÞÜœ‹ö!äWÁÎlšóùÆ®úSǘî±]£ãC‹™3ÂÖú·Å6Á•Ûº}¡ª’EyŒ/¯ qfðC:#,'
+A0æ‚Zì|ÐèÈ´`âHº²X
+$-„j‘œq@¼Bøˆ|yy{|(ßÌà¯L,!K,jÓðSÂÁÁ½lª®œ‡{Ñ‚c„ãÂIÑ~‚È¿^̬ð+oF»`EŽÅ—¯ê7?ýÍô;uA¿Ej0袿TÇþH`HSVv/[ÿ¶Fë‡ §å™ˆL›×õ95QëYî=Uµ/3[;UÆ4(#W\ÁÈY9ÏãÅJI**%¿´€T!¬¢«(EÅA’\‡.
+¼_Þ#Ø¥…„:®š¾WzcÊÎâv1]ÇfúÛ632Im|ö¡Kê¨Â‚^hú9„’Ù µó‹ÿbçÑFDJQðÖÏ÷3
+4;Ë&~~ñ‰Ì$ÊEþÞ¼q ïÛøý"…¨ÜÌÞxîËYÚ8#b–DõÖçtd`3•´c4i¨öÚ
+âÄ4Ká‡yXs¿ ܧ8Œ21šJ ôW4ÊüÅvÅõ‘g‰}G‚:
+(ÌEÎ;9üYúÆ[i|ŽY²iüìù¿þþ{ø8>ƒxÎZ¹lN0¡¶Ò™@ʺ9åñCñç¤ÿ?ÿ4mPendstream
endobj
-1866 0 obj <<
+1870 0 obj <<
/Type /Page
-/Contents 1867 0 R
-/Resources 1865 0 R
+/Contents 1871 0 R
+/Resources 1869 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1845 0 R
-/Annots [ 1869 0 R 1870 0 R ]
+/Parent 1850 0 R
+/Annots [ 1873 0 R ]
>> endobj
-1869 0 obj <<
+1873 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [116.0003 382.9749 166.1092 395.0345]
+/Rect [116.0003 115.3513 166.1092 127.411]
/Subtype /Link
/A << /S /GoTo /D (tsig) >>
>> endobj
-1870 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [399.2874 273.03 467.9594 285.0897]
-/Subtype /Link
-/A << /S /GoTo /D (zone_transfers) >>
->> endobj
-1868 0 obj <<
-/D [1866 0 R /XYZ 85.0394 794.5015 null]
+1872 0 obj <<
+/D [1870 0 R /XYZ 85.0394 794.5015 null]
>> endobj
562 0 obj <<
-/D [1866 0 R /XYZ 85.0394 170.053 null]
+/D [1870 0 R /XYZ 85.0394 720.448 null]
>> endobj
-1871 0 obj <<
-/D [1866 0 R /XYZ 85.0394 143.9886 null]
+1716 0 obj <<
+/D [1870 0 R /XYZ 85.0394 690.2786 null]
>> endobj
-1865 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R >>
+1869 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1874 0 obj <<
-/Length 3891
+1876 0 obj <<
+/Length 3738
/Filter /FlateDecode
>>
stream
-xÚµÙrÛÈñ]_Á·¥R"Œ9
-úÞœ3sƒfÝQßÞž¼x­¢IìÅ¡ '·w\Æó“ÛåûièIï0øÓ‹_Þ¾¾zóëõùi¤§·W¿¼=ÉÀŸ¾¾úé’ 7×ç?ÿ|~}:&Ó‹ïÏßÝ^^SWÈ8¾½zûµÄôwéõåëËëË·—§n8¹¼möÒݯðnäÓÉûþd ÛþáÄ÷Tl‚É|øžˆc9Ùœè@yVʵä'7'mvzíÔQþ ß“*”# ”b"„ìq0ˆ½PIÕpPúÀß÷§UÔYUg‹j¶X'E‘æíø:ÒMZÔôù]ú›ïË"«³² –¤Xðk•¬Rä ¬.;ÇçOfÖòÜíÚ A"ö"§îÛ1cÔ ›Ðó#væ0¡JÈé2]äÉîT˜iZQË¢ÜlöE¶Hˆv%Ä´Ý*¨KúŸ§ô¿¯Ò%›?RKõXÁ'ËMV
-¬g)Æ ãE±™ñ"a—Uø™uZ,¹Ï""Ëü†ãVéçlž§Ý~À±ßnËcØìó:Ûº!ŒÆ¦­=‰².e^¹U¡Ý¬x·¯÷t`gÐ áö5õ,¨}ÖìªÃ_šQÔ9‘Œ‚iY8èûÛÛw5Œ8ã¦?]‚P&˜^áZQÈø>í³Fvpt½Nj‚XS
-ì¯Z`G¹³2¨ò– òV–|žíY½"A
-• ç7ÒAl¾ZZŒ³.Ê¡´
-{A(¢v姥5
-V,<a"qܾD‘§`°ÖS¡ùz-èκG¬‹Ì>HS3ì  'nD,û¡µô´
-Åa|’õIj¸ÿÛš>l¼¡à’o³‚#诬ÀwëÁ„Œù2×»lAªÚ0žÂR…;ª°$9ÏÄ*æ-$y^>ŒÝŸÈ‹¢Æƒ†ØŽåÍ×Ó‹®Ž´Ë–íò–!JìõAèÖÛ^lx{§bšÓ7‡—ô±Mw›¬¦Æ>%$]ÐcÝhwý¥ï{‘lÌjô„Mn,AË)8óPz¡êëM®Ã8ë¢1¹18Ç7ÃLˆHÉAéùœÜ#ê?ŽÈã3D*8}p dŸH4HcWB{`‡âæJ€[§HÂ!6A@-åsh<-LÜ“@’
-s¿ø‡{ÅŽ¡FÂ^¢!D´ÀegEú€;ÃØV…Ò‡ •0‘²€–j±N7I.H B?ðïÓ]E• èR6 1²'f¼’6€GDR#”±Ãm{þU)õt¹nç`u;`m×D X@¿bG­” M ±yS:…‰Íé~ «Uj`È6}+ä6øä6
-ÁæöÈƼ„Vº°R@ÄIéühzS–«œá‹u²³6àówW<²¤. ,q#ø½Lê„ ’8ë ‰©AE•/
-[âAFŸÕ±ÍŒYwÊPÇ1?©c_°* "
-Ùçü½<¤;„€PCh*.Ôq<ªÝ YwÔPp5i¾'MìbXN¤Óæ¢ã‡¤?rZçÕ…À;Ü¡â¬Q+GÀ #ŽšI£lðâ)3éf Ó7“ÌOá½æø¥ç‹Ð<}Nͨgjˆí<)ʲø¸sJ÷EMÙzcH®oä*fQнgäÒ†íÑÕ-iÈüÑ(SžÓ­_+œ_q¯I·ÅÎj[K®OÚ‚ŒoßΗGgÕû]ÁåUjÆlÛ–Ÿ
-îŽ5¦øßÇý~¼öï½çy>¸«G;-õŸWG˜¬7ÊD-“å—2ùÿø$D‡Mº»GÆHò7ŠM0VðöÁZ
-SŽá¾{{ssyÁ!^ºØï²ú‘¾HËÚÖÇÀmìŽtÑç2E>§ªŽ‹ùz: "h£‚ /ÐAˆÊ†:w+V–×]íäÆϺ(ÉÕ¯éâÅ­Þ4) ,â€ã{±NùPCºQÏÑ0Àærh )玥îÕ‚ÔpÆñaÅÊñ[‰†ßôEcÑ—MûΣRι`»ŸƒãC0¤…• ì´
-v5MYdKØVSÃÇ¢Üuœ.ôDVN*®o«ˆrk<#};°f~¡ÒF›çmj °/ÓtãV¢rM4M?cBß‚4tÅeäœÞA;U«"Ð ìH>YE‚ø°Ôc÷ 48P‰Kë΄?7Ù&ƒHÉ&¡—”
-MÙzsF)NÍ8#À· ØÞPÓQ§$àÞ½BŸ}óÑIú\VÙLŒ™Þl“Eêè©“¹‹ô!Ï
-Ê…–Š‹±Hv» ¿Ž¾ÄˆÁURyEm·*Ê6•ßQMɆ…Uä™+ã jíNGÛRyª#|Õ6wE¥ýÖ-çªFQ°’P¤T¿{é­ŸgxS~ãZõ+ðö‰¼Ž<eŒwË$– a¢ðb@¹{.>$ý¿æôývendstream
+xÚÅksÛÆñ»~¿•ê˜ð½v§3Žc;Nǵ•ig’L"! Ò(Gmóß»{{(Éqf:úÀ{îíîíû >aðÇ'ÚdÆ ?±^ešq=™¯ÏØäæ^ñ¸f–ͺ«¾¸8{üRډϼfrqÕå2æŸ\,~˜šLdç
+²åð==›yÜqÀÅŽälL (P|VP\a\›Á‚‚Y
+Ê;ÞfF›ª¡³WáÓe`Ç›`0§îÅó·Ô¯7ó_‚öC=AQ•Õ5­Éã0q:¾{,PP&Ómh[nI·òc@´T:3bÖ”$!Æ`´ 9k!κ )îÅg®È[~81 ¶bÈTÁ3æ“ÕÆâá,€ôŸ¹6²@³ƒäÑýq,h!ÞÃ¥mƱ}„(eœ2ij(jÉéÇe9_¦•ÃE+×}ŠôÀžëãü4õc‚
+#!8¥C­N¾€õD¡Ohƒê!é=ÉX R€MJ A£rŸÍØ⬠rÈXŽÌq®'ßÅX JœM¥´^d
+,5Ç8QâÄãH;³“Î*Œ?sPà]YÿB$r˜Ì£uG>¯ˆVØ_\@X•îÊ¡É[Ì)ZYÄû<ÜÕSp„ ò¸äº«*^!¯ÔÑzJ°”êŽm—Á?Òl0ÂaàŠ~cªcó§šÖ¥Œ´W¼)P€€ÿÓ‹s/¦š'ƒF»è”ДÅê>­#½sLÌ• kÍüP\ ˆ„µ§-!—`)­ðÉ Æ´J}¶´¶g]CiåÒCòÉíá以UC8t´
+e“›zòdÌIEÁº%HZ£½<*™¼Žd#ÏÍaÌY²ÇGÇk믅»nV½;´R “鋺&¢ÞB¨ª%$sÊ0?L掟¹2o!Óïfv‘0
+úé%+Ð?Ä@°¡ŒƒQ™›]9'Sc˜Oá/™Â
+{Þµ‘áØÍáøö¹üõQêÖ#Ï»HÞ9Ÿ®¨ÓKêl‹ÝºlˆBéSNÒå…50Ôœ¨Q²ÌŠÖMÅjÁÀåzVNÂCh¡ÐS~¶ËMg]#.×CpŒív¢Šƒ˜S@x$Œúãl!Þƒ¤„Û‡°@ô‘ µ–•Pøæ[•€°N’5„Kk8"‚ ª}?).SÜùž’U
+x±6†Vcí?¿ý4Ä”*yØF¨ÄzÎûôá™Xÿ—a$«3¦§¡‰a†^­iú—Ijý­©Æ³î–`?û‘å
+ ½Úl®W±ý|™ï‚‡ö³·¯ãÊ Ä„E±£þ"orj‘ÄáÚÔèZPôòë]¾]FH ©XÜÓð_ùMN_xF>I2)K=–űböv»ŠNOg>½S@kQ€›^P;¸AFåhø†Ãïñy,ôƒÌa#Éœà,V™ï†A#&Vxü°¬-l¬Ô
+Pp^ Ói£ïµ±íŽYwËÐÆ!ßicÇ8LdG6ëFãm !TŽO ÅøµÉ˜NkfECó{ é¤?c$ô)U=mµ;‚~(bÕ)¤ÕG¯†:Þ(N¤Å]£.Ò[`ƒã'}¤Ãc¥ûŒ¸ËE¦ ®ô=ä1Ü»/ïF«û"cܸ;o¨]t÷ `ýÎ;¢â
+ÓÅÉ£O…exf4ñÚôPfuW½(’5‡K{®¤%—·é]²ˆ{z˜8žÂYßîÚÊðá³ÞnªE|– ï|°‚ü°_œÜÕìwU|U¥a,²mãËÿ±Eks†«Í¾ZÊqÃwº±é!(Å/àG.–µŸ5|ö‡ö‡ÿB€0I:'Æ¿ñ˜œ;
endobj
-1873 0 obj <<
+1875 0 obj <<
/Type /Page
-/Contents 1874 0 R
-/Resources 1872 0 R
+/Contents 1876 0 R
+/Resources 1874 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1885 0 R
-/Annots [ 1877 0 R 1878 0 R 1879 0 R 1880 0 R 1881 0 R 1884 0 R ]
+/Parent 1886 0 R
+/Annots [ 1878 0 R 1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R ]
>> endobj
-1877 0 obj <<
+1878 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [370.941 719.9611 439.613 732.0207]
+/Subtype /Link
+/A << /S /GoTo /D (zone_transfers) >>
+>> endobj
+1881 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [134.0621 486.6122 267.5615 497.4265]
+/Rect [134.0621 178.6003 267.5615 189.4146]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/)>>
>> endobj
-1878 0 obj <<
+1882 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [297.4503 486.6122 448.8825 497.4265]
+/Rect [297.4503 178.6003 448.8825 189.4146]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml)>>
>> endobj
-1879 0 obj <<
+1883 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [353.8228 406.7994 511.2325 418.859]
+/Rect [353.8228 97.3808 511.2325 109.4404]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml/v2)>>
>> endobj
-1880 0 obj <<
+1884 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [55.6967 396.0896 69.6444 406.9039]
+/Rect [55.6967 86.671 69.6444 97.4853]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml/v2)>>
>> endobj
-1881 0 obj <<
+1885 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [283.6482 396.0896 453.0131 406.9039]
+/Rect [283.6482 86.671 453.0131 97.4853]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml/v3)>>
>> endobj
-1884 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [432.8521 194.7399 481.8988 206.7995]
-/Subtype /Link
-/A << /S /GoTo /D (DNSSEC) >>
->> endobj
-1875 0 obj <<
-/D [1873 0 R /XYZ 56.6929 794.5015 null]
+1877 0 obj <<
+/D [1875 0 R /XYZ 56.6929 794.5015 null]
>> endobj
566 0 obj <<
-/D [1873 0 R /XYZ 56.6929 769.5949 null]
+/D [1875 0 R /XYZ 56.6929 612.2421 null]
>> endobj
-1876 0 obj <<
-/D [1873 0 R /XYZ 56.6929 749.0409 null]
+1879 0 obj <<
+/D [1875 0 R /XYZ 56.6929 584.5745 null]
>> endobj
570 0 obj <<
-/D [1873 0 R /XYZ 56.6929 357.3808 null]
->> endobj
-1882 0 obj <<
-/D [1873 0 R /XYZ 56.6929 326.1646 null]
->> endobj
-574 0 obj <<
-/D [1873 0 R /XYZ 56.6929 245.5328 null]
+/D [1875 0 R /XYZ 56.6929 484.3174 null]
>> endobj
-1883 0 obj <<
-/D [1873 0 R /XYZ 56.6929 214.1573 null]
+1880 0 obj <<
+/D [1875 0 R /XYZ 56.6929 450.8755 null]
>> endobj
-1872 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F11 1353 0 R >>
+1874 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1888 0 obj <<
-/Length 3651
+1889 0 obj <<
+/Length 2896
/Filter /FlateDecode
>>
stream
-xÚ½ZÝsã¶÷_¡·Ê3gH$OÎ}uš\ZÛi§sw”D[ÌQ¤"RvœNþ÷îbüéœréè,‹ýøí‚r&à'g©‰„vñ,qqd„4³åæDÌîáÝÛÉcΠ³á¨ooO¾ºÔÉÌEÎ*;»½ÐJ#‘¦rv»z?ý×ó¿ß^\Ÿž)#æ6:=3VÌ¿½z÷†z=^ÿøîòêíO×ç§I<¿½úñu__\^\_¼{}qz&S#a¾b
-/L¸¼úþ‚Zo¯Ïøáüúôãíw'·Ý^†û•BãF~9yÿQÌV°íïND¤]jfðGDÒ95ÛœÄFG&Ö:ô”'7'ÿèÞú©Sò3:Lª’ *9%@ã"«•ölwû¦ÍWgŸò§wsÔ`ŽI#'…‚…pð&{‚íÇé|‘Ó³É[jdþéæíšß´õ–eþ—Ô¬ïh…xÈ•Tpœ‰°¼D•mòU´¬«» n¬Š€Žä¡õŽÈ>íº¨˜z<ùã©Ss8N-Åüꎺ æ¶hاén¾¨Û5õlËl™7¯x3ëü Ù™á H©ÔÍΤŒœ1Ês’íNe:÷;Wólµ*Úâ!ÿÖvîë_¬òB¨*_á_Í"SAd*ˆLõ"ScÊEµÎwEKÔ|ñÄ„JŒ»&–õ|±o©ñÂúŠ÷¬Hd4ùÙšz^W%m]Œ·¼o<0…NüÐn×~WÐêO€ŽQκÙwHK[<Jãi¡Ý) F(„
-&éíí9ëg
-N/Óx|ºŸ—’6jüàeÆÇå}½AÚò‘î·lí5=AÏxL¶oëMÖKðIO§RJ/
-võžçU›ïà
-ô¸ÀiÌüŸ—¨…çWßg5ÛºjxÁe½Êñ$ `ÈŽZgâ¸ó´EµgÕßßòxsðÿüQ’¢$VýôçǦ4øçô‘Ç0<Úóc ¶}Ài屄wA!)è8„76Ö«;ôJÍ×õcŽ{±rQ”†[y‡Oà_Y4´Sh{Ï)5•VÌÔöè€!D§ÓÃýúe`ÉlÕsÈËNðÊÆŽÍ%é—çoµ0
-RQxKåX>(ÃÊÕêlñ„m˜¢Ù$6¼óÕ)¯
-¼*´¼à™­2Ñ”8 éF’ Q÷„@IÀF‚ØDtƒJǧ ìnÃ=³!Ä’?ô?’̆»ÜUVöI4ÂF&d$ï~•.Žc"„ËH¹Ô~~“V{°I î#<ÉÙ`Ë ÝÂQﲪ ú› Dï5:Œ~{l9ØxèŸ!fͯZ꬙•M=ÜÛ²†øó[ÎËr¸ŸA¢ç
-T'pé!Þ‹°ù—}A ”[äõ`Â+¼F°öËž4Ž#•Ž“I‘Ä‘Òêhg!U:u~
-j»Í³]CØU™í†î40Xås])îÏ棸«>›dgL…/|²SNç[™>×$õ…ušø2¸0Q$˜ÑÖ>~@':…¼ôN ô‡µ”Ö짤¨#VS…A—D
-}ÙZ§&„ M¥ÑØ_4Ìâãš_eÍÁ¶ØSC#M‚%VGB§ñ×ã.§¦‡Óúè,I÷~i8E–OoI2Ýi:ß3†þ88EeK⨳]ÒÁMý@SdŸ}??„¦ˆ3Ž(ÎÓIbÒÊ X˜Eràd §ƒxÚ&ÚƒZE‡ë ãYxNÉ56äWÇ»Õ8ŽÝT㨦OX›½hOå<üW—ÚðƒŒ¬Ir¬Ùd•°=§Â ¯ÉÌ(bìæU)Ðû]rOÁ|µÙ§œ»X²¨3 {qvNzøãõ3cÙb]páÞ¨òØ®ëË×Ô0BÊеɰSeT•2‚}G½Ì›fƒy{”Nõ ÿ h˜8XP'c­þv‡|RØ \^†‘.&éíÑ?:IV?ß
-µßtÉZŒ>·Yï¹"YÌéï;²æÀFÀ”¨»PŠÉê óó¾V,ql.t3wÙ§V¢K¾ÀÊê¢âf]¡›…ìj_9™Â àdWËxÑ@ÉÒÞ°!1õ‚—kò¼ ÜLB\A–š ‘„Qj¢&K‚y,?…Åjzn2_ EF%e1VêíX¼çÂR"y.¬ƒvõÌ‘ç¢"hCC²’qÀê)"}¾«1dÅWTUî+§jløfUãR¸'Òk¤tGo›šß\
-`Õ5&Oˆ½$xÙÉ7±ß;ë«cÏ®2`±`M‹§{ìT0ÆÞÞº²Õ*ÜDÌýSv: kXž©ò_[.ÔLÇ4‹’ê#êQZ=‹iH7»k}v„M^Ó_bkŠb^”hEÉHöheˆ'x°‘RÃÐb^P¦XD±8ÚøSüNÁN]ÈY××Í–5WÎTÔफ़éŠWIïü.À_Œ'ü¹B¸gëoâ†KB¨ƒF¯IÚÕJÒN üõßò`?$h0HJB°L»À'AŸglâ6¸âû4ºŸß¾õñ§‹1}•ŒÜÌTwRþÀù÷GGøsÏ;—µB=uÉ T'¨qª…Æ®-B¬çY¶ÂTå…«W-Ud¤³_–ëN`ÉȺä0u'•ŠE%R&ã“xa%hZÉdô5 ú™*€‰pZäxVǤ<ðù##^ø.ÆH»ã/Ú=êöù÷ÙÄÇø)
-¿{-hð¿<PÔádµ‘…Á‚þù@‰%êuVqa7 EpèæëÉn  —w¼Ð9Oçò¯Ïמh •Êü vLŽs„'P›b‰6I÷ ¯(Â+ õ“—Ä–/AcÏ®h[¿=ø ¦VFŸëýÎßÓàú«©ÂI"%Íê÷’Ž~®Ê)i+Èç•SƒBŽõ…œ'f"2´ðw!0¤*Jâƒ4wƒÛXq}«Õ¹\Ð'ßTÇ—ÞB]®öÕu庞mÝ4Å¢‡‘ø‘ØY¡Ÿ³ Ó\_L[ò5
-ק‡u¶Þs*îSFFûïÎKœ¤·ÙRLÔöþS ÿ§^‚R³3zhkAOªÐá7&±2óŸÊ%”;(-á4Ž¸?Km,À8£ Íî«úK±1M‡0Üó‚®›ü¥*µ‰ðKȉO E÷µÒÿüÁeÿ5jœ`ÙSõßRŽö,l”‚ôS¸s'9ï¾Ì|ÎúÛ“Wendstream
+xÚ½ZÝsÜ6÷_±o'ÏdU‰%ñòä$vϽ6¹³Ý›¹IòÀ]Ñ»šèc»ÒÚunú¿@€úØUjw:wã‚‚ øÀu¸à/\dÒ"/Rû2åb]‹ |ûþ,dž¥cZŽ¹ÞÜ}w¥ å«D$‹»û‘¬Ì²,\Üå½·»øÇÝåÍùRÈÀKüó¥LïÍõûw4¢¨yûáýÕõ÷?ß\œ§±wwýá= ß\^]Þ\¾{y¾ 3Â|Á¾1áêúÇK¢¾¿¹ø駋›óÏw?œ]Þõ{ï7 "ÜÈ/g?‹¶ýÃYàG*“‹Gè~¨”XTg±Œ|G‘)ÏnÏþÙ }µSçì'£Ì—™Hg (ÂEúJJ1± T~‰ÈZ7-B°@^·?´É—_ÌSK½ítg*Sw¼ï½®*½Ç}w‡£ã K‘øq(+v*)ÙÿÁI ù
+-³ìõæ¶Ûõ†ØêCµ2ûߧÇü¯­ØÀ $·øxÊ÷ÇåÚæ£ïûŸ?Û5–³ºÿöšŒ155è#_¦áÈÈâ¥F~g>¨‹®hjÑuNÄÏ­Þ^P|Ûúw[Ók50…Ê“4æ“:•>"x\À'4h˜^Nš–ºïÞßÞ^¾%º5ëþ螨·?3¯iº.V„΢uÂÚõ¾X™œ‡ëã['îFœ-ø"T
+XSÞ…³ç’¼/±/•L=½7vöƦž5/´î¬Ð¼Qà=nMM:pK쫲X Þ@Ä}³'BSS7õRºmëé®xà¹_›Ú`·Þ—ºy¬_!-½Õ•YëºvŠ­xªõTÙ”OÓKL7«Yuº°zGaÚÒö›- €+½"Ê°•=Ñ+³Ö‡ÖP§è°•V5’aú¹D &Ãm©f^ËÙiÒ»>™çV:Ôm±Ýý¹}¨×ÈŽ÷6:ö·º¥‘•ÁS¡uSãùmØT9Od>MÝnžyö:S†aè¡R¶ƒ¤#ÂYÉÒÝT0܃›°Õ¹Óç<ôH¥Ð{Ðe‘&×Ì´#k>˜z“‡ãöÑF) j4Ú6垢ŻÐf×1<ö 4¯Ý#ceÙ3\š¨‚yÚÃ*o*ð)–ÛÜó\þ< —k8ÁÌWYÙ½\ØÕ¢Ôc êS ‚i講=oj×Ô¹)8Œ~ÒcHݲ CšPï°¥Ÿª4y!bgÀ¬Rff%é¹ð敺†Zó+,O$±nhJ^š–÷d íãV3çÈó)$JÈ8Tzí>aBœx­&OÄ3”w[TE©÷å}%‚Ž6(P½u€ž·N
+‰ È^lœ,Ë37µÓ
+‚O­W˜èDø®ÒP;” vtk«ïþÉ)]?Q6õÆì_£íß0èw/;`_fGße ÔÜ^ÞœKéýë
+½ðâúÇñ,,A[^pÝäX}KÃvúÐ:sY'äõE}putÊ—_Û³GI” ÜôÓcà¿RÑ‹+ˆ6S™ðÝ>Ò´¶¹Äèi„ïªP¥jzY¯ï%„ð¶Í£Á½Yy„$†Ò½|õhúüz}ÝŠO5µsn&!¤™Qòâ€ñÜs¬]–Ôù !/;£+_v$×ä_V¿<)
+VP%¦YxTS ÃÊu¾\=!}TâÑÃB6”nîmPy®jÓùƒ†áÏVó‘ª4gÝ3v
+¢÷Ö¾rô\ŒþHÐuHâ1>CÌò®;­©Ë¶ïmÝ@üùjxY÷‹¥ŠáÅb
+‹}EL.RW'Œò0ÂO}ͶÐM†¢|mtË¢-E?˜Êár¨¸éu FàkËê.iËR+Hb«â+‹éëöÒ†Šó¿c(ʈQ< ´G¥µ»\˜Œ4³Ï3s— ô£¨œy ߌû'­qäJ÷&ÓROSSÚ?¤ì“E»A‚²e;ÔP»â/¬Ú.KÁk¶Ä¡,RE ùLå^Dp½¦VÖ/²ÀO3ü-flN€ULC¦}Qˆ™OaØ:nÊŽ-—à91Ð âXf¸{û²‰£EeŸ›³Ð¥°‘{üKsOðµ2æô2b÷6禴˜Æí;30í0š1ÈÈÂâ£qDù©Ðë/~(Ú™‚¢d..ŽŠ­¹ó—~*#WCà¯F™taäWF׬Ë|ÀMS ãøÅñGE2q6_¬_Á¢ýS k7¶{êmB9T ý@eÙ X9:z”S”‚‡v¾:t‡áÙËS‰8ÑÒ?V!‚•ÖßH¥R=K{~°³!bÒKV¢õ û L (Rë®×Ò¦xßL›9D Ý|ëßøïHúø“ÿÌïŠA_ÿéÿ,þí"†²2ËÄü/”„»L¨Ô)…ûQ'š÷ÿ‚pªúìñî‹endstream
endobj
-1887 0 obj <<
+1888 0 obj <<
/Type /Page
-/Contents 1888 0 R
-/Resources 1886 0 R
+/Contents 1889 0 R
+/Resources 1887 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1885 0 R
+/Parent 1886 0 R
+/Annots [ 1893 0 R ]
>> endobj
-1889 0 obj <<
-/D [1887 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-578 0 obj <<
-/D [1887 0 R /XYZ 85.0394 719.5795 null]
+1893 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [461.1985 616.4281 510.2452 628.4877]
+/Subtype /Link
+/A << /S /GoTo /D (DNSSEC) >>
>> endobj
1890 0 obj <<
-/D [1887 0 R /XYZ 85.0394 689.1253 null]
+/D [1888 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-582 0 obj <<
-/D [1887 0 R /XYZ 85.0394 610.2286 null]
+574 0 obj <<
+/D [1888 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-1497 0 obj <<
-/D [1887 0 R /XYZ 85.0394 579.615 null]
+1891 0 obj <<
+/D [1888 0 R /XYZ 85.0394 748.9522 null]
>> endobj
-1886 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F39 1173 0 R >>
-/ProcSet [ /PDF /Text ]
+578 0 obj <<
+/D [1888 0 R /XYZ 85.0394 667.6879 null]
>> endobj
-1893 0 obj <<
-/Length 3406
-/Filter /FlateDecode
->>
-stream
-xÚ­]sÜ6îÝ¿ÂÓ—“g²Šø¡^ŸÜÖIÝiÝ\âÞÍ\šÉÈZÚÖD+mWZ;îÍý÷P+­é¬¯íìƒ(@
-xž(ÊI^)à PsɃúT.wêS¹ õ!Ô©!îÈ#UØÉ\ °ÕQËæ.®û*î67=€]ç©ò{
-\ ‘ªÊÞ¢Ëщôô'¬ ·å@ ÔB¶=ñ/§t3S¥o&XœL„Éc b÷2!G°*ëv°mÙVì„ÖdŸ•íÙWÕÞgmëf`P;ê}& @òY®*̓¼cËî’"ÃÄGvwv³©—KËðkbpb
-0XZÔO9ËøXg.¦ÁcÝÝÛÍõ]l
-±Ì‚ÇÑ–‚u×´Òç°å°»'5v˜cu†ì¾îíÎ1O¶ýý8¦ÇwïhðÛÖR•A^u䯭ãbA
-Ó[r3×5lÊELíÚ¶Ë1/ôùÝý-g¡”
-Øtç¹ð†ß]ï”ãh¿ëC9*ð’%Þ{Rôb “2NSWRMœ·ÁD6Q™ç
-ì<È¿Iñ“F@7gñ)S˱ÔSóºqƒ'M ÒЬ3â/™w¦Ùc6Àr…)ôÌÞ°•W÷+¥¢ëOôk[Õè×í+ÎTSUÊ­fbÆäÓ6ŸéXdc&ŽvˆH ˜"c<°5ƒŸŒji¯ËmÃ;q•<ߪì=µTr~VKWK‚<&§ÊbQ*såÏy›á˜l"8s÷PžoxB[G•cM|Pz*Ö*‘_”¤€Z§éÿ#½?‘£#*ýF›ž77”ŸBÙ&$I9úÙ½<k«'ÒÎIƒå¶®°ÊÍ´/-ï°3
-0‰™×Aò]KNznЭi¦±w¶!†äÉ"1Šx»áVÎò5œšçÕx]M ¥O©ó8O÷êv—|7OlÔÓˆúz‰ÿ‹G1µÌ|¡^PŸ–‚eñ”¹dž;cB7,€›Ó^ù[$ã¸ÿèÙ<ã¢÷i,M:8ˆ¢eö3¤MU=kÓ
-|cò?ø ONæèØ{Ÿm$ÎE…þŽ€ÀB0@]²ì ÂìÜÐ5UPëú€1ù;ãßô9a¡­úHG»âmâ±¾·S øKp9Í©13z=Ëk‡‡5žöI.ãõWH–ÓèmÏuÇ~]u3äVlŸô†a×*N
-=n[îÝDå“ý¯¦7Í{¦$«—/iÉ¥;|8ò€Â1×l8Ä{7ð¸é­µþ¿j:žu™-’Øý^_ï_<û¿ L¹{³áÖ¾lvǯÝÜÕ¿ Ý“®<Ò_Lã§þ²’ÃÿÙþ`—Œ×Ìúï|»ÿ:ê<†rR†ÿ©'s°¦0S¸##qîÿ÷÷˜õÿõµ»6endstream
-endobj
1892 0 obj <<
-/Type /Page
-/Contents 1893 0 R
-/Resources 1891 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1885 0 R
+/D [1888 0 R /XYZ 85.0394 636.0345 null]
+>> endobj
+582 0 obj <<
+/D [1888 0 R /XYZ 85.0394 425.9376 null]
>> endobj
1894 0 obj <<
-/D [1892 0 R /XYZ 56.6929 794.5015 null]
+/D [1888 0 R /XYZ 85.0394 394.4436 null]
>> endobj
586 0 obj <<
-/D [1892 0 R /XYZ 56.6929 675.8159 null]
+/D [1888 0 R /XYZ 85.0394 313.1793 null]
>> endobj
-1827 0 obj <<
-/D [1892 0 R /XYZ 56.6929 651.4464 null]
->> endobj
-590 0 obj <<
-/D [1892 0 R /XYZ 56.6929 522.8339 null]
->> endobj
-1895 0 obj <<
-/D [1892 0 R /XYZ 56.6929 492.6901 null]
+1491 0 obj <<
+/D [1888 0 R /XYZ 85.0394 281.526 null]
>> endobj
-1891 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F41 1233 0 R >>
+1887 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1898 0 obj <<
-/Length 1144
+1897 0 obj <<
+/Length 3792
/Filter /FlateDecode
>>
stream
-xÚ­WÍSÛ8¿ç¯ðp" ËŽ{8Q6°tÚ¦é‰2Ç–A‹m¹’’–ýßW²dÇ`|Їõ~ïû= Y¶üå{Ðvƒ5
-г‘gEY϶nå¿ó2g@u4O}šöŽÎÜ‘À`è ­iÒÀò¡íûÈšÆׇ§Ÿ|Ž'}àxöáö7´?]\ý¥w=œ~¹:»8ÿ19é‡Ó‹/Wz{2>OÆW§ã>@¾‡$½cž!8»øg¬gç““ËË“Iÿfú¹7žÖº4õE¶«ùÕ»¾±­Xªý¹gC7ð=k%6DAàXYoà¹Ð¸nµ“ö¾÷¾Õ€¿%i—ý<ׇžïŒ: 8@ "dž=¬‘À¡ë¸¥ŽŒš÷Áжט+­$4p\ {P;:Òÿ¿2º$1Ö‹PÍŠ ³¹$x¥g4Ñ£¸3¿ðC¨NBIPñ@ž‡Z<~ÓÜ<J1Éo ¿8f˜sÌÛø$˜åaªWw” ÛøN‰¿Á=hHr ·þ”®ý¡çµéĺ0tYÈ%«ã.á’nƒJ.Ï4 èÄÿo‡Ÿµ;´×6F–Ü4—×õ¨ì{ŠèÎX45V‹R‚sa ›SQé+OâX/æë;_ð^Áð’ÐßDC§3JhÐbûÇÈ”¯õ¬[÷ŠÑ' nln¢xi–³%‰ÌBÐ*úšab8wʶ•9}QŽ®”a*‰De»·$…óLRD4!É묠yj<S,æ)‰ªUE2YȼŠËw%†@ßm—¿’Îs‰Qy¢‘[ø/&jü<:sUÓ$Šù`$‹àHûH•tg$ë»]›P•ïï"8“þ7Õœ…Y2ת™ÊåD®çnJÍfy˜™åu”†œß´,fBeÿRr]ç&]_ ÌÖíüÐUpVfÐ,%\ÔÙRŽ7]^xŠ ªðþ0XÁÂœ'˜½¶Ã‹"«æò²j8 ëZtîù}Ý÷f”ÍTª¿Šç²E@÷x­ 6ø
- ê€IiK®ÛŲªOù"›«øØUŸ‚ÊÔ7R¤4ª`[vÓggúìŒ-ªÌ¼†ÞìãnNl$iG&)fÊ3³ LÔûja8è˜÷]8ô‡N§evÅ))z%q‡`‹OK*‹Múi{ö*dùc’ô‘Üæ”a¹‡Z _²ŒFÌÞ‡žÂ­HG!‹÷TMÏ‹d#ž)©Z¢$lmhik:´37Æ·ŒˆíŒØY阄é¢hÎg´u7ÞAMËQ]¸ê“;ꢬÈAB™¬.» Ù´Y¸ÚËÿÒÅæƱ·,ÀÐN~W
-ÉÙŒ8ÚÅ ”­ê°Q:¨:õ˜ÆÅ^ZÌÚ÷´OÖn5ÈCÂÀ<äosiI0š˜$²9á<ª²}Ÿb]ˆ¬
+xÚ­Zmsܶþ®_¡o=ÍäX
+Øž“aÐ_ÈÌ6 ÷~‚W­[ÏÜ%÷TLW_|.¹ËË>ªÛ‚Yãõ¼szx+3t NOõt]ôÅuÑ•ä΋fM àǾ§&O ¾þÍ+j€cÔúì•
+[0ê¾l
+oNØA¾£]•]—øõSXœ¸.¿®·G²Gÿ°ïzzè«m,¨“6F5/Â\%—šÀ\/¯¦£yïªþ†Zý ,¬~¾ÚŒä|:YðkP¹ˆG²"ÉþmÖ ÓÌ‹gß”ýê¦d:ûÀ•×oßýýüßÔ¾¼ìÊžíCB4 xSVDïª'mÍVìŸH‚Ðø¥m¸UìÊŸ‘«XæÐw 6 êà ½Îô'd§ã‰HîÐèvåªò.ž'ñöÉC
+RI †6¶‰j58òÁDÁ£+“-.6̈ ƈ™ÿ´6pÒk°ç¤o’…§´éšµ¸«>5%†*Öû†Çξ9t%›IÑÍlL)Œ"³ÆAôÓ”wÁVóL9¦`+XbÔ\Þ U—+zjíÚªáfÛ ŸU9°¦¼… à€D¦Ÿ²$в|À7lI<{ÅËueÙjb¢¶*‘àŸ‘R-å\Ò¼$ØÇêsX¬¥ß-xB&„­•µAdÀ5m¦Úà]—Ê».•±Ñc×ÄuaÇü0¤¨¬yèu‰*¯††rÄW^ÚØ ´
+BG|ããè¡}Acº>tx|'Ô#ò&Ĭž=]ž_[15MÛSƒ,Ä/ÖÒop.ôT4Ý]¹ï^àNÉb/1^ |ÆMv„Æ–ÄÀdù ÀbÁœ®ïg9D¨`GƒëúvðóÞ¼›Ù·¿ÎPÝ1®âƒ¹ÿÜSë‘ fÐ@ò'ƒšÂ åAPÃy‹M_î¹ÉkÂ$Ôò¬”à%=+#pEŠDáÊFh€ÜR4Œc‹~D™²4ÉÒgŽ©š‰¿4ÕÀNVížÈ\¬¨ÀK=Ð…d°ìð uWÕ5µ®¹g
+}­ŏX£Ø<h´‚ ™¹æ(
+ý„’ Á(Ɇhi»
+„L´pæ·e»4 É¿'ï¤SYš'V;Å#+IÀÓR•<8š&À‰ ®tsHÝ·;–2ìš¿ßÄà¦N!ñÎ~ÚDðÑòÒˆ„ƒ£c`r[2œ™°‹E—“ =U– ëL0GãÍÑçL· \•[Pnè)úÊÃiÓãGC‚6$h2œ…{'Î=÷a®®çÀ
+yžÈݱº`@…ÿå±¢
+¢UZp… zò¡~W7ص/‹X¾JyÇbqØaØ\óB/ùsJh”OÙîi`ÛßæƒM"§iÂ=èMµB£~¡¯(Æ)õ“ŸÄÖuÉ=ûªïýöà\@K­‚~~lû¦àOˆé_ÅjÚ&Rèð÷œN~lê·%¤ôÒÉQ-ÇøZÎ=j*–¶Ûr™ØLO#÷±æW;)u¹ O¾3¨Ž¯¾…Ò\Û642ôìÚ®«®‡q‹ïˆœ5::c¹žæŽõ´i´|Ål\j;ºNéXuä$ƨ GW],TplË1W;€®ßÓC»¥æ`õÐV)ýR‘®CžJ½x‡ðS:û¥ìA*Ò0O#–Üdb ‰2
+ÊÐ,=„¨5):æùˆ{ZpÃmW†*›N”KÅ,Ë»k)Ä’Ì:
+©+_iB½[”?îC ÷•ß[aÝ»<o¬;ý»vÿy@ÇüºÝSÈÂÔ¡“Ñé-KÇÏʇ-“Ql© ¯¼‘vŒx57¬6‘­˜åö¸6…“›öP¯§!¦¨ïŠ€OCná5”‘qôç6Is#žiš8§B¤K`Û‚¥!"µ.Ÿb`ÈÌá}Êlœ‚®›qÉéDÈò`Í*w!øµ;?̯à9.,GXá«æä|òiAX§Ác£öŃ¹iöØ2°ÙÓÊ/Ž%H6L kÐy6O¤}H!yþŒ£¤°lÐ œwä)†é,ÉœžAXì]æ<Ú7äXïèla¹RísOéñB`±ÆØ©¤ê¶ý\tÕ:VÞÌAOô‚J¼ `%tÄ•'&Ï”ú"¾ÓJ?#¯rÒÎtÍ4Ň 
+‚å®U—¾»»aZqm¨èÎy¨ýôå®ØCx9P0ö=àp‰96âpŸN—xÜËËu»ºâ¹hGØWö‡]J\€—}LÁoŠ[šFS©–È•ÎCÝW»z¨W ;»h}ó¼XÝÄArú щÌDäÄU ¬õºLumÊ.¡—T[>c!€
+I,ÀTƒnW¬¸Ÿã™!•œÊBOÇueéëÄ£uºÃµG&ã•ØÃùúº^¼d Á #f¦!41½%Gä‘œ $6· ídÃðà1¼«zÔµd >FÂóÅ÷ü18@ºÑ…üh4õ
+µõÁäz:ã[søÉ Öå¦8Ô¼Ÿ )Eó„R €vdxpb«…Ï%ñöÎѪJŒ#xúqÑ ïÜÆ—yàןtWáöóyb[…èkó!'~’{*ÉÔpy0Î=¼¢–iýk¸—ã'rpDEØhݵÇËK‘¥üŽÍëY‡.
endobj
-1897 0 obj <<
+1896 0 obj <<
/Type /Page
-/Contents 1898 0 R
-/Resources 1896 0 R
+/Contents 1897 0 R
+/Resources 1895 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1885 0 R
+/Parent 1886 0 R
>> endobj
-1899 0 obj <<
-/D [1897 0 R /XYZ 85.0394 794.5015 null]
+1898 0 obj <<
+/D [1896 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+590 0 obj <<
+/D [1896 0 R /XYZ 56.6929 379.8023 null]
+>> endobj
+1826 0 obj <<
+/D [1896 0 R /XYZ 56.6929 354.9028 null]
>> endobj
594 0 obj <<
-/D [1897 0 R /XYZ 85.0394 445.2582 null]
+/D [1896 0 R /XYZ 56.6929 225.0837 null]
>> endobj
-1746 0 obj <<
-/D [1897 0 R /XYZ 85.0394 417.9153 null]
+1899 0 obj <<
+/D [1896 0 R /XYZ 56.6929 194.41 null]
>> endobj
-1896 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F21 950 0 R /F22 973 0 R >>
+1895 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F39 1178 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1902 0 obj <<
-/Length 1201
+/Length 2085
/Filter /FlateDecode
>>
stream
-xÚåXÉrã6½ë+x´R„àÎòÉãÈOe<‰¢œ•
-&A1·! Û²5ÿžæ&‘5CÊÎ)¥b ñÐ ¼~h(*üˆbZØr5W±]›*1/©Êô}‘êT„š_}˜~¾ÒmÅÅ®¥YÊ,h`9Xu¢Ìüù™…5<õìòËÍÕõÇ¿¦cÛ8›]¹#ÍTÏ®®›”¥Ó‹ÏŸ/¦cD“œ]þzñûl2-»¬
-ãÃõÍ/e‹[¾Ž€N'W“éäær2^Ì>&³­/M‰ªçŽ|ͪâƒÛŸF*Ö]ÇTž ¢b⺚ SǦ¡ëuK8úsôÇ°Ñ[ í\?¢bM·´Ž4Hc[*@Ù¦‹-]Ó‹œ‘¥ªg}Fü9ÈP˜Ü!Á_XÙ¯¢[–•åóòµÈ}†‰!Ø5MmEf4Ë÷C†’•|;’äÑ $ÒDŠɃuY^3±L²eœ”ÕMùbÏiÈ=.[¦NâpÝÛèr*ä³Vƒó’ØCd‚DB÷lîákºº}`ëÃe:V2ãñÝPëD²Ê¼Š «¦ÊScI}?«×/ –u8†¶ Ý,`~*ºLìÚ¶¥4Ú„”ƒçi’UûÀÓe^YtX‡ˆ­cÝpÝ[‰­¦¡Ö¡¡Ž‰u˜¿2Ô8b¨q¢¡.Áš£Ù»õ’Ä I%’{I‚U¶ˆ,¬Õø»%øz¤!÷¹\#Ô90/+‹Þ,Èqá‰9(N|&N
-Ë&Jþ¦r•õ‡:j\§§I—O%½¥õJÿ80ZÎD<F ÀûB¬N–¼·ƒ–Èl=‚Ú1¢eˆòyÆ<™d•¥TÞ/cõa.]
+xÚ­ksÛ¸ñ»~…&Ÿä™ÀwýÉÉ99ß4º«ã¶3Íe24Ùœ£HHÉQ;÷ß»‹]ð!ѱ}íè pß/Pj*᧦q ¤—øÓ(ñE U0ÍÖ9½ƒ½ÅgæîмêíÍäÍ{/š&" u8½YõhÅBƱšÞ,?ÏÞýxñËÍåõÙ\rŠ³yÊÙÛ«Å„IèñîçÅû«¿¾8‹üÙÍÕÏ B__¾¿¼¾\¼»<›«8Pð¾f
+¼ðþꯗ}¸¾øøñâúìËÍO“Ë›V—¾¾Jz¨Èï“Ï_ät jÿ4‘ÂKâ`ú
+zÁ¬Úž©x¶4[^®èÙÀ>è ”U2x$†]§%I‡úìµ/ü(â3u“6fmʦ&º9?ëü®Ì•RgiÙêW­#„üYJˆ¬ÈÛ´Ršßw¦fÄC^Ýšþ‘º*öfÉÌÊNK8«ÊÆ|kZUAøé\iOxR
+ƒpe(ц}>j¶L›”ˆ@Üê–ùÜå{Ã(´£==FN:óZžÉlŒªJ§"Ló-]ƒŒ¯9ˆµösˆým™6-—Ý6äÅÑvçFŒ×’ß¡G½)\ÿ°øÄ8Óì6¢¦ÁÓýxT_àÉéˆM“WeM ¶‚yÙ l?*ð]î9"§Á9{€9m m}€@ZÔA·,Ö®¶9ôr ω@ÐÆ‘~º ±:–úÇwŽ°Ú–¸a(|Oîfc“0I\:ôpoPW1,
+Jæ6·åO‚.Å.+×k ~ÍþÙ+«îÀ¼Þ˜Œê5#ÓbgÌ™¸u¥â<:>Wã´«³#F Eä·9þ÷FB®Äg±|çI€RƤôXšU
+™Œzûzv!ðšz#¥+é‚-
+h8¾½¼õ*Ö¦oÜ™…ËÆ,èj0×6‡ fûC.ÓE*(‹á1zWó½ãø^÷f˜­þœž¡³þ XàV/dì©MÅ.„È{å†ýW´þ5–Àí28ºè¾yCGnlò!TßW»bI0ß٬С8Ú´*MóPm뵎^ÎÛ×çíE‚D±%…ý½‰Ï ñǹ#
+C¥adç& >+ô=oqh
+xaLǃ&TR3+vK;í[~Ëå®ä¦Òz f¹¦Uµ£ûª'É÷bˆKûac\¼ÔÀê|Œø*/ŽˆÏ\byûêœóy,FÿßTýÍ£Àéå‚»Ù>­‡³ïÇ.êí<w,eÕôòÃp²Ü:w~Ç{›­ÙçÕ®î¢aÔçô“G’fŠ×fµ«_3ÎP…Ÿ“eõ─0m¶yÖ8Ûý?“‚'ë6+hN¶¦ßÝBv«þ÷«ÇC=71t"â8JŽn·21œ'z‰qD_}/1úYc{Q‹^!snÍ!ÆoáøÝUÉÖ„ØÊ>õ¿”ÈÙ‡mº^§Û‘V„.„ÔQtd(„¾ÒÇ3\~¶£ð—Å8T^n±ÏmnVsüÂqæUÁ¯6ƒ¾yÝ´ÙbŸ_Æ\|JsîÂû%dÇþ%
+¸×‹c=þç€'áâ­aÌd¡PõÄ;–¼ý«áTôÿ,ßÈ¥endstream
endobj
1901 0 obj <<
/Type /Page
/Contents 1902 0 R
/Resources 1900 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1885 0 R
+/Parent 1886 0 R
>> endobj
1903 0 obj <<
-/D [1901 0 R /XYZ 56.6929 794.5015 null]
+/D [1901 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+598 0 obj <<
+/D [1901 0 R /XYZ 85.0394 146.1982 null]
+>> endobj
+1738 0 obj <<
+/D [1901 0 R /XYZ 85.0394 118.9629 null]
>> endobj
1900 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1906 0 obj <<
-/Length 1187
+/Length 1241
/Filter /FlateDecode
>>
stream
-xÚÍX[oâ8~çW䱬d7¶ã$VŸ:]Úíh§3˲Ol…\bZkrabgZ¦ô¿¯sJèEZ!dlj?çó9ÇdÙæ‡,ŸB›0Çò˜©¨5z¶ukÞ]ôPõ X}ê_}õŽÏ‰g1È\ìZ£Y ˇ¶ï#kŒÎþ8ý6 û
-™ç¹V­Ý€ ²óxž¤ÕLÈù$¸ná—Ç,$¦Sžà§[§ê>§Ê<ˆ]²%UgUçuT±M &k1jp¬5´Û bDi«¬-\÷J‹1‚ȳÝît ž=Ûw·htt ‡A‡0·UïL °Só=¡Ö©"Áõ ñ°³Kú¶Hð$cûYîƒMP}@ † .–ª–yù•Ä(͵TZN«„9Ë°‘”MFV¢Ñ›~fKÉ[ð“‡2za–$ƒcžžçÃqùpÝ9#æ¸æ›,
-â$êUKT%/¹ÎÒîP; éÅ\¼
-$àšßð•Òû‰†1‘ŒA*fÆ€»bá~õòÿv‚‰NA ç<…h°0 2d*¦:I«¥yÎõÝ$æQÏå™Ù ±2;‰U“ûeÄ›ÿ2™Í:Ø!ãPæVzÆáÙ.ÊB-A¹'jÝJuÀø%ÒÄI¾³Z‡ûa
-Ï“EÞÌ’Ô¨ºQF‹½Lùý>Eö£h°AÉ­ZÎdªôAÊV8f'јþñz³ÙíÛØ@¡öÔYµg€Ç™n5¿\6 û7J¡ƒ<¼¥_Ë müÖ'GS¹^ßvlLn5l_¾`è~-€>ä~á|R~ïm÷ÖI½ãIùãsmlÄx!m×aæ_ ðæË·ÍͤcNo¾×÷j×îÕˆíB3oE*7ŒÑmæë[ºçÔÿô |endstream
+xÚ­X[s£6~÷¯ðcÜ©ˆ›aò”MmvºÙ­ë>¥á¨Áˆ•äØN½ÿ½l’€ãñx
+Æl€IhIH*0{=›.˜µ—'£  K˜mMoúÝ™~wÆ–I¡Ö{áôM¢úwá¤TxSƒ'ÙL}™3£LìÆÕC±ÃeŽìYÐõ\Ô(R[œü"©—Œ
+8 º[e¶|¥Ã±š^»ïh²;.£P¸OÉìŠËos
+QçD¢>‚¦gÕùBS ¸„¬WIXI¼Lê‰WZaéÖÛRÀ·øZœÌ,I$soc1YH¢¦­mTáÊ*-G}Q=;ºeE]±dg€› Ÿpd!tI*õ¸'C0ñà1V'ÏS@Ð1Á6åñ!ÕE„áPPV„£,3UZ·é'–2
+X<Ò¨$2¼À©Ø.S²Vʮӂ>2ì:¹Ÿ—å^zZ÷Ý*”ìƒJ®ç»Ã$à|Zjji#ìÞox<ãËw»ð†v¯cŽŽAeEÄ6g>.È1AÙ-œ ö‡èµÃ P”Ø;»=íâx¡´C¸›ÀÒ¿’ ʇš[¿¦ã*ËꌩápIþ b>ÊÚŸóÙ²Òð<swJeš•S*sèAÛ“ )¥ß>b^žySÿáôi©endstream
endobj
1905 0 obj <<
/Type /Page
/Contents 1906 0 R
/Resources 1904 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1885 0 R
+/Parent 1886 0 R
>> endobj
1907 0 obj <<
-/D [1905 0 R /XYZ 85.0394 794.5015 null]
+/D [1905 0 R /XYZ 56.6929 794.5015 null]
>> endobj
1904 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R >>
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1910 0 obj <<
-/Length 1066
+/Length 1212
/Filter /FlateDecode
>>
stream
-xÚÅWÝsÚ8ç¯ðô nƪ$˲5<¥)äÒ¹¦w”¾Í0DðŒ±©,Bé¥ÿûIÈ_HÒ›X}ýv÷·»ò
-9PÿãS@fNÀð!òé²;½vÕBù·ØäÖw½¶Þö½Àa€QLἆ†ÈÎFm
-0èhؾütÓ¿¾ú2¸è¤=¼þtÓq±Ûýë?zVº\|üx1è¸(ôQûò÷‹?‡½]¢9Æ»ë›÷v†Ù¿'@½~oл¹ìun‡Z½aéKÝ_=ãÈ·Öè:3íö‡ }g£ Æ°³lß>ñ¼b&n}nýUÖVwGùC`â ªB@¡†
-|¨‡½£ŽK!lóX¹Jò$› éféZN…]ø
-}­È˜ÏfÒÎ<§ =­4€xþì·Ý’XP§6¯A=<Z¥RY1ZÍàÖŽºöïv‡àbÈ
- =ßÜ¡hh˜Ý3ã<ñ
-ì²-Ví*îã„Ž¦1ϲ< ÿ±ß«¶«2Æ:g¦:uÖ“î:x§÷ÛZÈmnçu}‰,/¹š.ƱÎ>;ÿó ~2!ïuÊç"Û•…U•pŽ
-‡¬Íí¸øTyš®¶VJçv“* L“d%]nV(×òT1˜»LÐS›(Ž­4MÏ'qs•Úÿ•ì °ÞG³|¯Õ"•‘ùÊÜSI¶ÙÝ°f`íÐB¤Àa¾€zº±­±ûº€“± ´¾v$ðPÓ{–Õõê×Oõ4$ð—²r„€„ÄóÁ2ì2úèmV<“ò]5ÓÿÛ«¤Kendstream
+xÚåX[s£6~÷¯à1îŒT„¸iö)›:Ûìt³­ë>¹‘¨Á@%±‰S÷¿W °±ƒ°gŸ: ƒ.œO盄 S=Èðhbb±¡c"ÇW#Ó¸WsŸF¨þ4?ö_g£¯±gH\Ë5fq ˇ¦ï#cÍ/®~¾üu6™Žå˜.Ç5/>ÞÜþ¤Gˆþ\}½½¾ùôÇôrìÙ³›¯·zx:¹žL'·W“1@¾ƒ½U#!¸¾ùe¢[Ÿ¦—_¾\NÇ‹ÙçÑd¶•¥-/2q)ÈߣùÂ4"%öç‘ 1ñãIuLˆ±ŒÕÈv0tlŒ›‘dôûè·-`k¶"íÒŸƒ}èø–ס@µˆL›x†çèb WœkšE’‚ð†àQ<êÑ5ËŒ/Óìƒî/JÕª
+xº‰–lØ}šqúj±77—I‘·ÛË,—,K{ïfÌ’Ú„ä,½ïM¨·¢$qÆW܉$é³Üðài(eOëÌË3¨é`/@ªµ9 û¨!ãj#¢ ¥ÏnbÆ…$E£ltÏ‚çûVú¶Õ×Ë(kÖë°´n1ØsÌÁ] NÛÒŠ:æÙ
+D,Ž)§iØXê;þ^ÁÈUΰ-ìÔ ä¬ê€ñÿŠ3¥;TšK²û–?è”ÑÛ”KɃT(K
+AÁQqµÚS{y‚ëAìYö18çy‚‡!¶ y+žôõƒS}ÛBA«:üu¨ó%K)2*Ÿ³°˜q‘${A¹Lùto$Ut=vK°{ Nf,brÝyN«%ÑEïx]âª7UQT˜¢¦˜¢Ú(å7êôw>”\ç§ê|œ\£®TUXŸ<«Ä}rq
+zÍIu>³ Ê+†ˆqʌש9äò<eö"(T1 ¯š(œdO›¦
endobj
1909 0 obj <<
/Type /Page
/Contents 1910 0 R
/Resources 1908 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1916 0 R
+/Parent 1886 0 R
>> endobj
1911 0 obj <<
-/D [1909 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-598 0 obj <<
-/D [1909 0 R /XYZ 56.6929 278.1954 null]
->> endobj
-1912 0 obj <<
-/D [1909 0 R /XYZ 56.6929 248.0815 null]
->> endobj
-602 0 obj <<
-/D [1909 0 R /XYZ 56.6929 248.0815 null]
+/D [1909 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1913 0 obj <<
-/D [1909 0 R /XYZ 56.6929 223.6701 null]
+1908 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
1914 0 obj <<
-/D [1909 0 R /XYZ 56.6929 223.6701 null]
+/Length 1007
+/Filter /FlateDecode
+>>
+stream
+xÚÍX]sÚ8}çWxú;#E–lOŸÒ,ÉÒÙÒ-eŸX†q°H<56•DӴ俯ü1Ä ÙéÃX–¬sÏ=÷ʺ¶ùa‹qÈ=âYŽgC†0³¦ó²îÌØM Ï€õC úÔ»aëâš:–=N¸5œU°\ˆ\[Ã`ÔæÀŽA@í«ýëÞÍ߃ˎc·‡½ý µ¯{vóÖÍàòÇËA`—áöÕ— »ƒ|ˆïzýßó/¿ìt¯»ƒnÿªÛß·ºÃÒ—ª¿ÑÔ‘¯­ÑYqû} Aê¹Ìz07bÏ#Ö¼e3
+™Méº'j}n}*+£ÙÔZý0‚„rR# +ºrd æAN Íœ…‘è
+ïâD
+Ó‡w³ËÅE~í':oôæ‹HÌE¬E
+endobj
+1913 0 obj <<
+/Type /Page
+/Contents 1914 0 R
+/Resources 1912 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 1916 0 R
>> endobj
1915 0 obj <<
-/D [1909 0 R /XYZ 56.6929 211.7149 null]
+/D [1913 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1908 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F21 950 0 R /F22 973 0 R >>
+1912 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1919 0 obj <<
-/Length 2618
+/Length 2891
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ6òÝ¿BôLÄ€
-< c›Å(°0QíïJéo¤_)–÷ŒØ¶|þºÿ…g‹å’Ñ]çW®d»uåþ™¥‰~Sô’Cœ0·hfR3׋ÞmÐâhƒa·,zYVñ¤…õ»ã˜ëNñ"6F_EzD 2Š².·eã·*FuמóÄ^ümSlñöâ¡4©{3¯)ÂãY0
->·,WÅP÷Xûý¾hº•_P8±2˜e9%œµ[`7‚]»Çû¤:H cÚ†G
-
-Éœ»‚ªf%éO¹8
-ˆž~ð¨#ãF»ûMWeÑc¼¯­“rl]2?9=
+xÚ¥]sÛ¸ñÝ¿BôLÄ
+=»_~ŽÞÿåíÏ÷Ww—ó$S‘/ç™UÑ»›ÛSòçýO·×7~¹{{™§ÑýÍO·Œ¾»º¾º»º}u9×E¦a}"^Xp}ó×+†>ܽýøñíÝå—û/®îÃ]Æ÷ÕÊàEþ}ñù‹š-áÚ?^¨Ø”E6;À@ź,“Ùæ"ÍLœ¥ÆxLsñéâoáh––NÉ/3EœI>!ÀTO 0Íc›ç,Àߺ¶ºœ[¥úgë62ü¼h\ßáÁïxÑYbâo5×:.³,!Ãq++–US=º¡îÚy×6Ç7´fþdïúš|}èYൂÛ̳2V Ó 6’T£äp,ùOƒªMÕ<ü¡ú‡RI[㶌qí’_z÷X…}Nr€m’4.SŽö‰µìô÷°Óýe©"¸]ÿTËZ«XicgVçq^óÿEÏ
+4Yfçjþ¿ùc¨“p_ÜŸ×)`% _qÎj®01xW1mC:5 ¬¢˜YUÆi P„×ÕNDŒÈó4ÎuYÀHv¿FÉ‚Pûj÷è ^»€¢Œ…Á‹n{d¨[1ÑàY,Ý VP‡91äI¶
+ÁÅ°AÅ×oÂQ¡ºŸ[&j\gœ$JälMž"˜“sàHÎ
+Ã}Å
+r£gÖ¹Cî!;„aoÞôSõP­/þÁxŽ õMwh®Wü=v{é#öâíØ]*Å0kK¢ëÒäGñíȲ–À7t°†“çN7ãÊýûºQƒa öùŸáé—¼ØbhØÕæ™~©Å(ãÄÂæ‹bAš«¡aÿ0íe9£ÃäL õúeœƒ0—¦Iô†Û
+sjMd!S‚=/ªíÀ¾‘ßÀ„£”ÎiÂ`Ч$Ç줌n?á·i¾¬a’"r¾ Cß J`ë°ny¾"ðÇ‚*Tƒ² ›ÔFŸDŽO[â?¦ÂP9'òÛN2«ã1dÏvÉ’9·Žªf%éOù8
+ˆn?½ ¨#ãFÜÓUå†ýj«Å¤;ŸLÅONo~54lE¨œŒ§V“@,iÈyI&ud"u u-C±0T!´Ô8z-
+‰!~aNÄø&ßYØ>UzºW6òyn¤¨ã4ò~£¼2a¯T6zÓ<+sLyvFjS˜y陌3Ëø]úT€†Ü×KüUÁÉwÊT¸S¦žÝé²£*BvT…dG
+¥^ì©ìÃ1å0\€G#ºó×}¦!eNÊèšó¼õà+~,“Š
+'i2õ‹¯šy‰÷ï˧ßSèõ‹" Ùùï"
+k´2Ÿ™,NQž(Æ2&ÿK´'þ¿6N4ñendstream
endobj
1918 0 obj <<
/Type /Page
@@ -8865,11 +8804,29 @@ endobj
1920 0 obj <<
/D [1918 0 R /XYZ 85.0394 794.5015 null]
>> endobj
+602 0 obj <<
+/D [1918 0 R /XYZ 85.0394 684.6711 null]
+>> endobj
+1921 0 obj <<
+/D [1918 0 R /XYZ 85.0394 654.5572 null]
+>> endobj
+606 0 obj <<
+/D [1918 0 R /XYZ 85.0394 654.5572 null]
+>> endobj
+1922 0 obj <<
+/D [1918 0 R /XYZ 85.0394 630.1458 null]
+>> endobj
+1923 0 obj <<
+/D [1918 0 R /XYZ 85.0394 630.1458 null]
+>> endobj
+1924 0 obj <<
+/D [1918 0 R /XYZ 85.0394 618.1906 null]
+>> endobj
1917 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+/Font << /F37 1042 0 R /F41 1238 0 R /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1923 0 obj <<
+1927 0 obj <<
/Length 2502
/Filter /FlateDecode
>>
@@ -8883,95 +8840,94 @@ xÚ¥]sÛÆñ]¿‚ÐŒ ã>p
ÑzÒxÊApÊÁÿ}pfÐÆ iRä;Žìµ©ˆe-Í° 2Ù©¿?fc“‘Å)W&ç<ÊшⲊÖÀ”hçDáëXÕ LèäUª¶ ßµ¼os2Q ¸t|2®)]Fí®M÷`YêÔõÝ”´4S¯rÄ çÁó±°p1ч~³5oöÚxñVÇGÄ@G+®/O'Êž•9›¾¥ø3×)%÷{/†í*ÉO=n#äËbãŸË> ö̼Lé4ß,}5õàL6>w¨)}dÐLDÙ ·!@ÙÐ&™=u)ø-ßòÁÂ*pB¬¿¬½L;¸ŠYdßvœy¹kˆÜˆ£’¼)Ʀ®^qA„“"
[0¨M@ÄF€‹@Ôa·<ñm Oj»’Š1äÔ•@£m88L7»bE•â™9É–ŸúøfÉ3®$¾³:9–<‰‚¤ªþ„Hax³Ü¨œDö­rGGabfrä\F*Ú`­yé­. «ûøN=¯†V¾¬Ë®äU±¹àü/dÓ¶&c3¡›DÈH¶AåÖW»ðçMäƒ.Iç£Y_TM–ßÿdWý7:
endobj
-1922 0 obj <<
+1926 0 obj <<
/Type /Page
-/Contents 1923 0 R
-/Resources 1921 0 R
+/Contents 1927 0 R
+/Resources 1925 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1916 0 R
>> endobj
-1924 0 obj <<
-/D [1922 0 R /XYZ 56.6929 794.5015 null]
+1928 0 obj <<
+/D [1926 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1921 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R >>
+1925 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1927 0 obj <<
+1931 0 obj <<
/Length 3024
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ6òÝ¿BÓ—ÒˆÅ'?rsªã$î4vÏöÍtÚô¦(‹­Dª$eW÷ëo P˽K‰¹\,€Å~/h>aðO2™ªIœªP3®'ùúŒMaì÷4SG4R}wöí{OÒ0D4¹_ ÖJB–$|r?ÿ%¸ø8ûñþòö|*4 ¢ð|ª#|wuýŽ0)=.n®ß_}ø÷íì<VÁýÕÍ5¡o/ß_Þ^^_\žOy¢9Ìv…&¼¿úá’ ·³OŸf·ç¿Þvyߟex^Î$ä³_~e“9ûû3Ê4Ñ“gxa!OS1YŸ)-C­¤t˜ÕÙÝÙ¿ú£fªO~J$¡ŽR€$—¡*~y_ÚƒÁ¾I¦B¶rÎBÆe«'<dq”ôJQ| .ãPr.&±NÃH
-i´Òó²)òÅóí{!†Zda”Æ
-vAÂ[$<çI€ÄS‘êà?uU´FAF#„߶ŜÐ]M˜®ŸÊ¹%ɪö¹hÚCª?¶ESºŸ—EEèª6³§È!ðç S­…aj­€H¤íßÖ«mWÖážëíj~0¼]uô^Z’ëŸÞÝ|š]]ÓÛCQVà ݶ©Š9šd2¸©V; 44içHI+#%/[z¶Ûͦn:#$ Ø áŸÊâù<Ahuq ¼8 c©­.²Õª~ž¢¼v½é8L¢È’æYE«?´Ñc*À "ÆÝiÈK2Àk¬Äº¦¤ƒ0ÐH™/ ÌWeQu-½´EA@·,Z Zý†>y]-@žB!9´Áˬ%€ö‡#¶FPˆzw}wwy°¶Ã9™ÆÜÎùÌ4{wóOON˜¬š6»þÉkH½쾩+wœÒµ|¬Hmæ´A•Y»}h»²sˆ"+W+‚ê<ß6¡F"!¡ß£Úa•˜1EiŠ§á½Å"zÈjK¨@â †ý/h¥á9»`Œ¿]àJƒ_Lj·+¾è+S2~ˆ;ÎÙÌëê3câqë‚‚JDÑX·ÛØ GçôpF¾#STÙÚ˜AÊ‚ÏB¨ J@¤(»%’ÚÍb`de±ÀW—••ñqíÌsŠ\s¢[•GUÝ2CˆD°©ËÊ€œœP†DÌ‹ÖlN#Ù|nuŠzKN{Ákc[¯ýÊl­Ã4Ž!®ó0Vàû8ðÍp`€‡ÅA1 xÎè1T9= øÇ/Mà+Oá@ l¹˜CÆ3bT¡E,þ6¶á‡ 2Jø¡_oO¢£¥ ÿ+±ÌîI‚°H¯#Jé çˆ5ŽˆÀÝ&«ÊvI/hž-„¶Õƒ:¾†—w6Á ™%
-=$è =Ä#“ƒi R~Qå&T~¿”NfÊÃŽFÐ ~KmŒ×[Wõ[)¡i+¨—ƒß‹MG(¬á”Kíˆ ñ#jU׿o7„í2#pD“ÃÐr)»ÎÀ+¿!ÛUö„Æ ’V„q\˜
-cáZá 9çÁ$KŒ>Elk>˜føG”VJF&8¶·
-|3Z).×"JÂX³ÄƲ¦šç¶˜sÊmŠUÙ¸­õ`ÉC¼.¶ã¡P#¾bB®N]ái˜“®ü2k›÷ ÊWKÒ‹©¡uð±~.ž
-S¡ dâê|‰…)fæã#O¡« e,sò©TâàŒ‡¬C‚ˆ´´¬£òk:aN»)òr±£R@™êDª¾nP{ûŒ´Ï'”è}f™*¯OI¸ã§ÅБWçÀÙª6ý†‰i ’5ØsC µµQ㪡s ›½/k “0AWŸê0R\þKº/ö¤úlÈöú…ž”G¡LÒh¢bÆ,!‰Í‹Uñ˜a=­mÓ5ÎèŒCm’ZÕÞ/©@{ÚT[w‚gQ-( 涣Z FÆ»dÛeÝÖ.†™Ò,^-ˆÍylóÎU·žêcÆMžÃ>†ØÍ*ÌtohèúòÞùÔ;7·0ý…46«v„¦FŠ¶ôd¶a}½Z”O°…91㽡ûBj…ÅŸ›U™›œ£ /o[®‡Ø½Xì¨}R‚l û4e·#| ®a‰Ûø ú¡ð1Òç™Éeê lûx*ûö&$4i¡y]XJÍœÍÕ… jÇ sˆ O&ªâO#{N«yôÕ.÷Uj
-ݾ?X‚Ewlž˜)[ñ™Ñ#GLPaæ:k<D`év¥€Å¨êÀ‰bn¢¾°ÔÇÁCÆàq‚»K<h=9P†‰Š]e†‰½Ûs³‡)®Ô»ª Ø­
-ß}¯ŠAI}MˆÙè Å y ,]
-w)'خ閔³>ï/Í ýÞˆ2„ÜOV Zg¿Ùœbj¡… 5m1ˆF)X¤õ7T³çÈ
-fx‘˜aï mÑUwÈ
-©NÂ4Å2š²†6š=˜ÊsàSÖ”µ©lÐ wÐú¬[™gÐ*¡ ±î…:¢Ýšë^œn)€›†FYðHçØnù¦)Ñ´ìÊԌœ¶¦g]Á•ä䘈ù½Ø=ÛÎôõôùñÎç*TJ»^¨·G{»«êj·™Ù‚»²ó­EÑN³ÊUà‰FÅ!  >Aé¾Y›‹j1»Áób™Õ-ø:4 a˜]Ó<û士ózECù°ô1+UDJÞ
-hÃñÖ\ALb~zóžÊ³ý¡ÝF¡Š’Ñþwƒï(Ì‹6oÊÍþ{ÄÃcé¦1dT•|ÚŸbÜC¼‰û¦w\µágIh¬¢ƒƒž¨ÚzúWŽ|¼.9ßÍò¾:b t*ÒôÙ÷T¯1r´š·l#;1MɶÀ€èe[sDžïw‡–µXÂÕÉ{¢ã­íL‡2‚Ô?Üûï4³S_ e_rø¬ …Š÷¤‘YòÓÇ=Zõ¯›XŒ§G'…Þ½ÂÅx­“ö†^hDzóÚÓ¼l]–f¤hƒŽìK#%dÕ;÷4G[XWFÈ ¨öþ2ãJŽËž`´5^Å‘~Ù¾ ‹òÀžÿSæå¨Ow¼æ_6.Å 
+xÚ­]sÛ6òÝ¿Bӗ҈ſrsªã$î4vÏöÍtÚô&)‹-Eª$eW÷ëo P˽K‰¹\,€Å~/h>cðÏâÀg2Q³(Q~Àx0ËÖglöcθ¡™[¢ù˜ê»û³oßËh–øI(ÂÙýr´Vì³8æ³ûüïâãâÇûËÛó¹˜úçó dÞwW×ï“ÐãâæúýÕ‡ß.Î#åÝ_Ý\úöòýåíåõÅåùœÇ‡ù¬ð„÷W?\ôávñéÓâöü×ûïÏ.ŒÏ˙ăüqö˯l–ñ¿?c¾Lâ`ö /ÌçI"fë3H?PRZLuvwö¯aÁѨžê’Ÿ±„ @’K_ ½¼/íÁ`_Š8ô¡&ÛÎ9g>ã2„Õcî³(Œ¥(>R
+—‘/9³(HüP
+©µÒyÙYâùö½c-2?L"» á-žóØCâ¹Hï?M]t†^J#„ßvENè¾!ÌF7OenHÒº{.ÚîêmÑ–vÅçUQºnôì9r¼Àyý$„fjV@$öïšjÛ—MM¸çf[åÃÛª§÷Ò\ÿôîæÓâêšÞŠ²~Oè·m]ä`h’I瑩v.@
+hhÒÌ9R ´”h¼ìèÙm7›¦íµ€`S´„*‹çóDx¾ÑÅò¢Äd`t‘VUó<Gyíz "?CCš¥5­þPÐvZ;xŒ¹
+ÌÑá)3J!¼‡mO€1|!lt
+XlbY[ç™)æìÀrÛ¢jR·C9ZGr¯íx(Ôˆ«˜„$¶ðÔÌI[~éµõ{Š媀%éE×Ð÷±y.ž
+]¡ dlë|‰…)fæã#Ï¡«1›d,}ò¹TâàŒ‡¬C‚iXGå7:tÂœnSdårG¥€ÒÕ‰TCÝ öö.ŸPb𠘥«¼!%᎜>cgD^­§U£û Óz$°ç–@ck“Æ5€Î4nö¾¬TLÂx]}ø¡âòXÒÎx±'•ÐgC¶^èIyèË8 g*~Äb’X^TÅcŠeô¼1M×4£3µIbT{¿¢]xöiZÐÀ¸<‹zIa03ÝÕj02ÝM#»>í·f1Ì”zñzÙB¬hÏco›õ¶ºu„TÛ3®ó†ÿÑÇnVa¦{CC×—÷Ö Þ¹¹ý€éϧ±E½#45R„4¥'3ýêÕ¢|‚-ô‰ ÝRk´ØÈ+þÜTe¦sŽ‚¾¼%l¹c÷b1£æI9Ò-ìÓ–ýŽð¸†!ŽMãƒè‡ÂÅHOœ§:—q¨7°íã‰ÚŸÐ¤Y„ò¦0$:”ê9› ª AÔ2ŽiæAžLTÅŸZöœVsè«[í«
+Ó×YÓ!K»+,FUÞH¹ŽúÂPÇ n/ñ =vä@éÇ*²•&ônÇÍBä'LØR惘b·.\÷½*% 5!f£7'ä%°ôà0PØK18ÁvM·¤œ ¹xiíÇøF”é d¯Ðx‚´JÐ:ýÍä] -m¨éŠQ4JÀ"¿¡šGV4«¢+W(Áqi«£9¼$,ÍÓÞ:¨™¦+ECƒÅÚ&H@tEûTfæšqváíÓÕý×fÉià7ÓL+o‰)öÞÐ]õ‡ P£/0ºøìVé¨ð˜±Ÿ$øAæ@3cÖÐFÓ]ùb|J۲ѕ äZŸuG#y
+­
+ë^¨#º­¾îÅ醸ii”ytŽíÆ’oÚMˬLÍ(Ìéz65QINŽ‰˜ß‹Ý³éL_OŸï\ |¥Û öhncwuSïÖ“#[°W@f¾±(ÚiQÛ
+<Pq(H‡OPºoÖú¢Gônð¼X¥Mþ„ HJØ×4Ï|ù蛬©h(—>z¥šHÉ
endobj
-1926 0 obj <<
+1930 0 obj <<
/Type /Page
-/Contents 1927 0 R
-/Resources 1925 0 R
+/Contents 1931 0 R
+/Resources 1929 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1916 0 R
-/Annots [ 1929 0 R 1932 0 R 1933 0 R 1934 0 R ]
+/Annots [ 1933 0 R 1936 0 R 1937 0 R 1938 0 R ]
>> endobj
-1929 0 obj <<
+1933 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [280.2146 384.4392 375.7455 397.1764]
/Subtype /Link
/A << /S /GoTo /D (root_delegation_only) >>
>> endobj
-1932 0 obj <<
+1936 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [312.6233 123.81 381.2953 135.8697]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
-1933 0 obj <<
+1937 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [310.4119 92.6626 379.0839 104.7223]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
-1934 0 obj <<
+1938 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [340.2996 61.5153 408.9716 73.5749]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
-1928 0 obj <<
-/D [1926 0 R /XYZ 85.0394 794.5015 null]
+1932 0 obj <<
+/D [1930 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-606 0 obj <<
-/D [1926 0 R /XYZ 85.0394 335.882 null]
+610 0 obj <<
+/D [1930 0 R /XYZ 85.0394 335.882 null]
>> endobj
-1930 0 obj <<
-/D [1926 0 R /XYZ 85.0394 308.9113 null]
+1934 0 obj <<
+/D [1930 0 R /XYZ 85.0394 308.9113 null]
>> endobj
-610 0 obj <<
-/D [1926 0 R /XYZ 85.0394 182.7451 null]
+614 0 obj <<
+/D [1930 0 R /XYZ 85.0394 182.7451 null]
>> endobj
-1931 0 obj <<
-/D [1926 0 R /XYZ 85.0394 156.1927 null]
+1935 0 obj <<
+/D [1930 0 R /XYZ 85.0394 156.1927 null]
>> endobj
-1925 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F55 1336 0 R >>
+1929 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1938 0 obj <<
+1942 0 obj <<
/Length 3198
/Filter /FlateDecode
>>
@@ -8986,120 +8942,120 @@ V¯6²šaÉ[Ÿk[¨E“þe[Ûn^ʪ&ÍÚu¹³enÃwí¬)|,–0‡3ÍÆb
é_J!>ÿ Qtp#›Ü}·û®zh¾›¾~¦”¿~ö½‘Ǻ¿ÉúWdQÛr‘º;iFc±Üe»²:ÚGÛ ëåÃ6…³Pc;Kgí}é®ÐÁ$maeÖééÒ­mWîÔ4é³ë¤Á€NöÖgwËñÅ×t{°)yv¢ŠiØ—µù"•Ù¦|ckÓõ:7±=ÝÚú~@á‹u•»«dÐôdRØmõCfîȘºm^<Û{Ü𤴵.`qwÍüN{€,îÊ]6u' NO÷¥½Ò“ïYGºÕö°î(è®a È•›Xõp8­VP¶…¢ qÈÎ>§Žƒ«4èÜ 1Ì_ùLøçœûÛLtúK+.Sê\rL
¤M¢Óe:BS¸dbDYB'lÿ ŽÜendstream
endobj
-1937 0 obj <<
+1941 0 obj <<
/Type /Page
-/Contents 1938 0 R
-/Resources 1936 0 R
+/Contents 1942 0 R
+/Resources 1940 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1916 0 R
-/Annots [ 1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R 1945 0 R 1946 0 R 1947 0 R 1948 0 R 1949 0 R 1950 0 R 1951 0 R 1952 0 R 1953 0 R ]
+/Annots [ 1944 0 R 1945 0 R 1946 0 R 1947 0 R 1948 0 R 1949 0 R 1950 0 R 1951 0 R 1952 0 R 1953 0 R 1954 0 R 1955 0 R 1956 0 R 1957 0 R ]
>> endobj
-1940 0 obj <<
+1944 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [299.7586 737.5313 368.4306 749.5909]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
-1941 0 obj <<
+1945 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [292.0084 707.2808 360.6804 719.3404]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
-1942 0 obj <<
+1946 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [330.7921 677.0302 399.4641 689.0899]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_policies) >>
>> endobj
-1943 0 obj <<
+1947 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [401.5962 646.7797 470.2682 658.8394]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
-1944 0 obj <<
+1948 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [257.6971 460.3869 326.3691 472.4465]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1945 0 obj <<
+1949 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [258.7928 430.1364 327.4648 442.196]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1946 0 obj <<
+1950 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [310.7975 399.8859 379.4695 411.9455]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1947 0 obj <<
+1951 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [308.6055 369.6354 377.2775 381.695]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1948 0 obj <<
+1952 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [294.1999 339.3849 362.8719 351.4445]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1949 0 obj <<
+1953 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [303.0862 309.1343 371.7582 321.194]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1950 0 obj <<
+1954 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [332.9347 278.8838 401.6067 290.9435]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1951 0 obj <<
+1955 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [359.5147 248.6333 420.7148 260.693]
/Subtype /Link
/A << /S /GoTo /D (options) >>
>> endobj
-1952 0 obj <<
+1956 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [386.0748 218.3828 454.7468 230.4425]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1953 0 obj <<
+1957 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [301.97 188.1323 370.642 200.192]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1939 0 obj <<
-/D [1937 0 R /XYZ 56.6929 794.5015 null]
+1943 0 obj <<
+/D [1941 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1936 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R >>
+1940 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1956 0 obj <<
+1960 0 obj <<
/Length 3103
/Filter /FlateDecode
>>
@@ -9116,92 +9072,92 @@ xÚµ[[sÛ6~÷¯ÐÛÊ3–¸nêtÝÙM»Ž;»3m‰²ÙФ*JqÝ_¿Wñ
&­TÎîŠQNãé›X}Gü‚ÙãvgwŲ¡N h‚ñhAQ[ÉÅ7ÿRŽß]Ô<ç"*ô”þì ?f•ÏÅfj3D™XciM"jB•÷äLª¾.Ÿ{s Ô€…•2ÁA¥ÓŠôŒNq0àÌ·;ÇA9¢ 7C=èœì‡ˆZPdÜZš…BBTd ™¯‹J°0 &û¬ÜUÓ,„°äB§5‰¨ Uú,4;"¦ºº|žÓ€”ECRH
{PØß´'è¶öTnÇW`ÑN̶EJzÅ÷ˆÌÍ ¡yOþÝ~âúš†à¦êÿº¼nÇ?Ù /P¾\ZûX‡p·ÎœûWe½7wJ<y¡Â1Û^ƒ+ÛË=8+H™Ë.Û'W»ÍëxÎ>wççC±st—©,\9èsNÜ—‘ˆ)&—žé1§1¿ØXð"Ë¢k.—f)§ _)^¦; yʵÉi`Vˆùnw,Ú¶ó†8l®ú¦Tˆ ±ý#næ$¼§„»FTÿNQ¡çá…õývãïaªÎ=L,™ÀÜSØŒ ?ý ¨°ùjî¾sOc¬ |{©Ë@Üñ |‚ª_Îi|VÙ˜[NxŸ?í“¿Ť#<ÛÂÞeÂu8Ô8QÛó±-?ݪ¶©ÎžçLzkYˆ&üJsŸs}ã^Õ\<N¯®èÍd¢Û‚u”âÀe~LÚ‘Çœ¹;pÔ¹mjCÜÇs÷nLdm~(~u¥wïý{Sßž~ú«¥m³-/WMí=:Sºñt÷´¿?¡‘ ò‡íŽÌmù âÁ?ßúRþå,0‰¨Rdf¾“1D©ÆA)ã0œ&Yœ*Ä‘ºÿŒ7t’endstream
endobj
-1955 0 obj <<
+1959 0 obj <<
/Type /Page
-/Contents 1956 0 R
-/Resources 1954 0 R
+/Contents 1960 0 R
+/Resources 1958 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1916 0 R
-/Annots [ 1958 0 R 1959 0 R 1960 0 R 1961 0 R 1962 0 R 1963 0 R 1964 0 R 1965 0 R 1966 0 R 1967 0 R ]
+/Annots [ 1962 0 R 1963 0 R 1964 0 R 1965 0 R 1966 0 R 1967 0 R 1968 0 R 1969 0 R 1970 0 R 1971 0 R ]
>> endobj
-1958 0 obj <<
+1962 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [259.4835 737.5313 328.1555 749.5909]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1959 0 obj <<
+1963 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [172.152 677.1897 267.6829 688.9903]
/Subtype /Link
/A << /S /GoTo /D (root_delegation_only) >>
>> endobj
-1960 0 obj <<
+1964 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [352.4539 423.7962 426.1073 435.8558]
/Subtype /Link
/A << /S /GoTo /D (server_resource_limits) >>
>> endobj
-1961 0 obj <<
+1965 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [387.5019 393.5457 456.1739 405.6053]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1962 0 obj <<
+1966 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [381.9629 363.2952 450.6349 375.3548]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1963 0 obj <<
+1967 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [398.5803 333.0447 467.2523 345.1043]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1964 0 obj <<
+1968 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [393.0412 302.7942 461.7132 314.8538]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1965 0 obj <<
+1969 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [255.0796 272.5437 323.7516 284.6033]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1966 0 obj <<
+1970 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [311.5276 242.2932 385.1809 254.3528]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1967 0 obj <<
+1971 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [315.9507 212.0427 384.6227 224.1023]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1957 0 obj <<
-/D [1955 0 R /XYZ 85.0394 794.5015 null]
+1961 0 obj <<
+/D [1959 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1954 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F48 1253 0 R /F41 1233 0 R >>
+1958 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1970 0 obj <<
+1974 0 obj <<
/Length 2798
/Filter /FlateDecode
>>
@@ -9218,194 +9174,194 @@ Wüy,O®ºÞ{0î¥ÇÇÇKÃç$ÚbpûBHzìú'WÞV«XQ
BY®ú$þžòòŽò"W†ŸañE«ÕÕ E€ëy›R]ÀOøÛýÕQM2ÈdÓ+Т&˜ÄÖÒ€Òù„îN „ì<h¸TXÍñ0"=Yö)-(fѤkFÝ£ñòºë;3ä@ÉÔyíe’äF‹®»)éxÚñÈê7Oj¢TÆ’óß‚Ò4"[iÕQ Íš]•Ð]@ תyº/ãhGI.%O3hQ#z »>çp©èqxyÕO†>€,ì8%:‡ëC׋”â~ÂíØîó57t"$5éhQSL"kIÙq»W
b»Ï£ù0‘^Š
endobj
-1969 0 obj <<
+1973 0 obj <<
/Type /Page
-/Contents 1970 0 R
-/Resources 1968 0 R
+/Contents 1974 0 R
+/Resources 1972 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1984 0 R
-/Annots [ 1972 0 R 1973 0 R 1974 0 R 1975 0 R 1976 0 R 1977 0 R 1978 0 R 1979 0 R 1980 0 R 1981 0 R 1982 0 R 1983 0 R ]
+/Parent 1988 0 R
+/Annots [ 1976 0 R 1977 0 R 1978 0 R 1979 0 R 1980 0 R 1981 0 R 1982 0 R 1983 0 R 1984 0 R 1985 0 R 1986 0 R 1987 0 R ]
>> endobj
-1972 0 obj <<
+1976 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [352.879 390.8395 426.5323 402.8991]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1973 0 obj <<
+1977 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [334.0699 360.9009 407.7232 372.9605]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1974 0 obj <<
+1978 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [373.9 330.9624 447.5533 343.022]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1975 0 obj <<
+1979 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [319.6839 301.0238 393.3372 313.0834]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1976 0 obj <<
+1980 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [307.1508 271.0852 375.8228 283.1449]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1977 0 obj <<
+1981 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [334.8268 241.1467 403.4988 253.2063]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1978 0 obj <<
+1982 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [337.0185 211.2081 405.6905 223.2677]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1979 0 obj <<
+1983 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [364.6945 181.2695 433.3665 193.3292]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1980 0 obj <<
+1984 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [374.6372 151.331 443.3092 163.3906]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1981 0 obj <<
+1985 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [292.0276 121.3924 360.6996 133.4521]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1982 0 obj <<
+1986 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [319.7036 91.4538 388.3756 103.5135]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
-1983 0 obj <<
+1987 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [460.1655 61.5153 533.2211 73.5749]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1971 0 obj <<
-/D [1969 0 R /XYZ 56.6929 794.5015 null]
+1975 0 obj <<
+/D [1973 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1968 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R >>
+1972 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1987 0 obj <<
+1991 0 obj <<
/Length 3618
/Filter /FlateDecode
>>
stream
-xÚ­]sã¶ñÝ¿Bo‘gN,¾ ¦O—‹ïêLã¤>gÚi’Z¢-ö$Ò);ίï.€ø%É3Éx<K`¿±» Ÿ1øã3«&35K3•hÆõl¹½`³G˜ûtÁ=Î" -ºXßÜ]üí£LgY’afwµl¬峻ÕÏóÿxÿãÝÕíåBh67ÉåB6ÿæúæ[‚dôóᇛן~º}™ªùÝõ7¾½úxu{uóáêrÁ­æð¾ð+yáãõ?¯hôéöý÷ß¿¿½üõ«»ÈK—_Î$2òÛÅÏ¿²Ù
-Øþî‚%2³zö,áY&fÛ ¥e¢•”²¹ø|ñ¯¸`gÖ½:%?¥m¢…2³…I&¬˜–2K˜©-RÅJ¥,ø””J¹üýawÉí|ñ°«·‹Uù€Å®¨–E3”‡”`鬻шœˆ5AèЊI}z>ÅåB=o×n æ«¢Yîʧ¶¬+š©®sœÁ"™B"ÞÄÖ€–,KW2¼] 9 %R1Ýãœ&w3ÜvdñÏÈ`¼. ay`M—›„IR€FÈÓʈXg¯†„€Ï­æ¿0Ínê6j&oI5¨£±*RÍÜÀžœ'™Öâ­*Q¶«’4±©ðÙæM[ì&'A~Ú´¼ZM¬Ä3ÀIƒr›Mþ\L­$™Zã±–ëºDº\HÈá=Tuë¡Ïy¹Éï7ž{°3\üQW~´)ž‹MR)1¸®4à§ý»‹uÜ¿#òñ¥xYïÀ êÝëÈŸ•†¨ÂÔéí#ÖÄþ=Ö,É·}œC÷äÒshL:4¨Ÿ P#›fc°·‘ <ž÷_!eÁNº,œò߀†çñº=ÿ¥£ ýwDå‰Éà<)úˆuŽŒÑjä½Ç¬Íd‰¶YzÆÚ:X'¬-`9ÿÛ·õbU5M±ÙxjÊR{zóˆ5±{ÏÖ”LŒÍxûÿ‚ÇËJY˺ú…1ñ¸'×]ô¡ÞÑ`õZåÛrIßÞ|Ɔ(óJ|ÓÔ4Ú7 Úué—®ÃY„Ð:¼°©_høœï^Ëê‘VÜ\ò9:Cdé W™¤Jò yÞ6o‘*´ êóÕƒùÓ`›Wùc±-ªB³äl~·.ºÁ©©Ú5=ùǧºiÊ®š¢mÌæë ßcxˆƒd#¥å’˜ýû„Z›€>´÷§b·-Û†ÞÜÈ‹ ÷ýîŸVyë„KW+µöÓEqô°ßl^i–øZ4åcÞ|YHzGOñuÐߎdˆëJM³Q>¨e½ÝÆ“¤”àUÓ„]µòºBB]ë+xrV7uö(8ë0cb¿ªÜ*ðl£«FöQV-üOiS$Ãø!ÉYnö+Ç<¼HÌ ° ûú¹x‡ãt~¿oi–üÁ‚‘æNîÕÿöMÛ_‡;n¿òÀhÊ‚‘!8…DzzqaSˆy³\«ý&’/—µÓúÊùb´uoKá–þÊÃÊmÄÛm&–Óæ2MQŒâ1dÚFA ×pð€œÅ¹"à/º/LDæѺÈ$©l?Rd§’%!Æk{43¼€u†%ÓD¤)ïSâí¼·-¤oR þVQDüsŒÖíˆÂ…£mqTÒ³4Uú´,"ÖRÆ«!)¸oB¶©à\·Â¢Å³´TœˆF+nÓ~„€7ŽEmåù¹•YXw™C\k&¶—ʉèâ¸Öj*Յ㇉°˜ó# qSç+Q°Æ¥ìõ–žÚÀ?G)÷N–Ò%fnÒÅð.Ï3ô`àKÂîç—3!S†ÑKÙ®iñi$ÆøÂÃMÆc Ùz.¦‚&7L^¨6Œc5¢F@™äæmIyöX©ß ¥²žFLÔˆé!j„ —s«A ¥ÓO{=á`¨'„ÑY«¡vðŽ;K€{¨Ï
-;•B"ÉÎt ;HÇ˺€äœì,ß,(Q_@:µ®WãÖ @Ñ«“$D¤1 ýÆ`Šã´G„¯íxÆ&j;„:ÁA¬íðÁÕv8pµ\E‡ªèp*:­é”Ð<>ñïW‹B˜-R° nÒaý ±£o üz¢iDR÷=§ýö¾Ø÷¼òù‡÷=OòyrÐÁnÿ} E(±SûÄÙt¬ +†™é^+7`±×:in)(1v®X,GdÆ1n`è’1—O=SŽ/ &Šà^¬
- Ç8¿"ôõaðÓÍõp¤ð@\®ñàT
-ø¤óª‡Çq
-®}tQý›œD@²èùuòº†Ã!E'vH«c‡.CÒz¿¡ÌÒÎBÝï·O4EIª Iªã'µ ¡¸iÌ™˜Ó#Æ
-»ú´à#Ö9:F«LÀE
-XœéÓ¦ÖÅ:njëpŠiï¦X@Ú¸¥£ªgqZ€æ$k‚
-1èÎÜ#㯹Í;ÂÌð6',Õ' OCuÉ»';¶„~†ïѪG O§P=k}Në !ãÕN[œÄ63òŒåu°NX^Àê5h—û]±€Šµ¬h<¤D0žHÄO“±&hé²/È™ hùkÞIŽF ¼ê¨*)–1ÛcúT³<àŸa¼î› Ê0'ƒ²ù¤"Ö9BF«½¢Rb¥DÞ$~ÚÊCT$SØ’+Îä¡:G~ò%5Ž¬7岜L÷ µ:áÂPmå?SÆ}?Íþé©Þ¹+(yàKMà|Q¦Ê±;L
-$оÜät{ÏÒùK½ûÒÐr^4ØקYwïƒÜã¸ä›™ù1™¨Ÿñi´ry4ü¢E&4¼né×™•G{T4 ÆEWÒ2ª‰æ½oïn˦‰þNµø¡åîû«×©ÞO¿ß‘ÜMÆtéP‚úG´‚wé¼ÝH˜±Cµð,#}¢›@`ØÖ¡œÂjö.@ŠeE¾ ¤¥ÊgC€ÚÝ÷ãË/®Ý†°èznýî’n3ìÖ,D&çïéEßæsÍ ÷»»„"nS4D­ÿÑ
-òq–eo>Õ¸9B½ókØç¾8ö½ºÔx±5•¿ôŸþ–ýð¡¿Jií±a˜J¤Ìx
-âLŽ¿õ°‰¶P"Œiÿ?
+xÚ­Ûrã¶õÝ_¡·È3+w‚éÓfãÝ:Ó8©×™všä–h‹]‰tDÊŽóõ=€x“ä™d<À!pî7Ïüñ™Õ “™š¥™J4ãz¶Ü^°Ù#¬}ºàf€]¨oî.þöQ¦³,ÉŒ0³»‡Î^6aÖòÙÝêçù‡¼ÿñîêör!4››är¡ ›s}ó-Ídôóᇛן~º}™ªùÝõ74}{õñêöêæÃÕå‚[Íá}áw8òÂÇë^ÑèÓíûï¿{ùëÝwWw‘–.½œI$ä·‹Ÿe³ýÝKdfõìX³L̶JËD+)ÃÌæâóÅ¿â†U÷êÿ”¶‰ÊÌZ$™°bšË,a¸¶HOt*eä²àS\PÈåò÷‡Ý%·óÅîÞ.Vå><»¢ZÍNR‚¥³îA#t"Ô>¢ƒ&QLôñù\— iô¼]»š¯Šf¹+ŸÚ²®h¥~@¼Äq›d
+‘xY\²,a\Éðv5¤$”HÅtrZÜ=ÎhpÛáA„?Ãñ¾Ä„å\T]n>DI˜4BžF„:ƒÈx7DlÆh5ÿ…ivS·Q2yK¢AE±pæÎä<É´o‰²]‘¤‰M…—È6oÚb7!8 üÓ&€åÕjb'žL„Ûlòçbj'‘ÈÔµ\×%âå\Bî/衪[?ûœ—›ü~ãçs?íÔ•mŠçb“
+o¾¬‹
+8½£§ø:ÈoG<ÈõƒRÓ샗jYo·1’ô¼jbš°«V^VˆCÔëU•XÁ?к©Ø£ ÖaÆÄv; ªÜ*°l£‹FúQV-üOIS$Ãø!ÉYnö+G<¼HÄ Ð ûú¹x‡ãt~¿oi•ìÁ‚’æNîÕÿöMÛ߇;j¿ò“Q•#Ep‰øô$âܦóf¹.VûM@%_.k'õ•³-„hëÞ‘Âmý•Ÿ+·n[´9¨XNO˜Ë4E1òÇiŽ\Cà>‹s"À/º/LxæѾH$‰l?bd§’%ÁÇk{83¼
+èÓi/ïº;Ô²ù~ÓöRêˆ÷Dþ !“½ýì„=‘)&g‰0™í&ˆS…J!‘dgº„ ãe]
+±SûÄÙt´fZ +Ó½Vn@c¯uR=ÜVPbì\±:YŽ(ÈŒ£ß@×%c.Ÿz¢:ž €MdÌ{¶Âì}q8êƒåZ+U6¢Óq"dwçE¾\{î‚/?*šèä¨täôºprÊH‘p
+Úû¨7œA‰dÎœ¡&è÷†U’êt€Áµ÷.ª““H½2¿N^×pRt|‡´:vèÒ9$­÷Ê,íü!Ôý~ûDK”¤Ú¤ZP~ ‚H`ˆ[Æœ 'szDà{9tÞ:
+s‡ª WVeó…æ)£‡©œž#*0õ\ì§Ä‰*ÃÂ%ˆÒ]÷.¤JÅÊÑj}Y†Ë¾‰óMi38mÂh<Žªª=ÕR5ÍÌ`9÷$çe½ß ’À²AɬLJ¯ãÄ@s„:ÓîîB° 
+U=×jÔ0'‘ˆPXˆAïÄ00æÍmÞb†· <a©>¡xªƒLöÈ=Ù±%ð3tv=ªxzÔ8…êYësˆPgïvZó ÛÌÈ3š×:¡yª× ]îwÅ*Ö²¢ñÁx" ?J„šÀ¥K¾`Àg6Àå¯qx')5Ðñª£J¨¤LXÆlèSÍò
+מY*͵D]õÔ&ÑIe çès_Ü—›œnïY:©w_RÎ ƒûú´êîýa{—|33""0õ+>öO.†_ÔÈ„†×-ý:µò`À€Š†A¹èJZ& @5Ѽ÷íÝmÙ4ÑÞ©?ô¡Ü}õ:Õûé÷{#»É˜n"ýJÐAãˆTð.]˜·+ 3v(že$O4p Û:”S¸BÍÞp±¬¨Ã—¡´Tùlh¢v÷ýøò‹k·á\4=·wKwvk"“ó÷ô¢oó¹f†ûÝ]B·)"Öÿh
+çpÒÔoŽÜ<µÝÍa¶Û²,Qñ3ż[ð·ziÇ#ÂCTZ؈¶ùm_4--šMþ6nè7¯ø^ ‡Û?„@cõ[Ò´û)<EÞ‹“>÷îóõ'o!¾¾„ <‚¹¶ÿ„=áü»Åx¼öm-.;ôíM^õ;À«¢E¡VÓ½Ã[§ aÒÎE'< /õʆ†¬Ø¤Çb‡¨ôíVš*Î;Ÿ´ùÁ©§¾Ã0@ Biåº\%™cïäa¿¡gRU\ òÒãÞNk §>)uS ÑIÛ±7œºØÅjX½²Lêà­š€·Ô°†ÔͦÁÕ7°ðŽl¤@äôxÓ¹ÏÅ`Ò7oµðHdÛc’
+òq–eoŽjÜÁÞÙ5œs_û^]j¼ØšJáß3úOË~øÐ_¥‰´öØÇ0L%Rf< …q&ÇßzØD[(Ƹÿš$‡endstream
endobj
-1986 0 obj <<
+1990 0 obj <<
/Type /Page
-/Contents 1987 0 R
-/Resources 1985 0 R
+/Contents 1991 0 R
+/Resources 1989 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1984 0 R
-/Annots [ 1989 0 R 1990 0 R 1991 0 R 1992 0 R 1993 0 R 1994 0 R 1995 0 R ]
+/Parent 1988 0 R
+/Annots [ 1993 0 R 1994 0 R 1995 0 R 1996 0 R 1997 0 R 1998 0 R 1999 0 R ]
>> endobj
-1989 0 obj <<
+1993 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [397.3443 737.7676 467.1586 749.8272]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1990 0 obj <<
+1994 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [321.49 695.7982 382.69 707.8579]
/Subtype /Link
/A << /S /GoTo /D (options) >>
>> endobj
-1991 0 obj <<
+1995 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [357.6499 593.8005 436.0651 605.8602]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-keygen) >>
>> endobj
-1992 0 obj <<
+1996 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [455.3558 593.8005 533.7708 605.8602]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-settime) >>
>> endobj
-1993 0 obj <<
+1997 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [317.0267 306.119 385.6987 318.1786]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1994 0 obj <<
+1998 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [356.8967 276.1048 430.5501 288.1644]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1995 0 obj <<
+1999 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [432.0945 246.0906 500.7665 258.1503]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1988 0 obj <<
-/D [1986 0 R /XYZ 85.0394 794.5015 null]
+1992 0 obj <<
+/D [1990 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-614 0 obj <<
-/D [1986 0 R /XYZ 85.0394 231.6054 null]
+618 0 obj <<
+/D [1990 0 R /XYZ 85.0394 231.6054 null]
>> endobj
-1342 0 obj <<
-/D [1986 0 R /XYZ 85.0394 206.638 null]
+1377 0 obj <<
+/D [1990 0 R /XYZ 85.0394 206.638 null]
>> endobj
-1985 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F48 1253 0 R /F55 1336 0 R /F41 1233 0 R >>
+1989 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F63 1385 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1998 0 obj <<
+2002 0 obj <<
/Length 3395
/Filter /FlateDecode
>>
@@ -9423,27 +9379,27 @@ H×/Öó®¬o¦ Q$JŠLó’™@bûVe–%³K¢¼kïË´ŽÇQ^H‹›eÁN2ZPvL²‚xÄc'~}FN2QwŸBê%J ;Þ
ÜãªjZà¬!ÕrAüòS_nš¢>ºN;„C{7Å"ï ÿJg­Só”»b¥]’¥ÙÞ]ñoÁ:£ÐQ h\
¼¸FŒY͇EÍ¥‰Q©n¢GJÄœ\ƒe–%i&BHpý¹TÁŠ/?‹~Îù«Â‹ßrU`&€å-ë þ÷i!~B-|ªøBe•ñý1v…É÷«ër¨\Rj·—É—ÒíBTíwÛ¦/›P==Û¡’0±Ü¹écÂŽÁ‰Åizl\Ú€Ç9(8Ú†/ÛZ4"•:÷ÿ±ù>b-oi…}ÔŽmæŠ/
endobj
-1997 0 obj <<
+2001 0 obj <<
/Type /Page
-/Contents 1998 0 R
-/Resources 1996 0 R
+/Contents 2002 0 R
+/Resources 2000 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1984 0 R
+/Parent 1988 0 R
>> endobj
-1999 0 obj <<
-/D [1997 0 R /XYZ 56.6929 794.5015 null]
+2003 0 obj <<
+/D [2001 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2000 0 obj <<
-/D [1997 0 R /XYZ 56.6929 297.7942 null]
+2004 0 obj <<
+/D [2001 0 R /XYZ 56.6929 297.7942 null]
>> endobj
-2001 0 obj <<
-/D [1997 0 R /XYZ 56.6929 285.8391 null]
+2005 0 obj <<
+/D [2001 0 R /XYZ 56.6929 285.8391 null]
>> endobj
-1996 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F53 1328 0 R /F48 1253 0 R >>
+2000 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2004 0 obj <<
+2008 0 obj <<
/Length 2363
/Filter /FlateDecode
>>
@@ -9456,26 +9412,24 @@ JÕ‹˜_¤«ŒLÓ,/¾ñ~=OëlNö°Œú„Õa‰12t>+‹:+j(¤¤–wôŒ…ß]Âbn‡m&…pqØùêåõcÏüŒ`\'*ü/
„gô+Ï@¥³oÛ×}¨¨“BEáJëcH1À{e|»†9úePQ\n¡‚/±…
¾ôCâ9côQ¨$0×=¨„6T0UËÇØi4!§4c!5KœÙs’Ï`•‹Ø ™—e»§Â (¡sæ5Á^Sã NŒ³Ì  í H'Éôª¿"ÞóNmqâl_ú5‹ö”ÿš=/**²Jg‹¼È(w½É‹Y¾N—ôŠÊ¿Jǽ1VúÛ?&ç¿|"g`
w)ABm[E+º4†ÂdJ‹9ÙÚ{‘¨~Ë6!’‰!EÛ8#Ÿ.W”Ý 2 ùy0·CÁ—è·1I¨jʞ䶌6~}¬”o棔£ D9Š÷T&Ïé%°ž;ÞÀ… µ{#…½Á<)(!žÄƇèÒâÛÀ½Ï—ä¤| KZsÁÆÂÀÓµ|iäéÿ4J
-"’¼ƒT°lÀ³$W° p¥¡–¬éIú¿ÏŸ²H›tÈ‚o,˜h‡¬%=¦`º#þ=ijž4þi§ǃZ(g…ÉЋqQíý–:h¤˜Òïº&P§§ÿg)‹ µ/Š¸_Å£@OË£“úø kŽñˆ{fœ¢˜ÿëfj^ãyà¸Ú QÂ[¤QH§ñùs¶™ÒA­l²ZÄ…·-—z ŒÌZÀIó]¬Ó%’—Šˆ„‰-=ñü’_P2¢‹ —z
-7Þ~|¥ƒâp"kf¼LN OÙœTñŠb{DA!˜–aëR¿J‘•10ÆÏÉP›LkR6ônÆB%• ÞÛ›HO)/-Épƒ ;ŠlVtúDi+¸°”q wq`*²ú¡Ü|%s8‘ƒñ@­Y¹‰r¼.‹yü˜åAN¿i*Îû#üFÄY{ü c t=+æ¾ëÛÇ›-*pý+™p„øüp}þ邲&“*««ÝšÓ^çTêrOÝiˆÀUÈ“%;¬ã’sf¹'ÔqyJxÛkyrLÇ…‡øÉqRGòHeÝwÐñnÓÏè¸0Šéä»è¸x£Žw÷æ/®ãþ’«*NZÐq¿=¡ØgÿG'¼Eç›â²ýýlûÎLJ½V\3ˆÆÄ@†máž
-nöwÍÀ®ÁB¸¦Xgìÿm¯³ºendstream
+"’¼ƒT°lÀ³$W° p¥¡–¬éIú¿ÏŸ²H›tÈ‚o,˜h‡¬%=¦`º#þ=ijž4þi§ǃZ(g…ÉЋqQíý–:h¤˜Òïº&P§§ÿg)‹ µ/Š¸_Å£@OË£“úø kŽñˆ{fœ¢˜ÿëfj^ãyà¸Ú QÂ[¤QH§ñùs¶™ÒA­l²ZÄ…·-—z ŒÌZÀIó]¬Ó%’—Šˆ„‰-=ñü’_P2¢‹ —z
endobj
-2003 0 obj <<
+2007 0 obj <<
/Type /Page
-/Contents 2004 0 R
-/Resources 2002 0 R
+/Contents 2008 0 R
+/Resources 2006 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1984 0 R
+/Parent 1988 0 R
>> endobj
-2005 0 obj <<
-/D [2003 0 R /XYZ 85.0394 794.5015 null]
+2009 0 obj <<
+/D [2007 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2002 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F53 1328 0 R /F62 1379 0 R >>
-/XObject << /Im2 1368 0 R >>
+2006 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F53 1333 0 R /F60 1366 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2008 0 obj <<
+2012 0 obj <<
/Length 2887
/Filter /FlateDecode
>>
@@ -9498,60 +9452,60 @@ K„_ÛÆ­~QVæ8ÔïÂUœE±‡2áO#1¤‹Õ>Rp\ t,ü~§é¿w¾XõêϽ
–Üî §#,†m§Î„© ^ ÈmtR÷¶¦[¿³"ÑCih ’cÙ ¶BÆOÄÉÎi°wö2ݽ•tíZY)˜©:,¶­ÛôhájÂk½þÀ/ìÍiñ%ÉÝ£"2Ü Ö÷éî%‚ˆ¡äìÜÕ1Yª¡ÜWn¸µ•t6AÆß©I7*·ʺü¯‹+yèÐ…½[l”43<÷‹w¿Ïû3üwý NÃÇÂ>“u7N˜ÌIôîìJŸaЉ]OèkcžÀX"À°°sEöÕœ:»»› Äå×ÓÏ!öóy훃ÉÁ컿d"bB=Ó) 
…\º6ùêÍtÿ©#pü; PH%‰\Žw5ƒ#üÁç²o¾<zö' ‚3©"éÅ&ºÿŸéj2endstream
endobj
-2007 0 obj <<
+2011 0 obj <<
/Type /Page
-/Contents 2008 0 R
-/Resources 2006 0 R
+/Contents 2012 0 R
+/Resources 2010 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1984 0 R
-/Annots [ 2012 0 R 2013 0 R ]
+/Parent 1988 0 R
+/Annots [ 2016 0 R 2017 0 R ]
>> endobj
-2012 0 obj <<
+2016 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [312.8189 175.0606 386.4723 187.1202]
/Subtype /Link
/A << /S /GoTo /D (the_sortlist_statement) >>
>> endobj
-2013 0 obj <<
+2017 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [406.3277 175.0606 479.981 187.1202]
/Subtype /Link
/A << /S /GoTo /D (rrset_ordering) >>
>> endobj
-2009 0 obj <<
-/D [2007 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-618 0 obj <<
-/D [2007 0 R /XYZ 56.6929 385.3709 null]
->> endobj
-2010 0 obj <<
-/D [2007 0 R /XYZ 56.6929 353.2653 null]
+2013 0 obj <<
+/D [2011 0 R /XYZ 56.6929 794.5015 null]
>> endobj
622 0 obj <<
-/D [2007 0 R /XYZ 56.6929 353.2653 null]
+/D [2011 0 R /XYZ 56.6929 385.3709 null]
>> endobj
-1265 0 obj <<
-/D [2007 0 R /XYZ 56.6929 323.4096 null]
+2014 0 obj <<
+/D [2011 0 R /XYZ 56.6929 353.2653 null]
>> endobj
626 0 obj <<
-/D [2007 0 R /XYZ 56.6929 266.7517 null]
+/D [2011 0 R /XYZ 56.6929 353.2653 null]
>> endobj
-2011 0 obj <<
-/D [2007 0 R /XYZ 56.6929 244.4404 null]
+1270 0 obj <<
+/D [2011 0 R /XYZ 56.6929 323.4096 null]
>> endobj
-2014 0 obj <<
-/D [2007 0 R /XYZ 56.6929 158.1241 null]
+630 0 obj <<
+/D [2011 0 R /XYZ 56.6929 266.7517 null]
>> endobj
2015 0 obj <<
-/D [2007 0 R /XYZ 56.6929 146.1689 null]
+/D [2011 0 R /XYZ 56.6929 244.4404 null]
>> endobj
-2006 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F53 1328 0 R >>
+2018 0 obj <<
+/D [2011 0 R /XYZ 56.6929 158.1241 null]
+>> endobj
+2019 0 obj <<
+/D [2011 0 R /XYZ 56.6929 146.1689 null]
+>> endobj
+2010 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2018 0 obj <<
+2022 0 obj <<
/Length 2923
/Filter /FlateDecode
>>
@@ -9571,27 +9525,27 @@ B‰bFT#ìôD²Þœvã„eÅ:£1’ªYfy/ èèC¯w8¾x:G—Š¼X^eòt`8+Ÿ‚ÎyŠ{Ø}•×óă6x¦ÛAðí3µ´Y˜Fç
€ÊvÅûOsä±–÷Ðàþp3Ø“Qƒ§°õÉå(‘Ëöˆ©‚.3®RÖDä_‹ªÞ\ï…
an<Œ7^ºfXkïÿdûá endstream
endobj
-2017 0 obj <<
+2021 0 obj <<
/Type /Page
-/Contents 2018 0 R
-/Resources 2016 0 R
+/Contents 2022 0 R
+/Resources 2020 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1984 0 R
+/Parent 1988 0 R
>> endobj
-2019 0 obj <<
-/D [2017 0 R /XYZ 85.0394 794.5015 null]
+2023 0 obj <<
+/D [2021 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2020 0 obj <<
-/D [2017 0 R /XYZ 85.0394 671.961 null]
+2024 0 obj <<
+/D [2021 0 R /XYZ 85.0394 671.961 null]
>> endobj
-2021 0 obj <<
-/D [2017 0 R /XYZ 85.0394 660.0058 null]
+2025 0 obj <<
+/D [2021 0 R /XYZ 85.0394 660.0058 null]
>> endobj
-2016 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F39 1173 0 R >>
+2020 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2024 0 obj <<
+2028 0 obj <<
/Length 2982
/Filter /FlateDecode
>>
@@ -9605,27 +9559,27 @@ hZ.ÿUÛ89°an,Ï»>Ývü /1Ƕ̿L_wk(NErÄ5&V$oŒ±MÓ–1 lƒ¯ŽôŽ%"«±D¤É™4!!`À^;“‡
¶hCDW«Å¢\ÖnßåU ŽÇƒ‡ƒl‰æš„C€n‚ÇÊ”åÆ‹òƒŒÑiˆM4t­ ssøXE¹Eø~`Ø©Íq…Ý€Ìðt' ûÓ¹¬îx¬µÖ—ÒÈæ^ýØE=ö1Üì\Ôÿ¹^ÍD˜ÊH…jdÜl_ðrÑ0hSHATL
øšGRI¦eH–¦áN뮜ÍÊG ùAÊß^€47= “´~ »Œg*˜Úmý‚ª}P;ïͯa´*é@»½àºçÒ N@*µ?*õÍò-R7 €Hð/»;dm‘*IÄÿJ¡­ÈóÏ:Éc¦ÄïRò;D\^õ ^­õ~‰7 `ÆÖµù•—:±¾B²MFëcQ’H–Bðê…qöï?
endobj
-2023 0 obj <<
+2027 0 obj <<
/Type /Page
-/Contents 2024 0 R
-/Resources 2022 0 R
+/Contents 2028 0 R
+/Resources 2026 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2028 0 R
+/Parent 2032 0 R
>> endobj
-2025 0 obj <<
-/D [2023 0 R /XYZ 56.6929 794.5015 null]
+2029 0 obj <<
+/D [2027 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2026 0 obj <<
-/D [2023 0 R /XYZ 56.6929 229.6198 null]
+2030 0 obj <<
+/D [2027 0 R /XYZ 56.6929 229.6198 null]
>> endobj
-2027 0 obj <<
-/D [2023 0 R /XYZ 56.6929 217.6646 null]
+2031 0 obj <<
+/D [2027 0 R /XYZ 56.6929 217.6646 null]
>> endobj
-2022 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R >>
+2026 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2031 0 obj <<
+2035 0 obj <<
/Length 3019
/Filter /FlateDecode
>>
@@ -9649,45 +9603,45 @@ OHGÐ~WMûíƒP¤4AÅ°ÏßÖ&
ô’H‰‚8„ç(Q5@«œøv ?8šøÒ(˜}6þéwMûo»BˆZi*§Ã
BˆiZ8¦P"ÐǬ_@=çý¿ Pfúendstream
endobj
-2030 0 obj <<
+2034 0 obj <<
/Type /Page
-/Contents 2031 0 R
-/Resources 2029 0 R
+/Contents 2035 0 R
+/Resources 2033 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2028 0 R
+/Parent 2032 0 R
>> endobj
-2032 0 obj <<
-/D [2030 0 R /XYZ 85.0394 794.5015 null]
+2036 0 obj <<
+/D [2034 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-630 0 obj <<
-/D [2030 0 R /XYZ 85.0394 622.0858 null]
+634 0 obj <<
+/D [2034 0 R /XYZ 85.0394 622.0858 null]
>> endobj
-2033 0 obj <<
-/D [2030 0 R /XYZ 85.0394 597.3835 null]
+2037 0 obj <<
+/D [2034 0 R /XYZ 85.0394 597.3835 null]
>> endobj
-2034 0 obj <<
-/D [2030 0 R /XYZ 85.0394 411.8393 null]
+2038 0 obj <<
+/D [2034 0 R /XYZ 85.0394 411.8393 null]
>> endobj
-2035 0 obj <<
-/D [2030 0 R /XYZ 85.0394 399.8842 null]
+2039 0 obj <<
+/D [2034 0 R /XYZ 85.0394 399.8842 null]
>> endobj
-2036 0 obj <<
-/D [2030 0 R /XYZ 85.0394 231.7148 null]
+2040 0 obj <<
+/D [2034 0 R /XYZ 85.0394 231.7148 null]
>> endobj
-2037 0 obj <<
-/D [2030 0 R /XYZ 85.0394 219.7596 null]
+2041 0 obj <<
+/D [2034 0 R /XYZ 85.0394 219.7596 null]
>> endobj
-634 0 obj <<
-/D [2030 0 R /XYZ 85.0394 131.5008 null]
+638 0 obj <<
+/D [2034 0 R /XYZ 85.0394 131.5008 null]
>> endobj
-2038 0 obj <<
-/D [2030 0 R /XYZ 85.0394 107.0349 null]
+2042 0 obj <<
+/D [2034 0 R /XYZ 85.0394 107.0349 null]
>> endobj
-2029 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R >>
+2033 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2041 0 obj <<
+2045 0 obj <<
/Length 3197
/Filter /FlateDecode
>>
@@ -9703,151 +9657,156 @@ k^A͛څS(öS `A¡I‘Ï´5qfäçhkƒ†™þ2m=½jàâÐbJ|‰#VœX p%ðÒ8Wâ UòŸƒáÕÈl¦Hþ~}
ÉWRq-NÙªù“#øéÑ>½5„‰m±rcL•7ºmÃußy8óÈ—jË»š¬÷¬T¤¹¬‘‡êy±"ˆÊ­»aSEûònƒuc#²àYÂ(µ}PïvM[v\€”¾q2àbhÏŠA®ÀvÀŽQ*º
¢’CQU\0½ß—Ý|Ê1ì\í+.ÖZ.·¡ØÂuAª·ø’ò—Iè '쩘¿pB‚ŠŒFäGo0Á6/ïw~ CAæôás}¿ÑÄ•4ì‰Iœøt¹ObªÞÙ·ÄË}l™ôãÇ[b^ü¢}ð¥£éÇ5Å ì.çR,ÿ4!Œísl(‡‡¡
endobj
-2040 0 obj <<
+2044 0 obj <<
/Type /Page
-/Contents 2041 0 R
-/Resources 2039 0 R
+/Contents 2045 0 R
+/Resources 2043 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2028 0 R
+/Parent 2032 0 R
>> endobj
-2042 0 obj <<
-/D [2040 0 R /XYZ 56.6929 794.5015 null]
+2046 0 obj <<
+/D [2044 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2043 0 obj <<
-/D [2040 0 R /XYZ 56.6929 613.3608 null]
+2047 0 obj <<
+/D [2044 0 R /XYZ 56.6929 613.3608 null]
>> endobj
-2044 0 obj <<
-/D [2040 0 R /XYZ 56.6929 601.4057 null]
+2048 0 obj <<
+/D [2044 0 R /XYZ 56.6929 601.4057 null]
>> endobj
-638 0 obj <<
-/D [2040 0 R /XYZ 56.6929 465.8716 null]
+642 0 obj <<
+/D [2044 0 R /XYZ 56.6929 465.8716 null]
>> endobj
-2045 0 obj <<
-/D [2040 0 R /XYZ 56.6929 438.5672 null]
+2049 0 obj <<
+/D [2044 0 R /XYZ 56.6929 438.5672 null]
>> endobj
-2046 0 obj <<
-/D [2040 0 R /XYZ 56.6929 397.0946 null]
+2050 0 obj <<
+/D [2044 0 R /XYZ 56.6929 397.0946 null]
>> endobj
-2047 0 obj <<
-/D [2040 0 R /XYZ 56.6929 385.1395 null]
+2051 0 obj <<
+/D [2044 0 R /XYZ 56.6929 385.1395 null]
>> endobj
-642 0 obj <<
-/D [2040 0 R /XYZ 56.6929 216.4249 null]
+646 0 obj <<
+/D [2044 0 R /XYZ 56.6929 216.4249 null]
>> endobj
-2048 0 obj <<
-/D [2040 0 R /XYZ 56.6929 186.4354 null]
+2052 0 obj <<
+/D [2044 0 R /XYZ 56.6929 186.4354 null]
>> endobj
-2049 0 obj <<
-/D [2040 0 R /XYZ 56.6929 97.1422 null]
+2053 0 obj <<
+/D [2044 0 R /XYZ 56.6929 97.1422 null]
>> endobj
-2050 0 obj <<
-/D [2040 0 R /XYZ 56.6929 85.1871 null]
+2054 0 obj <<
+/D [2044 0 R /XYZ 56.6929 85.1871 null]
>> endobj
-2039 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F21 950 0 R >>
+2043 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2053 0 obj <<
-/Length 2117
+2057 0 obj <<
+/Length 2118
/Filter /FlateDecode
>>
stream
-xÚµXÝoÛ8Ï_¡‡{—Ÿy86›:=/šd/õ^ÛöA±•D€,¹–Ü4û×ßCÊ’£4ÝëD49Îço†d…?iE¨02ÊŒ$Š2­6'4ºƒµ×'ÌÓ$(Rý¼<ùñ\d‘!&åi´¼ðÒ„jÍ¢åú}|öÓ_—óëYÂS2KTJ㟗¯pÆàçìêò|ñú·ëÓY&ãåâꧯççóëùåÙ|–0!³øýêrŽDç‹7óÙÇå/'óe/òP-F…•÷ÓÉû4Zƒv¿œP"ŒVÑü „ã͉T‚()D˜©NÞžü³g8Xu[§ÌÄ#™Q"$Ñ)°=%æ@l¨¥„“~“ŒŒc”œ–‘‚§œ ––î£ÀËÃŽ1«ƒËSɉLeÚ»œóˆ1b”âÖ熒ŒÁöŒ 04—Îç—ÖŽÒ•Jf %JÀ:uW³$eñþóø‰ó€§d Zšjˆ--íÑѧˆ*H4;]6p?.6<zÕ€FÑ@©À8rvJ¥|ÇŒg„fÐÉ$¬Y‘—÷ª•Š-x‘*ÔúËÕõâõ«?â)!$M=]UÖE;K„¡qYã·önPÌ¿ä›mHò_ºµKÍlwÍŒ©øs¹.ë;œZ5u‡Û;Ï´ùsL¡ˆ¡`’Þ§ ^SW@Ïhüó G–§±Ÿ_7ø­›ÎŠUѶ9È2•a{¾ÝvN0†Š² ‹]\uû¼Âñ¾Íï
-«d·”Ôûp
-бè÷…¥å™vºÛoY¯ËUÞ…Ùû¼ #?5°‰ßÑâwWTyW~žqñì÷VeÛ nÜxåïÊš‡´4IDÎ0¾/C-(“š(9@Ò÷áÇ8éiš²CÒ³aÒ:e ¿5@—µ¼…f ”ÆW` ¢óïM]xœ.+?zUîŠXcÐEÈp(䟡’õi—p­ã‹L½Ã±g¥M|Þì6Σ0û·8(ë²+óÊÆŠý¹.>PÊkç'·Š[¯ÏÏp
-„ÂQ^{š{deâvÓŸöEÝn7EQã¨øÒõºXÛ˜…ywo¥šˆIŒлWad^—][T·~ÜâwUå­B,[{fíéAIìf Z5î»îÉ=Õ׎ßì[ÏìÆÏ4^€^î6ßYH¯$xMz÷O3O£`èm/ÕªÚ¯=˜B` €J¡ÎR6…¦üM9´!H÷Ã+IŒf"0Z\ž½ùíÕ|‚“‚$ÊøÚ«^O°ä’¡³Às¹|ƒ†Hx
-µÍPH a U¥<äa>#–Á–?áçU4ï’¶¼«aÈ^΃w÷.ìG胑@ÿ :
-U~ST¸f°ˆd§kðŸ;ůP^Tk««Pa¯ˆóv[ì0` n…ÙnÆb'æíOÛÇÍMãODOoñÓBˆ¶GÒ­ö;\tÑ ;š]–Ç9sÚÇ`—ïºgâóc¬nUñCH¦q"u¡‚³QЩ”pÊCÐý IäÄv½ãÝaGðÎ3A¤Ñ"’
-Teß‚Å€ÄZëg¸g˜ 8:$ Ƴ”€d¬?×
-h½=¡'ÄØVµøûDÄA‹Æ-¬#…õômSU̓ 7‹ÞŽ»¼¬\Óa­›ÎÆ™ÈhrdF&Cf¨AfðãÌé>./gÆÛǺ˿üuâ|§³t²9SÃ&NfD0Î=ݺÙäeÌ8::G.eˆ–÷Ü0Ë¢¬šÍÆÆû†1¢¥Œ>N™M—ŽÒ~A.C ¶…Ë@ÅB¢0¯š#(„e,?,~(±ž0_ ¸ëàló” ~óúûúôp¥ƒ”5î8ªDÄök"À—åˆ;CÎ2ŸžÌåî®íSƒ*#P@Ö¹;Hùêæ üt‹ßÜ-§q ]¹*»©zÃ2ðS2Ê+M*øwA„†JCá¾, U…ÿŒ“!Ë €vM¨q=Ù‹(!PâYMÉTI%™àâQEÔEÔEÁÓ€ jT2&ü—Qè2þb¿HªIÆÙQ<…Â0 rêƒ|P^Yeh[¬á~è±úâ2–P°Fú²„cÊÒwûMßè•·Ó5Í]Àœ7mSí»‚L'[¸ÑJmq˜YàÔ#i’`¸ÀÀš,ÈïÞ½ßXÀ>»<½°2Ƨ‹Ëäíüú_óëi Æ󲑹¡Ÿ.?çU¯ü©Ìt,+Oæÿ>½øõÍœœ]]Ú‹’Ž%>u
-°†HÓlxq!âI9
-Mãÿ­ºÒQ QpÁ:àÍ-´ÓÏT#Íú>÷Åj„ ×L§JõÅÈé<ÅÎÆUöß7|£’gãrv€.ÂíKd1ö}QÀßBjßßM„ ƒXU‚å[LÆt`¹?Áåíò ~?jŠ]Å+‹¯¬DLÈå–ó.,–žù¶-Úh/n§®Lª{Ð|ÞMÐåIa<Y`?Ä$,žÔ¾6™ì™kh/ì
-ÊÛ•¿Ë‰,ƒ–‹êqŒ"(H<ãÆ®2D4GXé+Œ}¿#¤ù\ì<•³ÈFƒ´È&qö>÷çmw¥»žmÀ›”‘¬Oþ¯Ý‚o¤ qÕÔ«bÄÖ>6¥0Í8¢†„/&‡oùš<÷:¨cŸÔ'ÞÒiÿÜôÝ/÷‡W-ë|­ùð%{˜ZözoXÊê¡~,ºš( öTöÿ
+xÚµXÝoÛ8Ï_¡‡{—Ÿy86›:=/šd/õ^ÛöA±•D€,¹–Ü4û×ßCÊ’£4ÝëD49Îço†d…?iE¨02ÊŒ$Š2­6'4ºƒµ×'ÌÓ$(Rý¼<ùñ\d‘!&åi´¼ðÒ„jÍ¢åú}|öÓ_—óëYÂS2KTJ㟗¯pÆàçìêò|ñú·ëÓY&ãåâꧯççóëùåÙ|–0!³øýêrŽDç‹7óÙÇå/'óe/òP-F…•÷ÓÉû4Zƒv¿œP"ŒVÑü „ã͉T‚()D˜©NÞžü³g8Xu[§ÌÄ#™Q"$Ñ)°=%æ@l¨¥„“~“ŒŒc”œ–‘‚§œ ––î£ÀËÃŽ1«ƒËSɉLeÚ»œóˆ1b”âÖ熒ŒÁöŒ 04—Îç—ÖŽÒ•Jf %JÀ:uW³$eñþóø‰ó€§d Zšjˆ--íÑѧˆ*H4;]6p?.6<zÕ€FÑ@©À8rvJ¥tÇŒg„fÐÉdÊÈËûÕJÙ€¼H jýåêzñzáÕñ”Š¦ž®*ë¢%Âи¬ñÛ{7(f‚Æ_òͶ
+$ùÎ/ÝÚ¥f‡?¶»fÆTü¹\—õN­šºÃígÚ|9H ¦PÄP0IïS¯©«G g4þÀy†#Ë‚ÓØϯüÖMçŪhÛd™Ê°=ßn ;'CEYÅ.®º}^áxßæw…U²[JêŒ}8
+„ÂQ^{š{deâvÓŸöEÝn7EQã¨øÒõºXÛ˜…ywo¥šˆIŒлWad^—][T·~ÜâwUå­B,[{fíéAIìf Z5î»îÉ=Õ׎ßì[ÏìÆÏ4^€^î6ßYH¯$xMz÷O3O£`èm/ÕªÚ¯=˜ò!˜2(…:KÙšŽbÄ¢)‡6é~˜`%‰ÑLF‹Ë³7¿½šOpRD?pB{Õë –\!tx.—oÐ O¡¶
+ $ ¤ª”‡| ÌgÄ2Øò'ü| Šæ]Ò–w5 ÙËyðîÞ…à}0è_˜AGÁ ÊoŠ
+×ì‘ìt þs§øÊ‹jmu*ìqÞn‹&
+:•Nyº¿!‰’Ø. w¼;ìÞy&ˆ4ZDBªì[°Xký ÷ “G‡Ä#Áx–ŒõçZ­·'ôä‚Û
+£Ÿˆ8hѸ…u¤°ž¾mªªypáfñáÑÛq——•k:ì¯uÓÙx M®‚ÌÈdÈ 5È ~œ!ÝÇ%âåÌxûXwù—¿Nœ/àt–N6gЦÀ"#‚qîéÖÍ&/ëä`ÆÑáÐ9r)C´¼Ÿà&€YeÕl66Þ'0Œ-E`ôqÊ|Ì@h
+¸tŒö+°zpµ-\*…yÕìA!,cùañC‰õ„ùZÀ]gkœ§lð›×8Øן ‡+¤¬qÇQ%"¶_¾,GÜr–ùôd.wwm‡˜T²ÎÝAÊW7‡`¸à§[üæn9KhìÊUÙMÕ–¤˜
+QîXiRÁ¿ "4T
+÷e©*´ø`Dà˜ YN€´kÒ@ëÉ^D y„ÏjJ¦J*ÉÏ ˆò(¢F(¢(’žLP£’1á¿ŒB¿ñû…DRM2ÎŽâ)†aSäƒòrÈ(CÛb5÷CÕ—±„Ú€5Ò—%CPÛoúF¯¼®iîæt¸i›jßd"8¡ØÂVj‹Ã̧I“¤
+ãÉû!&añ¤öµÉdÏ\C{a820y@¶‡²»Ÿ,šàEÁÿ,¤A7r ¯áÒ X°={c«ùCÙGüR!
+¤9ºàÀJ_9`ìû-!Íçbç©œE|4¤Ež0ùˆ³÷¹?o»+ÝõìhëÞ¤Œd}òí x#eˆ«¦^#¶ö±)µ€iÆ5 $|1q¯E=|“È×ä¹×y@û¤>ñ–Nûç¦ï~¹?¼jYçk͇/ÙÃÔ²×{ÂPV?õcÑ•ÐDiÀ°§²ÿöÕ†endstream
endobj
-2052 0 obj <<
+2056 0 obj <<
/Type /Page
-/Contents 2053 0 R
-/Resources 2051 0 R
+/Contents 2057 0 R
+/Resources 2055 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2028 0 R
+/Parent 2032 0 R
>> endobj
-2054 0 obj <<
-/D [2052 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-646 0 obj <<
-/D [2052 0 R /XYZ 85.0394 617.17 null]
->> endobj
-2055 0 obj <<
-/D [2052 0 R /XYZ 85.0394 591.42 null]
+2058 0 obj <<
+/D [2056 0 R /XYZ 85.0394 794.5015 null]
>> endobj
650 0 obj <<
-/D [2052 0 R /XYZ 85.0394 518.3317 null]
+/D [2056 0 R /XYZ 85.0394 617.17 null]
>> endobj
-2056 0 obj <<
-/D [2052 0 R /XYZ 85.0394 489.3118 null]
+2059 0 obj <<
+/D [2056 0 R /XYZ 85.0394 591.42 null]
>> endobj
654 0 obj <<
-/D [2052 0 R /XYZ 85.0394 437.3327 null]
+/D [2056 0 R /XYZ 85.0394 518.3317 null]
>> endobj
-2057 0 obj <<
-/D [2052 0 R /XYZ 85.0394 411.1024 null]
+2060 0 obj <<
+/D [2056 0 R /XYZ 85.0394 489.3118 null]
>> endobj
658 0 obj <<
-/D [2052 0 R /XYZ 85.0394 208.889 null]
+/D [2056 0 R /XYZ 85.0394 437.3327 null]
>> endobj
-2058 0 obj <<
-/D [2052 0 R /XYZ 85.0394 179.8493 null]
+2061 0 obj <<
+/D [2056 0 R /XYZ 85.0394 411.1024 null]
>> endobj
-2051 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F63 1382 0 R /F21 950 0 R /F11 1353 0 R /F41 1233 0 R /F53 1328 0 R >>
-/XObject << /Im2 1368 0 R >>
+662 0 obj <<
+/D [2056 0 R /XYZ 85.0394 208.889 null]
+>> endobj
+2062 0 obj <<
+/D [2056 0 R /XYZ 85.0394 179.8493 null]
+>> endobj
+2055 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F61 1369 0 R /F21 954 0 R /F11 1459 0 R /F41 1238 0 R /F53 1333 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2061 0 obj <<
+2065 0 obj <<
/Length 1844
/Filter /FlateDecode
>>
stream
xÚµXmoã6þî_!N*._$Rì§s'M‘uö·(n»›ŽØr"É»ÝCiËÅç»E ‘ÃgÞ‡¤YDáE™$Rs)’Œ²,šo4z‚µ›ó<I`Jº\?Ïï®…Š4Ñ’Ëh¶ì`å„æ9‹f‹±$‚ Æÿ¾ŸŒ‡ Ïh|}{iÆãË_Ffã).HÏúóíä
-g4—÷“ëۛߦ£¡JãÙíý§§ãëñt<¹?Í~Œg{•»f1*¬¾/ƒŸh´
-A ”B¸ öó‹Ùì©«²6ó¶ül:}' B8xJtÊëákÕý仢¨Åd*É‚;¦¬[o\’<ÕÌ3-̲حۤm×=’eNxšÞ=h[‰óífcëä5ø"OE
-þ»]¬ËΊ¥X\ (NÛb Æ•–ïEõäs&œ¥*Í…LÎ4 XµhHO¤é±Ï¡>òúq¨m‹°°]“àÓö2w·p p´ìevÊ$à%hŒQ¹Oméûpy_4®í»ë4Z¤Æµ¦j ü}‡…ÛB¸OÆpÛ—ÎÆ_EIyÌRJE8à;±Y¯š-2NrÊÏ-Žþ
- Q …áÄõaiÂx¦B¡­‹¦O#®Iž+Ý-³o`2P9:·_Ÿ½u¯)Äêÿo)ÿo•ªá¦C^«·vÜŸ8Q™ÝçpÊ5.·jmkà2žcI­Áù‡ÆÔ¥ñ›\¡ÂˆœÍv爹A€×}¢»Ë’Û\­¿"µ(—–eér¾—n‡;5Æó•ß× K>ú­E…c …SÀÉo¯þ}µŸ«éÿê*xHB0·Â„”xIÊûÌÎXŸÙÑpAúŠô“©¬Nž×U­nLÛ åî$°ôÊOv'_v%Gr´äççmÝzÄÝ#ïxÚÝüÙÔ¿KCŽ¬_˜µy*ìEeßäšy]>žhrLù&ti‹im¿««)M?XgŽ^àC’ö¶cŸ¶÷ÓÛ›[x³I艔ØÛ'Üé»fùÚþg÷±„#ñO&8>Œ§¿§düÇèý‡»ñyPŒ+$/p¸œŒÞûÅ Bû;l×¢pvØ(~.ðÞl¿!ˆ'¼‡“u@Ÿ z¬boXÅþW ~Ò=ìPÇ5Èwføø™ ü<P4™~¸:×Ïù†¼žsÕ!VÌ;ì9¾ìиû™Âš·#¿\-xÿŽßôÐMä2žlþnÃ?„Vx[®¼€Õ²)ž×%âA™—À-9eõäÄdþŠ8<ü—r½îsç£?-Âósèðô]cM©½r@zåì.TÎv_%ÏØôçÐSìó®·Bº~>êÿ_]ÿrÿ0K|qBör¸š]ô¥Õy86vüâH~8Õ(òïhØdœìN HXŽÖ0¾7‡õ¹¥cP?hÿæN~Z$ïó`ÿƳEŠÓ"ÅùO‹<ÙEÐmÐ òµÃ!3ÎßÛ§M÷¡ŸÃã˜Q)E¤ù9r|EÕ¿SÚ:Ò,‡÷>‡§*Íû~¨¤ûGÌwÿ,zø UDä9ïþ¦Ø¹‡ÛŸ14Ððþ°X®g3þêW[F ’¶Žîÿø×WËendstream
+g4—÷“ëۛߦ£¡JãÙíý§§ãëñt<¹?Í~Œg{•»f1*¬¾/ƒŸh´
+Ð4W<ÝŸ
+I!”R—Á~~1›Ý!uUÖfÞ–ŸM§ïDO‰Nb=|­Ú⯟<ãQ)ZLf¡’,¸cÊD‡‰K’§šy¦…Y»u›´íºG²Ì OÓÀû±M@b« q¾Ýll¼_ä©@Ÿ°*`#Q
+N+ ˆ<Gó ×ËÏ^Gü˜ 3(á _šÇ[¤ï¬÷õ'Í(É¥Ë> šÝcc^v®˜íw=dylæ[7.œüRÚR³Ô®ZÛ+[7NÞ쮚K!÷¢‹uÙY±‹ Åi[¬Á˜£Òò= ¨ž|.Є³T¥¹©Â™« é‰4=öÙ!ÔG^?µm¶k|Ú^æî®¢àŽ–½ÌÎA™¼1*÷©-}bî1ï‹Æµ}wýF‹Ôø¯ÖT ´“Ÿ ï°b[7ãÉn;àÒÙø靖#)¯“Y
+B©|'6ëUÓ£EÆINù¹ÅÑ_a!Š¡0œ¸>,MÏT(´uÑôiÄ5És¥»eö L*çAçöë³7°î50…xCýÿ-åÿM A5\ÃtÈkõVÀŽû'*“¢›àN¹Æå6P­m \Æs,É¢58_àИº4~“+T‘³Ùî17ðºOXtwYr›«õW¤åÒ²,]îÃ÷Òíp§&À˜b¾ò;ðšaÉG¿µ¨p,¡p
+8ùíÕ¿¯ö“`õÑ!ý_]ÉBæV˜/ RyŸÙë3;š.H_‘~2•ÕÉ󺪵Ói¤Ü–^ùÉ.âäË®DâHŽ‚–üü¼­[¸{DâO»›?›ºñw©`È‘õ ³6O…½¨ì›\3¯ËÇMŽ)ß„.m1­MãwÂýstu5%£éëÌQÀ |HÒÞvìÓö~z{s o6 =‘{›à¤ƒ;"}×,AÛÿì>–p$þ‰ÃäLJñô÷ñô‚Œÿ½ÿp7>Šq…ä—“Ñ{¿xAh‡íZÎÅÏÞ›í7ñ„7ðp²èsAUì «Øÿ
+ÄOº‡ê¸ùÎ ?”ŸŠ&Òo
+oË•°ÚC6åÂóºD<(󲸲Ã#§¬žœ˜Ì_±‡‡ÿR®×}î|ô§ Ex~=Þ‚¾kì¯)µWH¯œÝ…ÊÙ.ã«ä›þzŠ}ÞõVH×ÏGýâÿ«ë_îf‰/îQÈ^W³‹¾´:ÇÒŽ?PɧEþ›Œ“Ýi ËÑÆ÷æ°>·ôo êíßÜÉO‹ä}ìßx¶HqZ¤8ãi‘'»º ÄR¾v8dÆù{û´é>ôsx3ª#¥ˆT"?çQ.௨zãwJ[GšåðÞçðT¥yß•tÿˆùîŸE¿¤Šˆ<çÝß;÷pû3†ÞËõlÆ_ýjË(áBòÀÖÑý?…CWÅendstream
endobj
-2060 0 obj <<
+2064 0 obj <<
/Type /Page
-/Contents 2061 0 R
-/Resources 2059 0 R
+/Contents 2065 0 R
+/Resources 2063 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2028 0 R
+/Parent 2032 0 R
>> endobj
-2062 0 obj <<
-/D [2060 0 R /XYZ 56.6929 794.5015 null]
+2066 0 obj <<
+/D [2064 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-662 0 obj <<
-/D [2060 0 R /XYZ 56.6929 655.4043 null]
+666 0 obj <<
+/D [2064 0 R /XYZ 56.6929 655.4043 null]
>> endobj
-2063 0 obj <<
-/D [2060 0 R /XYZ 56.6929 633.1281 null]
+2067 0 obj <<
+/D [2064 0 R /XYZ 56.6929 633.1281 null]
>> endobj
-666 0 obj <<
-/D [2060 0 R /XYZ 56.6929 552.1893 null]
+670 0 obj <<
+/D [2064 0 R /XYZ 56.6929 552.1893 null]
>> endobj
-2064 0 obj <<
-/D [2060 0 R /XYZ 56.6929 525.0283 null]
+2068 0 obj <<
+/D [2064 0 R /XYZ 56.6929 525.0283 null]
>> endobj
-2065 0 obj <<
-/D [2060 0 R /XYZ 56.6929 90.0274 null]
+2069 0 obj <<
+/D [2064 0 R /XYZ 56.6929 90.0274 null]
>> endobj
-2066 0 obj <<
-/D [2060 0 R /XYZ 56.6929 78.0723 null]
+2070 0 obj <<
+/D [2064 0 R /XYZ 56.6929 78.0723 null]
>> endobj
-2059 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F63 1382 0 R /F21 950 0 R /F53 1328 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+2063 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F61 1369 0 R /F21 954 0 R /F53 1333 0 R /F41 1238 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2069 0 obj <<
+2073 0 obj <<
/Length 3608
/Filter /FlateDecode
>>
@@ -9865,27 +9824,27 @@ l^!šæ^½:
ÃkúÏaGêþö‡Ó€ŒMp.¥)iaÂ4œµ1l˜œ°-~ å³
óHb
endobj
-2068 0 obj <<
+2072 0 obj <<
/Type /Page
-/Contents 2069 0 R
-/Resources 2067 0 R
+/Contents 2073 0 R
+/Resources 2071 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2028 0 R
+/Parent 2032 0 R
>> endobj
-2070 0 obj <<
-/D [2068 0 R /XYZ 85.0394 794.5015 null]
+2074 0 obj <<
+/D [2072 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-670 0 obj <<
-/D [2068 0 R /XYZ 85.0394 306.3415 null]
+674 0 obj <<
+/D [2072 0 R /XYZ 85.0394 306.3415 null]
>> endobj
1819 0 obj <<
-/D [2068 0 R /XYZ 85.0394 275.1221 null]
+/D [2072 0 R /XYZ 85.0394 275.1221 null]
>> endobj
-2067 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F14 976 0 R /F41 1233 0 R >>
+2071 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F14 980 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2073 0 obj <<
+2077 0 obj <<
/Length 2797
/Filter /FlateDecode
>>
@@ -9901,47 +9860,47 @@ i·*hc–67Ã~ìèP­Þ\¤„¬ ™CEw¬µÝt¦y1ϽõZD´ÁÐNu«»®†ž¶„üÏ/—]ºéúÚ?V°2mkùµ`
ÌåÃ0³…Ÿòë×¾øÑüs`h[AîÕ«WÃÃxßõر l2-u–fqXN</žn ™ÞÜ2Ma‹¥¸ñq1×£ÆUºßœ~ÀÕÜR«ßªâ3¬¤O¥“Ü°´ùòþ5íQ`Õ¬»}#¶ÈÈÆ€gÌýGaO±ø!¯Öùꉘùë¡HÉ3ÍÜ‹™³à!FÌ‚.h|÷œÅ½~ɉ…qø¶ÙÎö³™Ø= Í2íHqãM–È뿉Ýé&TÌM3[SãËLëÑàNwnº(Ú5¡TÄþâ­ŠÃ×Ë8:¥W \zsE/sèÅTYóÂ/*Ü ÆBúç@^ÜÒÄÁ7…K®û³Á»mU>äåÚñÑ kcà²+ P ß;:òھ゚ûá“9¿Š¡Yì*Ò ˆÆ¢öO¾TïTppîšžy¶)aý³SÈßÇ8pÍÃDNiR`_ä†h9ü•3 ˜cèÒ* UuKTŸ*E+Ò~ Üvší FKÐs¹zoÚk#…vk ¹.СH£ÄGhç{Hz ²¶£ @"u0wsˆ=Å̱
JÜzezmÀ?«žÌ”ÜÆ"j`ô¨Ò¿¶²PóâTI.4´òBBO#:øs²¿ùæfáÆ<<}nÅ:Áp啲aÇ;ªû·š»ºÿ‡Û_þendstream
endobj
-2072 0 obj <<
+2076 0 obj <<
/Type /Page
-/Contents 2073 0 R
-/Resources 2071 0 R
+/Contents 2077 0 R
+/Resources 2075 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2079 0 R
-/Annots [ 2078 0 R ]
+/Parent 2083 0 R
+/Annots [ 2082 0 R ]
>> endobj
-2078 0 obj <<
+2082 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [55.6967 269.7901 116.8967 281.1822]
/Subtype /Link
/A << /S /GoTo /D (statschannels) >>
>> endobj
-2074 0 obj <<
-/D [2072 0 R /XYZ 56.6929 794.5015 null]
+2078 0 obj <<
+/D [2076 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-674 0 obj <<
-/D [2072 0 R /XYZ 56.6929 769.5949 null]
+678 0 obj <<
+/D [2076 0 R /XYZ 56.6929 769.5949 null]
>> endobj
-2075 0 obj <<
-/D [2072 0 R /XYZ 56.6929 748.5408 null]
+2079 0 obj <<
+/D [2076 0 R /XYZ 56.6929 748.5408 null]
>> endobj
-2076 0 obj <<
-/D [2072 0 R /XYZ 56.6929 686.2137 null]
+2080 0 obj <<
+/D [2076 0 R /XYZ 56.6929 686.2137 null]
>> endobj
-2077 0 obj <<
-/D [2072 0 R /XYZ 56.6929 674.2585 null]
+2081 0 obj <<
+/D [2076 0 R /XYZ 56.6929 674.2585 null]
>> endobj
-678 0 obj <<
-/D [2072 0 R /XYZ 56.6929 255.5751 null]
+682 0 obj <<
+/D [2076 0 R /XYZ 56.6929 255.5751 null]
>> endobj
-1689 0 obj <<
-/D [2072 0 R /XYZ 56.6929 232.5802 null]
+1683 0 obj <<
+/D [2076 0 R /XYZ 56.6929 232.5802 null]
>> endobj
-2071 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F48 1253 0 R >>
+2075 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2082 0 obj <<
+2086 0 obj <<
/Length 2914
/Filter /FlateDecode
>>
@@ -9961,150 +9920,148 @@ cˆ”¸[”¾,’¸JQQC.
'T‡¢Ùª/—eZí³7¹ÞÞ›@Éü㘵ï]7k"0 yçkß²ø2ýǤKWP±˜yªXŽhUÉ};U  Ç=ŽÒç;§ K,µbÛªd9[±ßMU²ûØHøÄkÄ@#k½F¼Z×Zëø6ÅøçÜ3ÒÙã8£[¸>[»ñë…=–?½ü ˆ(x‡‹8›Ì9ØA€= bŸÑ^þ¼èö$ŽÕÿ²ˆ’°ï̈EÌ¡j¼ÀÅÇñ/° -¡xϗ˃Áëy?ƒêZâcõ­L…2ž%¦9”ªÆRþvöñ—ÓË«¡í°Âï}Ü,Ûn–y7 55o‚?½Ke¢#±`ÎòíH–:ì Ę·6f0)æq–w.#"yÄ¿›Km/±ºTÆ)ä ¢ÏÌtÂP¶ÂÜ=Œ{ûjmÇÉç=UÅg¹NâU‰ú"êwÚ"(ýƒKG,ð»H—ö-t[×jA:ÔÅ©ž0ö2Z&Ž™¤È Èöožx>6÷D éV ¨ë„Þ¶{ªµÈyÇ#õ>­]¶ç±­¶Š0Jå÷SÛ–JÊ;+{릢=XÖ=ºÕ6d„1Ý2Ɖâ²qg+÷ØÞÄ.T0Â>ZËCӜ̈́ÍkxÓhª-ÇU•ÎèSl›¿k]õ}nV’¬ì|F?-|†‡O¡{Þo¿îm¶{;mÙc£! ñ†ž¶ä„³…Ò½`¶¥ËOžQ’xÕíþ§
û"Ë=æ–Í¡7Á噣áÿFøêêq‘bml7’­Îâ²ô´YýüýënR|ò-j…-ºgîþ¹Á>`7Í”îÚqñußî=f+ Cí2iÖ¿c“ÁvÔMËf“YÞ°y0¶¯à¤›ÒtëµÔúmÛDÂÌ…ÀF$a$E×<ÑAïYÕKÿ¿jýgRµ_¸md"øƒõ´—x¡¾1¦žâÿ«n×’þÿ›ãvendstream
endobj
-2081 0 obj <<
+2085 0 obj <<
/Type /Page
-/Contents 2082 0 R
-/Resources 2080 0 R
+/Contents 2086 0 R
+/Resources 2084 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2079 0 R
+/Parent 2083 0 R
>> endobj
-2083 0 obj <<
-/D [2081 0 R /XYZ 85.0394 794.5015 null]
+2087 0 obj <<
+/D [2085 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-682 0 obj <<
-/D [2081 0 R /XYZ 85.0394 741.8766 null]
+686 0 obj <<
+/D [2085 0 R /XYZ 85.0394 741.8766 null]
>> endobj
-2084 0 obj <<
-/D [2081 0 R /XYZ 85.0394 717.2979 null]
+2088 0 obj <<
+/D [2085 0 R /XYZ 85.0394 717.2979 null]
>> endobj
-686 0 obj <<
-/D [2081 0 R /XYZ 85.0394 609.8545 null]
+690 0 obj <<
+/D [2085 0 R /XYZ 85.0394 609.8545 null]
>> endobj
-2085 0 obj <<
-/D [2081 0 R /XYZ 85.0394 587.5432 null]
+2089 0 obj <<
+/D [2085 0 R /XYZ 85.0394 587.5432 null]
>> endobj
-2086 0 obj <<
-/D [2081 0 R /XYZ 85.0394 587.5432 null]
+2090 0 obj <<
+/D [2085 0 R /XYZ 85.0394 587.5432 null]
>> endobj
-2087 0 obj <<
-/D [2081 0 R /XYZ 85.0394 575.5881 null]
+2091 0 obj <<
+/D [2085 0 R /XYZ 85.0394 575.5881 null]
>> endobj
-2080 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R >>
+2084 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2090 0 obj <<
-/Length 2532
+2094 0 obj <<
+/Length 2508
/Filter /FlateDecode
>>
stream
-xÚÍ›YsÛ8€ßý+ôHW ±¸}s|ÌzjÇNdÍV*3ó@KtÌY‰TDÊŽç×oƒ EH¢DÉvjY©Š@Gãc£»Ñ¤É
-V°– óhÝ•A
-¥Ÿ hDP¼Ì«Ê(¸ÂxåùFÝsµ"w•/ïóæN‹éËúLNû'eã;(3¡À`ô˜Ø1Pý[â³…zå¶lWn½lE³Ò–uM–±Ý ,(2ûëÖ_V8™£<KÝøû|%©ÓÞ~NŠÇ¦‡Ó_£ˆdˆIØAN?ÆÓVœ‡sÇ"´"½´¨U¸ê·&¦e¹=%HS"«)fÑ÷ðÐiæ¶7­ºfó"ÉR`Ë
-þÀçql/´Ãak'q>^$ó°„E"%°^tv`Ý¢ûlYlÚ†%"TØm
-LJ«ân.¾\a虃UûÐï°½y·ÇÝK|M$Í`Æ×DÚ²K«V-‚øT·G³‚
-Ð%eø&ömV‰°dbÖ ÞϪK4Ýï$lCc°©ÁU”L—‹¸ÛÜÂó¦TŠÀieðPvw¬š²ÒÛnKl« öf».P‚‘’¼¶.;¥ W-×”f¥ à‘ˇÌÁô¯+ƒ½Ó(ƒ½ïÚ±Jl (C¨…n²"þ',KYy“¼Í¬¯f´N­\¹ªgÌž’Iíîf`b§/îîÊoÞGãÿ>GeÛ‰»5Îfó¨Hî“iØfÕ“ÂAxe¥mÉ9\(¬¯’‘f•6v³˜EÓi5Bä~fYíÃìÕÓ4núë¢vJÕ‹ÎÝU¾´Þß–¢¼ÍcŠ„$µ"-‹GP¼aüWËc…0…b­ª¦íÞ@(C•h”£…ÄØPJn˜óǨ°›^ÏÙrZú=à1Í3Wù
-÷±û-£ ø•ÌÁCÉ) ʾåN+ªÊÔ5›/¢qëã,’q¼Ûâù¶ä½,^=ûáCÖ=vZ< âJ¶ßà (0nd¹êÏ‹aüí"KãC"_°syáâ"üm;•¥b¥ùƒÓ~¸´[v6ªÛ‰³ômKÿ¡4E+ÝPÌp^"úm>‰Š@]=p”p­4§­%à
-#ÅÚîEéIÙc–# ‡‚–œ#Î ]c™Ï_ Ó:Ù<>’¦'çûÒ$ïI“j¤ê8â
-Fלxx€¤oºi^¼Àé/;vK­Ç±ª€ñöõdí±~‰ §]¦“bë1ÑÃLg Î#Œ¥'[ Úƒ¦V¤ƒ ÖH(¦||­Bæ* Œö706ë8«€×F’héÑûM>.âEüí-½ü+¯œ{•-ÁU¶du~¬ÝT’'+‹Ðœxv?oy=~š ¬d‡Ã“Š¤=û—1ÑÇ/Ãøy‘q~H
-‘JàMCÃI!=†íùÈ „)œ†Ê™»1º uÆF¾>«"’2Ý‘hD ®ÜêíÙ±Žº¸ÂêðÑ“¬Ï
-x<>O®>ãƒ8OcÖኩ‚9´q®øúÚw}4>O®>o^ô4ïðTÀ)™q¹Fïå;ž^#VŸu<mh=.W†×oÉî–cû!V'¾/[oÅv½ßÉíˆñd/POÔ>…pÏ0ÕáŒ)ãHÀŠj¢;ò¾¯Å¹# Ü°ô„|/–‡§Ì~DƇHƒ˜¢¬NšÉC’fJ#Í°ØŸ4#R#®>tI3V%͆qžMŸêGqhž¬N³Xqÿ?™Fü#Ç„AœI„lÏ’Õ‰c 8J·³dö;]Ѭêì”}Ù³U*ØŸ»¿o, åˆJÜñÆ’PD¹pó“ý¨Êzr!¤ 'ŸºSìïïÙ„žpý};a¿‚]ÛñŠÒZ[mˆñÊ£ÊãzÂõ!X>&pÇ;J‚x
-©ÖÞÙXµâXª`8<F [¾DØ›j€z¢ö¨ÖöÛ³Ÿ§Atõöe…S‡S¾g)hÏ7¸’öã—Ž·#L¥ Ko>_Üþzv}c¿çç"Âu7̦Óáô<Éú‹OrûµKÇFð‹!ªq.ørhÿFæ?W§Bg×ÿ¶_nk û Áö†~ÐÛþµŽí}8OOÔ·ò´ëâ´ ± ²í«v<è„}èßö4íÄÍýo«}TT å€AèÏ\IˆÜâA0¢ "µª™'ûÿ
+xÚÍ›Ysã6€ßý+ôHW…XÜǾy|dªµgd¥*5Ih‰3‘H™¤ìñþúm$”lO…5Uâh|ht `øGB"i¨(ÑÀD Ƴ<øï~>!u™°)ú¥>NþuÅÔÀ #©Œ¼¶4ÂZ“Áhò{ G§Ð>]ß\˜Ó
+ÜNÎìŸÑõÝèúüî44FÓàü?gŸG—CWJz]N]ýüöæêúç_‡u·7.{xyu9¼¼9¿<ýsôËÉ娀?H‚™•þéä÷?ñ`cýå#f´¼ÀFÄ:˜pÁàŒ59Ó“»“/mƒÞÛªê6hœk`dBB)"œîîÖu¡Û:i’œ°µ^CIb Z”Š"&Ìr(ñæAj¥Q% ’Œ²j¾ä¯y6ŸÇKjP¯Ñd5º±e‡ñx‘És|2…ƒ§Eœ'qá²Ü&Hðò˜Œ]^ùX—,âü9Î]z’ãÌ>@§U(µC/!!ÈA«îâï㸨»c4H³ûªF‚ìÁåÅß“¢LÒoîɵ¹”
+.e„÷NFHXÁ¶tXD3¨&¨ RHýI#‚òu^gFéÄ%ÆÓ¨(Öò^깧bq_ÄÐwZN_W{rÚ?©
+WØA™ £ÇĶ „šß
+ŸM4#·i;rûëµ`3–#Ý2®É"¶+efÝø« 'sTd©{ŸO£$µmÚ×/Iù¸¬áôÃ×("bVÓñ4áܱ­H¯[Ô*lë­ˆiYnöA ҔȺ‹Yô=<´‚9‚åMëªÙ¼L²Ør£‚?°ÀEÛípØÜI\ŒódVaZ$RëÕ©³
+è£ýÆÇ ´Í:Î*൑$Zzô>E“ÏyœÇOïAèìå_ñ¸uîu´×Ñ’öüظ©¤HZ‹°<ñìžox=žMV²ÃáƒIEÒžý«=Ñç¯Ãø%Oʸ8då\RM4›&ã×õ½”éZ܃ӓ´Ç<¥AĆ­öóT)¬ÓZ“zx(vÅůDmÆ}M7o½×4™%å>®NbÕs®B!"e‡ûç#%i¹ÞM“7q-óS,ÒqT¾¬'òG]Þ/t^X@.éê}Å›*5b€V#ÅrHÕ^å‡7ŠTi؉1ÒS…°0;öÍ] ki8¡í%Aô4$ãàkk)þÁi<N£t\gÜ•QioÆõ¼71‰µIí@þ ˜â0n£Aȸ†q*vÃíµAð.ŽvP!“°íåÜ»‡3+±S¡LJpHÄ­Ž»×Ù}6= %74¸pñï*ĽFÎj1'ÆÖ^öñ>¹-!†µþ1(†ÁîÒ¶…ààL„ÛÕÞdeòðz»(ŸùCa`9 ÞD£®?C¡JÕR¨eCeÉ(â´D»éybõ™ƒ½*㤃§à2°Z£'¡'ßDÏëcé‘¥G%ìôM<ÍI!=x×é»4¯¾þŒ“ç-g‚%Ã¥p}V@;MÊtC¢%˜¯2|þÈГ®Ï1…íº–±D´ ;ˆÛ#èk S8¿WWï»9ºcÕŽž€=^ÏÔÀv’0±Ÿ#> ãÚ­ÞžëH ŠK´ß,tD_²+¢Ý*¡;œ1ÕÔ^ýà1kùM
+ãr…Þ1úw<½¥X}Ö=ØåiC»èq8¬)ã\ñõtïúhzž\}Æû<ÃT‡¦Œ##ZÁwŒòÏ“«ÏK¶xFÓ.ßKíg†4»w‹±ýv°“ß׋Ü]W’…m1žì%ê‰Úg…Ä
+aªºœ1ÁHf¢;®*ÞŠsÇÍÅ’¥'äG±<<hö#">DÄeG…Í(Lœ’ÈPLö‡Ígàˆý¨«£føȦÏÍL(k®„rD%þ‡BøG„í'H ¶=HÖ„í:І˜Í ™ý2L×4ë|–{_ð¬û}÷7Èzƒ˜À÷™3p Òí6¿ØÏ
+űTÁpxŒþmùjfo$¨…é Ú_š’Ûa:î"á«úÞ¥¥)£)ßIÓô½4í¨`;m-îvÝÉâA'êCÿãÏò¿BqGpÿÃkŸUAe9`°ÉbîËyBäØ{QN±.æÉþ®¿òendstream
endobj
-2089 0 obj <<
+2093 0 obj <<
/Type /Page
-/Contents 2090 0 R
-/Resources 2088 0 R
+/Contents 2094 0 R
+/Resources 2092 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2079 0 R
-/Annots [ 2092 0 R ]
+/Parent 2083 0 R
+/Annots [ 2096 0 R ]
>> endobj
-2092 0 obj <<
+2096 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [305.1296 684.0956 384.9596 696.1552]
/Subtype /Link
/A << /S /GoTo /D (clients-per-query) >>
>> endobj
-2091 0 obj <<
-/D [2089 0 R /XYZ 56.6929 794.5015 null]
+2095 0 obj <<
+/D [2093 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-690 0 obj <<
-/D [2089 0 R /XYZ 56.6929 435.7843 null]
+694 0 obj <<
+/D [2093 0 R /XYZ 56.6929 411.8739 null]
>> endobj
-2093 0 obj <<
-/D [2089 0 R /XYZ 56.6929 410.6637 null]
+2097 0 obj <<
+/D [2093 0 R /XYZ 56.6929 386.7533 null]
>> endobj
-2094 0 obj <<
-/D [2089 0 R /XYZ 56.6929 410.6637 null]
+2098 0 obj <<
+/D [2093 0 R /XYZ 56.6929 386.7533 null]
>> endobj
-2095 0 obj <<
-/D [2089 0 R /XYZ 56.6929 398.7085 null]
+2099 0 obj <<
+/D [2093 0 R /XYZ 56.6929 374.7982 null]
>> endobj
-694 0 obj <<
-/D [2089 0 R /XYZ 56.6929 185.6451 null]
+698 0 obj <<
+/D [2093 0 R /XYZ 56.6929 161.7348 null]
>> endobj
-2096 0 obj <<
-/D [2089 0 R /XYZ 56.6929 160.5245 null]
+2100 0 obj <<
+/D [2093 0 R /XYZ 56.6929 136.6141 null]
>> endobj
-2097 0 obj <<
-/D [2089 0 R /XYZ 56.6929 160.5245 null]
+2101 0 obj <<
+/D [2093 0 R /XYZ 56.6929 136.6141 null]
>> endobj
-2098 0 obj <<
-/D [2089 0 R /XYZ 56.6929 148.5693 null]
+2102 0 obj <<
+/D [2093 0 R /XYZ 56.6929 124.659 null]
>> endobj
-2088 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R >>
+2092 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2102 0 obj <<
-/Length 3456
+2106 0 obj <<
+/Length 3540
/Filter /FlateDecode
>>
stream
-xÚÍ[ëoÛ8ÿž¿ÂßNÁ­Y¾¸ÃÝ<ö²¸MÛÄ{Àaw?(¶Òµ%ײ“ö¿¿‘²hG¶’Æ-‚µD‘CÎo†ó"Ãþ±U„
-'ÆI¢(Sƒñìˆ>·_ŽXè3l: ã^?ŽÞœ 3pÄi®£Ûˆ–%ÔZ6MþHNþýöýèìêxÈM49*M“Ÿ/.O}‹ó?'ï.Ï/~ùýêí±‘ÉèâÝ¥o¾:;?»:»<9;:g9Œ—…0öz„ƒÂÈëÑÅÉõñ_£_ÎFkb&¸úÏGüEàõ×#J„³jð
-Ñ´L®>¬ F_ë¡] Ii+nCa‰TÊîžÖOAaÚðÈqJmÏ:tp)(M¨Tf-Î")8
-E g®Æåìôòšž§ù´Bìú'U”ÂÌC÷y•-¾úÇ[ ±òPV{Pô+”‡D6—ö ’~„Ý¢6œåú”’ b´¶54¿åÕ,]Žï@%2ÉÕéj~Õh;ŠÔ°š—E•¡fšmÍ
-ÓÑ]æ¿0ü¸‹ÓŸø[…ÓÃ<kà «ÒKhŒ4KÒÉ$ ª†PIZLÞ³7vXÞ…ž[´ë¶mjór±ôO“2뜿(±ƒÖIÃ6<>Ü¥¡ñ!­üCöež—žeeÔ9Ï6| “ Užnêo&Q¿—‹Íɽᨩ;šL²?)åE6ÁW–Ü|õÍȪ—X,mãC÷éVOþX¬œÃÀºûNå|™—ñ›D£»¼òsÍÒ0Y½bøM ÿ!/&ù8ÖË2J‰£Tnb‡DýN+oýoêÆé¸çe^•E^| –Ël6_îÞ±¦¿lë|?›¦5%’Ê›¦µ ÎQoÓFÇ üÂbUŒSТþ}8:v¸×lÒŒˆÜB»Ÿì)âÖS°Ã¡
-‘”Ž÷ ª8DkÊÛ¸ÿ¤3P3CÑåÖϽ¸úÜ$›fSTáç!­òµú\-
-ÿ
-ßoï*£!
-'HåÖSùì ¤KßÏRðkÂïK½.÷v3¤ jÌ}—jžsÌüpYV]—Õsì.Ú2ã¤Î?ñûí
-M¬äæ)ç´¬¯µÝ§´Ã†à0¦øX{„2\G41®u@Œ¶ž5Bø©ƒEM˜•r7‡`¬´Qú€,6ûx´’h KÛà‘÷ó9 h!]Ü2P »s»’s•= »kŠ=ìJ®—f‹ÝY»G*m6Ùõ[Ej´¥«}­‘Ôð
-&„'Åjvƒ'Û¬5lûÜT;ñåᮬ2ÿ=6…þcÚÔÂðå&[>dYÑeòÀ Ikö€+ ç´ Œ£µF
-Í·
-úþPÝ® ,W&½ÛÖÀbc0°Ø¾i`ñãÚÀâgˆËÒ©o÷çÖß´ÀßûlÑ!‹í dÁÅ€I(DŠ/wkkŠÃ˜d‡Q¡Œ®e;ó.¿
-§Z²ú9dõ.²`‹ ?ÆnnîÑI÷²ëŒÈDô¡ãþeCH¤'õs¨ê'Qý½È¿tQMÑ6†û 9¸šÓr–æ…'^gàÝA”£b¿x~úP_ëÈŒ„Êk“‚3…ãd?žæÖüø¼ZVù$ó/mâ, ÐcÔn_k6‹Jfåd5­Ã r¸®“o®tãTr[N§åC¸n¥C¢^+Û𧌅Z†ÿìºf¦Á6¸þ÷þ¬ƒ ¤QRËÆ+ÿ«;v`›y9ýʯ:õ«YÅ ˜¼¬¯èÁ÷t:õÛÍ\nýô¹OóiÃ5Ø Ht ƒÇôuÜS¤ÑÔa¯ÿ#\Ìý2ÎæÑ%¡h.Šw›+y(§-ï¶NÒóø˜=›>®´1aˆT 7’Wó)¾@HpˆÔˆç9ƒîQÍBè+›k¦@
+xÚÍ\ëoã6ÿž¿ÂßNÁ¹|?p‡¶yôR´I7q‹;´ý ØJ#¬-y-{ÓýïoF¤,Ú‘-§qAZ¢ÈáÌo†ó ™e
+ÿ±U„
+'ÆI¢(Sƒñì„~‡oßž°ÐgØtƽ¾¼»fàˆÓ\F-K¨µl0šü’œýçý£‹ÛÓ!W4Ñät¨4M¾¹º>÷-ÎÿœÝ\_^}ûÓíûS#“ÑÕ͵o¾½¸¼¸½¸>»8:g9Œ—…0ön„ƒÂÈ»ÑÕÙÝéo£ïN.Fkb!Èý§“_~£ƒ ÈúÝ %ÂY5x‚J˜s|0;‘J%…hZ¦'w'Ö£¯õÐ.Ф´€7ƒ¡°D*ewO맠0mxdŒ8¥¶g:
+¸‚”&T*³Ög‘€¤4åˆ\ÔZ¸þïùÍï¯
+# Á’t2 ƒ*¤!T’“w§,Á¥…–¡çíºm›Ú¼\,ýӤ̶æçõüE‰´N±áñé1 Oiå²?æÙxéEV6A“ób÷0 ÒXUáé¾þf%ü{¹èš¼¦îh2É~¥”Ù_YrÿÅ7£¨^c±¶ƒ%oYPX=ùsµrF ƒdÃw*ç˼,ˆ_#Ð=æ•Ÿk–†ÉjŽá7-ü‡¼˜äãtX³=d”G©ÜÔõ ­|ð¿©ÿ§ãxœ—yUyñ{è°\f³ùr÷bŒ-ýuKç¯óhZÀ‚s²g1JìL½G2
+‹U1NÁˆú—áèÔáR³I3"Š ír<8LD ¿Õ(¡9”2ÂÚP¹%Œ+ïá¾Og`d†b¸­Ÿ{aõ#·I6Í~OÑ€_dÄåq‘dÇC’q¢¬è)G4Ó„êË‘Ûl‰!³†òŇ~(?´QÖC·\äQγÅC¹˜í2bòÍš$8=0¸žÌESI8 ±Fåý}·Oî@p YŠcšu>Y+]–MJS.×ZKŸ)N÷ q~,t¡Z°Z½„d3¢]ÈS î©Q”ã„+çZpïÊñÇÃRÃË(ùì(†4ÿ[γ‘h›.RÌƳ%dŠ
+§¤qÛ|XX9ÔrÛˆ½¨F¿YT!ÃqÖ°T©%Ê@F·e¶£ªˆªçøMo‹I”EÏŽŽ„ͬ/"®‹ÈtúÞ×Ðý ž_ßÝ]œyÈ>§Ó|…ÿPˆïC1âðÍ‚h¡F÷zð¦Dk!7P¼ùø:
+ýÇ´Ù
+×ûlù”eE—ˇ&­Ù®$œK°.<¹2ûJƒÁ ‡1É.p „LTkÓ 9D¿ŸüÚŸÛôí¬žŠUÇÔtŠñtUA¶‚‡ÀC»I—BX””íö8ŠOC98
+¦äú±ašVËp4¬æflج¨O”„IõX®¦|–ž´ùE>©tÎB‡´êÄ–^wºð…är¶
+Ê^ÖÖ‡1ɧB1\Ëvæ]q$˜
+À6ó<‹ú•ç:õÜƢ₠B^×7ôà{:úíb®G· ú|Nói#5ø ¨t „Çôõ&¸§H£©ÃZÿg¸•ûÇ8›G·„¢¹(^lnläa?mù¸u’žÇÇìÙôùVƒ°"Ø !™;(Ü ¤F¼,tj¡G<ï\ 5dV£´[¸”Ô#„á! ÷ev_N1ßt<9pÜNú Ô Ñ-žãu|#B‚‚Ù‡mvùúã
+͉R-›+r„±„:e÷/LógæÎå}3Ϻö x4Ç]óG­7c‘7 !Uõ°šN×[ƒ’ŠæŽ©]_?4$üÅ[xHçói>ìºN3{¬ÑM¨î+±
+Õœâ£!•k$ò>f§Uµêzl•8ªQ HdtÙo‡U)HÀ¬R_ÛªvœPlZÖæE-A]Ø6¢í(llogÁÁº°ÓÚº°S(ÔÖ…_ߪuEz;–yíd*2/®‰¶ÑÈæ© 7Á%ó:›b‘{¸×»“8d²G)‘´Ç
+$ELe2eÑIðÀ¿¦J¾É‹ÉŸXññÜçáÔ©Íʪ=
+‹8®ÂŽ»Š(‡ÚÀò>…A‰-´üª¡ÿ¬,ŠWªl $²ñòZ‹àxÃZƒ”ÔFWɺuæ$‘Ô鯭²^u¥¬+—¬Âb0¯›’¥#mÛ¥°‰c©ëh—É[uA†ã”é‹T–CwùUó ÷c¬!ÿÄ"SBÖ‹L ‘¤5‘zas^ŒËÙúm¼V¶_ÖWËí{a_ǧæLÖÉÓ)K|vïM»ÏΙðùS“*Á‡:U‚öîT‰)MœÓ²ÝŸêÞ’áZ4ðtoº@ìª-úr.¼ÂO¸’[~]Ãï6èÈV^y…f7\£rDqÙùOÐA¯w:ô:hÿéiˆ°QHÙ@EPI„Àã50UáÿƇ1ó|oÛe¹iºE¼ÿºl"Iendstream
endobj
-2101 0 obj <<
+2105 0 obj <<
/Type /Page
-/Contents 2102 0 R
-/Resources 2100 0 R
+/Contents 2106 0 R
+/Resources 2104 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2079 0 R
+/Parent 2083 0 R
>> endobj
-2103 0 obj <<
-/D [2101 0 R /XYZ 85.0394 794.5015 null]
+2107 0 obj <<
+/D [2105 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-698 0 obj <<
-/D [2101 0 R /XYZ 85.0394 316.2326 null]
+702 0 obj <<
+/D [2105 0 R /XYZ 85.0394 292.3223 null]
>> endobj
-2104 0 obj <<
-/D [2101 0 R /XYZ 85.0394 291.112 null]
+2108 0 obj <<
+/D [2105 0 R /XYZ 85.0394 267.2016 null]
>> endobj
-2105 0 obj <<
-/D [2101 0 R /XYZ 85.0394 234.6836 null]
+2109 0 obj <<
+/D [2105 0 R /XYZ 85.0394 210.7732 null]
>> endobj
-2106 0 obj <<
-/D [2101 0 R /XYZ 85.0394 222.7284 null]
+2110 0 obj <<
+/D [2105 0 R /XYZ 85.0394 198.818 null]
>> endobj
-2100 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F11 1353 0 R /F39 1173 0 R >>
+2104 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F11 1459 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2109 0 obj <<
+2113 0 obj <<
/Length 1514
/Filter /FlateDecode
>>
@@ -10119,27 +10076,27 @@ W(
¦÷6M6å`ëk(n|ŽX
LZEœ,ŠU0Àq«y™¹+Á›„™®œ ̹ÒŠµo&ÔÐ#»+»ËÊm²^¸OŠ#%ÀYSC’rè´àZ#ɳú@Ðlqœm˜A_½ìi¶uP'ØÖ j¶]üyuÀ3î"ÌœÖÚ€´vj2ÛÓƒ]¶†,l»þhËê"¹—á~n¿úÜìÃÆ®³¦(”þûï¨'¹bˆr}&o»¨ãžlQµ'göu*w`rZgÐÙõ£v†”íéü¹~¼µ_7¶¬þ«#9sý?î@'Ü@µ߯ªr_¥ªOªl0‡*{lÄÀFNz*Ï8±½/:ÏMO<蘄&ê95À4—”ÝW›ö®¿Î7 -*Ħ5±kz×eزZ&éaóÚÄQ÷[Ô€wqÔÔÇþÉk÷# û2„q8PT¹ºã`”ó!úŒQ&é€íÿVоendstream
endobj
-2108 0 obj <<
+2112 0 obj <<
/Type /Page
-/Contents 2109 0 R
-/Resources 2107 0 R
+/Contents 2113 0 R
+/Resources 2111 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2079 0 R
+/Parent 2083 0 R
>> endobj
-2110 0 obj <<
-/D [2108 0 R /XYZ 56.6929 794.5015 null]
+2114 0 obj <<
+/D [2112 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-702 0 obj <<
-/D [2108 0 R /XYZ 56.6929 629.6971 null]
+706 0 obj <<
+/D [2112 0 R /XYZ 56.6929 629.6971 null]
>> endobj
-2114 0 obj <<
-/D [2108 0 R /XYZ 56.6929 602.1058 null]
+2118 0 obj <<
+/D [2112 0 R /XYZ 56.6929 602.1058 null]
>> endobj
-2107 0 obj <<
-/Font << /F37 1038 0 R /F11 1353 0 R /F21 950 0 R /F22 973 0 R /F67 2113 0 R /F39 1173 0 R >>
+2111 0 obj <<
+/Font << /F37 1042 0 R /F11 1459 0 R /F21 954 0 R /F22 977 0 R /F67 2117 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2117 0 obj <<
+2121 0 obj <<
/Length 1242
/Filter /FlateDecode
>>
@@ -10153,98 +10110,91 @@ xÚ•WÝoÛ6Ï_aäÉ*Z¤¨¯å©M×-C1 kö´î‘iKˆ,j•Ôú¿Ç#e)V³†ÁÓéø»ï#EW¡ùÑU“0Êù*Í9‰C¯
óÈ Žñm1ÚªÅëé$³þõÌfBú{z_šZéMÿŽItñFó
€:]C¦ˆcq¿h“‡ ž‡-ÖXd¹_UãT]º9GLs^¾jw…9¶nßAôæ_ôqWy?.›)ü !=χhŽs·_òïâÇ»ñ[ËAÁ¥É|-}y‘à$ƒŸb³;Yh>‡¢œz ;
endobj
-2116 0 obj <<
+2120 0 obj <<
/Type /Page
-/Contents 2117 0 R
-/Resources 2115 0 R
+/Contents 2121 0 R
+/Resources 2119 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2079 0 R
+/Parent 2083 0 R
>> endobj
-2118 0 obj <<
-/D [2116 0 R /XYZ 85.0394 794.5015 null]
+2122 0 obj <<
+/D [2120 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-706 0 obj <<
-/D [2116 0 R /XYZ 85.0394 769.5949 null]
+710 0 obj <<
+/D [2120 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-2119 0 obj <<
-/D [2116 0 R /XYZ 85.0394 571.259 null]
+2123 0 obj <<
+/D [2120 0 R /XYZ 85.0394 571.259 null]
>> endobj
-710 0 obj <<
-/D [2116 0 R /XYZ 85.0394 571.259 null]
+714 0 obj <<
+/D [2120 0 R /XYZ 85.0394 571.259 null]
>> endobj
-2120 0 obj <<
-/D [2116 0 R /XYZ 85.0394 538.9404 null]
+2124 0 obj <<
+/D [2120 0 R /XYZ 85.0394 538.9404 null]
>> endobj
-2115 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R >>
+2119 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2123 0 obj <<
+2127 0 obj <<
/Length 3285
/Filter /FlateDecode
>>
stream
-xÚ¥ZKsÛF¾ëWð¶`•axíM‰åD9Ø^›ªÝT’@$Ö @ æ×o÷tÏ  •«R)‡ƒF£g¦§_÷H,øO,ÂÈR™.âTûa ÂE¾¿
-[x÷Ó•`ž•eZ¹~X_ݼWñ"õÓHF‹õãHVâI"ëâ7/ö¥¿ücýËÍû(ñÊÀ¥ñÈóãÏŸ?~\×D¢N|-Él·ÞÍIŠ|©„fž/wë‡ûw3¢„€Ei¹)o?­ï>/W2 `KØcàýp3JJ?_î~|ø|¿þ•ž~üøáËý»»Ï·ËX{ë{xÂy®îÖNScmŠ@¡š¾]ýöG°(@©¿\¾J“pñ /ÒT.öW:T~¨•²”úêËÕ¿œÀÑ[óéìéˆ
-~86uÙ¿œ¬mˆ´Ëøݦ,šê@lOU{\
-¯¯OD.ª~…§
-¶€r8VËkÄÈÔWq@ó}„eÊ$ô>ÜÿG«¤¿†§T{Õ@TÔ6òÚ¾¯`DZ¢vËTC46F V,;c³žX¿ˆ}\Yu¾#Ý·C9·fùa[æ²yªˆ½Ù—Í@sü„Á±¯š-/ NÏêpäKAä'Ú¹on‡_Â?17oâË(H™ýñØäµa6“nNæW*M}H==ÊþPæÕãɬIé˜-J'ÞïRjšMW _È@ðl«afAV<±9Ft{ÈAúcÛÍlœ(‰â„¿l²ý¼¢?M]¬èÒºˆÎ³†æÛ•õFÕž ¼}âÍõ§~(÷ô²G暴=mNÄq¨³Ü)…¬ÅHâõg¤SÃZT[
-·åŒ|Óþ‰Ãk2öç]•ïxXÕ5êj_±WÍã ÈöÙÖŽÛ†GÕ#;ýؘ`^õô›·vŸûªg5® >P´¶Û¦…‰ðCxǾ|<âJ´ðËl8R —Æ1à­ ì}@™!L˜ÓÄgŒXÈÁ^³$m7„lSÕFɆÚÒ¯óÈñ4EVî­àŒÅdü|l]õTÕå–,ã20Á†X'è03æ+!"©8´æ{$–PÍWûZ‡ÖŸŒÄ—6yQ;/@_ó1bÞ¿—©ôøÄúãv[ö|º´Õ†|±·±~';#ŠÛËó®´\½0<dúi"’Ið˜ó!áËXÚ¼>:{ŸƒÈQ*‰¦Æósi D‰Ô£Ü–š-àoùg¶?Ôülqoâ<>ÔUÃd<yCi3~Ǿb+–“ÍíKAZMµúŽ}¥ajÏ—ðzF V~ +ïæ)ën^‹7p¸2‰-+x³R‘çöfwĶ<ÔÂ$Q—A ¥”
-ñ¦½€(—k_$m”ŽšÆéžÛî+Q8Èʾ«»bȺ¡ÊuÆ+-*†aCÛˆã“Û
-C=M=¯Ù0 ©$‰ÓQÀB;Ž¥wÄg2å$5%ÚŽŒmcº,9¡fœ_(Ì|µËxT5y},JNÌ%¤Ó°ã¬šŒ²*ÎØO§$w2É]{ï-è5;·{™¸
-ûÆÔ4øW™µ€ñ™Ì¤§ª|ÆÐ<§bÀEq’Šï ‘ôã0¶a³âù3gñ!‘íÜ”Ù`ð{H@æ{ÀÎt˜x¿â¢ðð=¢#0·ô›ÿ=öÃÅ|OY},{7A’£JNÕCØ«· ãk9½tž¶)#«°^¶Ü—
-0ªq2âÄ 8hÉŸ•v¨Š)bÎÁë“è"ÄeyÞÆg(ÿU½oQDhM"ÜCûÔð\ ;ÂeÖÕ¡ƒbzVŠfK*Ò5 o¼r:T+ë“•ç4S-hX}*ìò›Ù€#€'vÉ„ÏáC"ÄpUýÊ¡„2|+¨e]5ÐÙ0^yÓvÜÁ+Únˆ×I]$¢]FQ WcßtU©2AÀb1¾!OÐlŸ‰bQQšx?·ÏèüXÙ£j“‚ø¡l
-3Àoð
-c¥/E÷Ë‹U;PÕ>ÏŽ’~*#õb?\•Ù°î|ÒþËZ€ýÜØm)¨X®
-nqÀ¸m¬x“`Ylû¢î¦À´Ìæ“sWÒñwÕ@eÐ\óQAå—Êïì>
-ÐD
-m¶ûF !&L£èuYô]
-0„›û½\¼ka;‹ÑŽ¬ÜÕH°ÙP46µ4 Ãì $GD´£v0øH[$
-#ìž…Í:—üQBZ}¢ p"°×3Ž,½§_°Tº¸ƒÓj fxÆ2ß0k}CFËÛ»¦.BÅ«¶€P0a›’1O
-¯˜R ¾gzèÊ~àEåCÉœS›€WôôlÚO(aǯ*À Kz„BÄF$øÜ‚›‹†Ó” Ó±¡þ=ÛG/:ÿ¹ÿ÷<sìN x;(×¹Ó¤Ûmùd
->ÐnÌ%›ç%í3¨Åº9ÃÏ©›MaF†à´ØÓæòÈÙ0àÙôrÃÔÞU‚¡uóPLC34³. ³ëk;|§Ü½Šï‘^Ñ-ËŒ(Þ o!Þ(ös1 /׉lSÁ¥#@=Ÿgêœó¤gÜ™F—Táö¶ÜôÈÃЙg.wÞ·&'óé Š9ôe=Än q˜öKb¬oZw[“/¶îKÓÞ6’B9k ‡ KÏ»Óah·]vØÙ>¾ÎŽ°‚[CÉ‚6<Ǿ̚yÝ¢ Ä 6#Â{¦mãî'zbÂBbýåþ'¾zA¶5y<¼¬ŒÉFúµ˜šF¾Ö®,{;¦¦Â¹¹sX˜ÆæUœÓQMú£Áúˆöµ<Ñ _ÇÞ’–ÚNµú#yÑÓ±-[ãØÚh”i{™orLÙóÅÔm j¬žJXŸÂvœMbóf¦âœDÊöIM«C[Wùi¾}ÆînÖiË86çj¯x½Ì
-}üÃŒ™¿È\=ó·ÿþãŒó4€¶$‘óÚaîÔ ¢µ‹Â ¼XºýK‘—kÿ2¬2Vendstream
+xÚ¥ZKsÛF¾ëWð¶`•axíM‰åD9Ø^›ªÝT’@$Ö @ æ×o÷tÏ •«R)‡ƒF£g¦§_÷H,øO,ÂÈR™.âTûa ÂE¾¿
+[x÷Ó•`ž•eZ¹~X_ݼWñ"õÓHF‹õãHVâI"ëâ7/ö¥¿ücýËÍû(ñÊÀ¥ñÈóãÏŸ?~\×D¢N|-Él·ÞÍIŠ|©„fž/wë‡ûw3¢„€Ei¹)o?­ï>/W2 `KØcàýp3JJ?_î~|ø|¿þ•ž~üøáËý»»Ï·ËX{ë{xÂy®îÖNScmŠ@¡š¾]ýöG°(@©¿\¾J“pq‚‡Ài*û+*?ÔJYJ}õåê_Nàè­ùtötD
+”zXïª~¹RByY]·'wK‘xe~ìúê©$Ò·cÙU%¿oñW{ÃŽßöe÷Tv4~4_·{zr,íqè«‚ŽM]ö/'k"í2~·)ˆ¦:ÛSÕ—Âëë3‘‹ª_á)€*VBøiJ³¯lS—ž ¡}¥AE `ÔÂOTììs¹A
+Rf<6ù
+£yÙ>ÛÚqÛð¨zdç¡Ì«ž~óÖîs_õì Æu!ЊÖvÛ´0~¨ïØ—G\‰Þc™ G
+ôÒ8¼ u½H83„ sšøŒ 9Ø«€b–¤í¦€mªÚ(ÙP[úu9ž¦Èʽœ±˜ŒŸÍ¡«žªºÜ’e<L°!Ö :ÌŒùJˆH*­ù‰%TcóÕ¾Ö¡õ'#ñ¥ B^ÔÎ Ð×|Œ˜÷ïe*=>±þ¸Ý–=Ÿ.mµ!ßÇcìm,¤ßÉΈâörÚ•–«w惇ŒC?MD2 s>$|K›×Ggïs°
+3_í2UM^‹’s iã<ì8«&£¬Š3öÓ)ÉLr×Þ{ zÍÎí^&nƒÂþ15MþUf-`|&3é©*OšçT ¸(NRñ=¡ ’~Æ6lV<a¦ ð,>$²›2 ~ ÈÜ`Ø™ïW\¾ç#
+»üf6àà‰]2ásFøÃ1\U¿r(¡ ßÇ
+jYW ôC6ŒWÞ´wðŠvâuFÏÑ.£¨…+Œ1‰oºŒªT™ `1ß'h¶'¢XG@T”&ÞÏí +{TmC?”MA`ø Þ q–‰ÑÖN¥RÀ€ýšê&: î³3q³-gp¡ `&]œõ4Ûþ¹L+È Â¦Û›¢|ºù«ìÚ9| ü8u}”¹£“鱨\…âÙóB„Qú-aj,¬n·s®‰0ˆ/°Å–Þ3¨XØc™å8ªýœ—&
+½Tºl€M)_ÄQ°
+wܤ¹%`ƒÁ+.L.ùat‚aaÁ´ üP¹êð#€0á­áÿÒ»{®Ä2†‚>ÍVßÂtš*âÍF/
+0„›û½\¼ka;‹ÑŽ¬ÜÕH°ÙPŒ8 Ãì $GD´£v0øH[$
+#ìž…Í:š iõE˜LàD`¯gXzO¿`©"tq)¦Õ(ÌðŒe¾aºÔú†Œ–¶wM]„ŠWm¡6` 6%cž
endobj
-2122 0 obj <<
+2126 0 obj <<
/Type /Page
-/Contents 2123 0 R
-/Resources 2121 0 R
+/Contents 2127 0 R
+/Resources 2125 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2131 0 R
->> endobj
-2124 0 obj <<
-/D [2122 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-714 0 obj <<
-/D [2122 0 R /XYZ 56.6929 730.0613 null]
+/Parent 2135 0 R
>> endobj
2128 0 obj <<
-/D [2122 0 R /XYZ 56.6929 694.6148 null]
+/D [2126 0 R /XYZ 56.6929 794.5015 null]
>> endobj
718 0 obj <<
-/D [2122 0 R /XYZ 56.6929 556.3845 null]
+/D [2126 0 R /XYZ 56.6929 730.0613 null]
>> endobj
-2129 0 obj <<
-/D [2122 0 R /XYZ 56.6929 529.3116 null]
+2132 0 obj <<
+/D [2126 0 R /XYZ 56.6929 694.6148 null]
>> endobj
722 0 obj <<
-/D [2122 0 R /XYZ 56.6929 413.847 null]
+/D [2126 0 R /XYZ 56.6929 556.3845 null]
>> endobj
-2130 0 obj <<
-/D [2122 0 R /XYZ 56.6929 385.8516 null]
+2133 0 obj <<
+/D [2126 0 R /XYZ 56.6929 529.3116 null]
>> endobj
726 0 obj <<
-/D [2122 0 R /XYZ 56.6929 226.4875 null]
+/D [2126 0 R /XYZ 56.6929 413.847 null]
+>> endobj
+2134 0 obj <<
+/D [2126 0 R /XYZ 56.6929 385.8516 null]
+>> endobj
+730 0 obj <<
+/D [2126 0 R /XYZ 56.6929 226.4875 null]
>> endobj
1753 0 obj <<
-/D [2122 0 R /XYZ 56.6929 193.9525 null]
+/D [2126 0 R /XYZ 56.6929 193.9525 null]
>> endobj
-2121 0 obj <<
-/Font << /F37 1038 0 R /F69 2127 0 R /F22 973 0 R /F21 950 0 R /F39 1173 0 R /F41 1233 0 R /F53 1328 0 R /F48 1253 0 R /F62 1379 0 R /F63 1382 0 R >>
-/XObject << /Im2 1368 0 R >>
+2125 0 obj <<
+/Font << /F37 1042 0 R /F69 2131 0 R /F22 977 0 R /F21 954 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R /F48 1258 0 R /F60 1366 0 R /F61 1369 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2134 0 obj <<
+2138 0 obj <<
/Length 534
/Filter /FlateDecode
>>
@@ -10254,41 +10204,41 @@ xÚ¥TM›0½ó+|©¸6ÆÄ>fmY©iš°‡Õj¼ *Ái e}MÆùЖ=­¢ˆyã7o><@1?ŠÇ„Édˆ9¡‡ •9
ñãtü3
Wµ­²ý2Ôàv¿¬«öî –`Ø‘¾ý¬Ví^Õ®Ð(e îlH]ë˜öâ
endobj
-2133 0 obj <<
+2137 0 obj <<
/Type /Page
-/Contents 2134 0 R
-/Resources 2132 0 R
+/Contents 2138 0 R
+/Resources 2136 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2131 0 R
+/Parent 2135 0 R
>> endobj
-2135 0 obj <<
-/D [2133 0 R /XYZ 85.0394 794.5015 null]
+2139 0 obj <<
+/D [2137 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2132 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R >>
+2136 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2138 0 obj <<
+2142 0 obj <<
/Length 69
/Filter /FlateDecode
>>
stream
xÚ3T0
endobj
-2137 0 obj <<
+2141 0 obj <<
/Type /Page
-/Contents 2138 0 R
-/Resources 2136 0 R
+/Contents 2142 0 R
+/Resources 2140 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2131 0 R
+/Parent 2135 0 R
>> endobj
-2139 0 obj <<
-/D [2137 0 R /XYZ 56.6929 794.5015 null]
+2143 0 obj <<
+/D [2141 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2136 0 obj <<
+2140 0 obj <<
/ProcSet [ /PDF ]
>> endobj
-2142 0 obj <<
+2146 0 obj <<
/Length 1965
/Filter /FlateDecode
>>
@@ -10302,84 +10252,84 @@ i ·¥Ý3éÀ–yíˆùðŠ&Â8K<æcø¡›‚hïCû™<»úÐŒ­êhüýÔï Æס\@•‰ó÷w= vV
¥Ìrcø-Š¼ûãËü
“¤%œ¡i±Iæ² —â~ÚøÑŸ/¯6³Âv¡ámÒ¥ß;»è½‡CÀê/aïoãã<,EQ^Çsór4 ÝÅpµö;[ÃïVÎy7G)JΑOü©5­¿|hW°hpk·IQ„"é5¶ÏÍŽûª‡]Ù)C™‹_Ú‘Âõ%KÄQXDñ¯oʬ±]ªÜïʽe×SX{üâññ|>‡¼+¾,}w¸ÉÀdñ:Æ›š¥îãºÊǽµÿ¶Uø]5èTíŠË°ç§ð6hÿ˜ÈŸ%×"ö"Û‹ ½H.ƒH"h<H# a("NnÝÍœ÷þþùå
endobj
-2141 0 obj <<
+2145 0 obj <<
/Type /Page
-/Contents 2142 0 R
-/Resources 2140 0 R
+/Contents 2146 0 R
+/Resources 2144 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2131 0 R
-/Annots [ 2149 0 R 2150 0 R ]
+/Parent 2135 0 R
+/Annots [ 2153 0 R 2154 0 R ]
>> endobj
-2149 0 obj <<
+2153 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<</Type/Action/S/URI/URI(mailto:info@isc.org)>>
>> endobj
-2150 0 obj <<
+2154 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<</Type/Action/S/URI/URI(http://www.isc.org/services/support/)>>
>> endobj
-2143 0 obj <<
-/D [2141 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-730 0 obj <<
-/D [2141 0 R /XYZ 85.0394 769.5949 null]
->> endobj
-2144 0 obj <<
-/D [2141 0 R /XYZ 85.0394 576.7004 null]
+2147 0 obj <<
+/D [2145 0 R /XYZ 85.0394 794.5015 null]
>> endobj
734 0 obj <<
-/D [2141 0 R /XYZ 85.0394 576.7004 null]
+/D [2145 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-2145 0 obj <<
-/D [2141 0 R /XYZ 85.0394 548.3785 null]
+2148 0 obj <<
+/D [2145 0 R /XYZ 85.0394 576.7004 null]
>> endobj
738 0 obj <<
-/D [2141 0 R /XYZ 85.0394 548.3785 null]
+/D [2145 0 R /XYZ 85.0394 576.7004 null]
>> endobj
-2146 0 obj <<
-/D [2141 0 R /XYZ 85.0394 518.5228 null]
+2149 0 obj <<
+/D [2145 0 R /XYZ 85.0394 548.3785 null]
>> endobj
742 0 obj <<
-/D [2141 0 R /XYZ 85.0394 460.6968 null]
+/D [2145 0 R /XYZ 85.0394 548.3785 null]
>> endobj
-2147 0 obj <<
-/D [2141 0 R /XYZ 85.0394 425.0333 null]
+2150 0 obj <<
+/D [2145 0 R /XYZ 85.0394 518.5228 null]
>> endobj
746 0 obj <<
-/D [2141 0 R /XYZ 85.0394 260.2468 null]
+/D [2145 0 R /XYZ 85.0394 460.6968 null]
>> endobj
-2148 0 obj <<
-/D [2141 0 R /XYZ 85.0394 224.698 null]
+2151 0 obj <<
+/D [2145 0 R /XYZ 85.0394 425.0333 null]
>> endobj
-2140 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F11 1353 0 R /F41 1233 0 R >>
+750 0 obj <<
+/D [2145 0 R /XYZ 85.0394 260.2468 null]
+>> endobj
+2152 0 obj <<
+/D [2145 0 R /XYZ 85.0394 224.698 null]
+>> endobj
+2144 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F11 1459 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2153 0 obj <<
+2157 0 obj <<
/Length 69
/Filter /FlateDecode
>>
stream
xÚ3T0
endobj
-2152 0 obj <<
+2156 0 obj <<
/Type /Page
-/Contents 2153 0 R
-/Resources 2151 0 R
+/Contents 2157 0 R
+/Resources 2155 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2131 0 R
+/Parent 2135 0 R
>> endobj
-2154 0 obj <<
-/D [2152 0 R /XYZ 56.6929 794.5015 null]
+2158 0 obj <<
+/D [2156 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2151 0 obj <<
+2155 0 obj <<
/ProcSet [ /PDF ]
>> endobj
-2157 0 obj <<
+2161 0 obj <<
/Length 2544
/Filter /FlateDecode
>>
@@ -10393,39 +10343,39 @@ FXЭ‚dƒ\#åS¯ÐyOpBŒšÈª†¨n4\Tòi¹^¿È=õvÂÀ3v·Ù”¹<ƒZˆLPO–`š8I9³€øQ &ŽÀ6 CÆg”ñ
D¤<ÐÎÿ—yÇ‘sU@E…ÎqÌ*Š‘×8P”Ì Ë¿/@f4áRÊ}^º¦ÖÒRº#›Úv°/×ˈÖFtÅŒ‚þ[åSr Òéú@Øèªé)ŽL½"Ÿûæ¢@ù<ñpJµÙ>~æÜpËLtGY­Fgá±[A —(-̃ÅÙ¶Ä ˜Þ°)Ëx™AaíF¼¨‚ÕáPâ¥V)§8·º>@ÌÔ4ûôÜÄP‰BÍÞ(dv P&máªëæßFD3zœ`·“¢ÂEàÛ=ÃBj{ †rh®ÔÐq½ ‘®³«zß&Å(uùJ¸8…B×ò5ø?Š²9Òp#ªf'Ë’•ú&_æ ùM_—¢±J6iðU£ª#E}ïãÏ^5X*‰eÃÏÖJ©>KF\¢P¯SSŒo&Œ>Ï! ·LÝ–è@±¸ˆ¤ægH@Ä9³ZI( Ž:ž()6Sq
UŸiQc¢õFêƆEiX*×5ÔÏ]OÕ-ãÖXXE p³Í‚¥¢o¹‡šMÔºõÁùˆ4òs®øbðج–×
endobj
-2156 0 obj <<
+2160 0 obj <<
/Type /Page
-/Contents 2157 0 R
-/Resources 2155 0 R
+/Contents 2161 0 R
+/Resources 2159 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2131 0 R
->> endobj
-2158 0 obj <<
-/D [2156 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-750 0 obj <<
-/D [2156 0 R /XYZ 85.0394 769.5949 null]
+/Parent 2135 0 R
>> endobj
-2159 0 obj <<
-/D [2156 0 R /XYZ 85.0394 573.5449 null]
+2162 0 obj <<
+/D [2160 0 R /XYZ 85.0394 794.5015 null]
>> endobj
754 0 obj <<
-/D [2156 0 R /XYZ 85.0394 573.5449 null]
+/D [2160 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-2160 0 obj <<
-/D [2156 0 R /XYZ 85.0394 539.0037 null]
+2163 0 obj <<
+/D [2160 0 R /XYZ 85.0394 573.5449 null]
>> endobj
758 0 obj <<
-/D [2156 0 R /XYZ 85.0394 539.0037 null]
+/D [2160 0 R /XYZ 85.0394 573.5449 null]
>> endobj
-2161 0 obj <<
-/D [2156 0 R /XYZ 85.0394 510.2426 null]
+2164 0 obj <<
+/D [2160 0 R /XYZ 85.0394 539.0037 null]
>> endobj
-2155 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R >>
+762 0 obj <<
+/D [2160 0 R /XYZ 85.0394 539.0037 null]
+>> endobj
+2165 0 obj <<
+/D [2160 0 R /XYZ 85.0394 510.2426 null]
+>> endobj
+2159 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2164 0 obj <<
+2168 0 obj <<
/Length 2811
/Filter /FlateDecode
>>
@@ -10445,64 +10395,64 @@ cåàföí÷¹àRõvùÀw²½šÈöëvuyùòò‚*p
]8*?\ÕÂXé[}ãú&?kÚþù+üM\O:‰p-’Ó~å‡1ÎCN("ÛÿùøÓ‰øN”±iÙE˜øô­ƒ–¿ÌìèÇþ»G·c1Üb¾{øÃO)Ô1T~ß!¯½<æÏGþã8:âïè[L‡uÊÓH§Ô§¿Lå]ÀĈ90&ºÒK÷ðxj7ˆ†žÄ˜-t|×âÚv ª{ô^Ù¶Ä>±t‹à-Ö‹i¦'¾}¤¥¶Ÿ4žÓÂ>©]¶£÷OtJµùï‘ÊøÙJ„b¤‡7
}Ç÷èUHÇÁ{‘Ý°î8u¢º¦Nh{'RíÚ©›Íe³ÎN|Çs#'qå1WG¾Óa²2RÄ)µ·|'r"?Ž†<ÇéÜ4†`“6MKÎü=B¿õ…S~–œÃíóÿüõ³ÿ
endobj
-2163 0 obj <<
+2167 0 obj <<
/Type /Page
-/Contents 2164 0 R
-/Resources 2162 0 R
+/Contents 2168 0 R
+/Resources 2166 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2172 0 R
-/Annots [ 2168 0 R 2169 0 R ]
+/Parent 2176 0 R
+/Annots [ 2172 0 R 2173 0 R ]
>> endobj
-2168 0 obj <<
+2172 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [253.7995 149.3637 417.685 161.4234]
/Subtype/Link/A<</Type/Action/S/URI/URI(ftp://www.isi.edu/in-notes/)>>
>> endobj
-2169 0 obj <<
+2173 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [63.4454 110.455 208.8999 120.6168]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://www.ietf.org/rfc/)>>
>> endobj
-2165 0 obj <<
-/D [2163 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-762 0 obj <<
-/D [2163 0 R /XYZ 56.6929 662.0717 null]
->> endobj
-2166 0 obj <<
-/D [2163 0 R /XYZ 56.6929 624.1661 null]
+2169 0 obj <<
+/D [2167 0 R /XYZ 56.6929 794.5015 null]
>> endobj
766 0 obj <<
-/D [2163 0 R /XYZ 56.6929 624.1661 null]
+/D [2167 0 R /XYZ 56.6929 662.0717 null]
>> endobj
-1546 0 obj <<
-/D [2163 0 R /XYZ 56.6929 593.0972 null]
+2170 0 obj <<
+/D [2167 0 R /XYZ 56.6929 624.1661 null]
>> endobj
770 0 obj <<
-/D [2163 0 R /XYZ 56.6929 294.2701 null]
+/D [2167 0 R /XYZ 56.6929 624.1661 null]
>> endobj
-2167 0 obj <<
-/D [2163 0 R /XYZ 56.6929 255.4568 null]
+1539 0 obj <<
+/D [2167 0 R /XYZ 56.6929 593.0972 null]
>> endobj
774 0 obj <<
-/D [2163 0 R /XYZ 56.6929 255.4568 null]
+/D [2167 0 R /XYZ 56.6929 294.2701 null]
>> endobj
-1266 0 obj <<
-/D [2163 0 R /XYZ 56.6929 226.1045 null]
+2171 0 obj <<
+/D [2167 0 R /XYZ 56.6929 255.4568 null]
>> endobj
-2170 0 obj <<
-/D [2163 0 R /XYZ 56.6929 53.5688 null]
+778 0 obj <<
+/D [2167 0 R /XYZ 56.6929 255.4568 null]
>> endobj
-2171 0 obj <<
-/D [2163 0 R /XYZ 56.6929 53.5688 null]
+1271 0 obj <<
+/D [2167 0 R /XYZ 56.6929 226.1045 null]
>> endobj
-2162 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F39 1173 0 R /F53 1328 0 R /F11 1353 0 R /F41 1233 0 R >>
-/ProcSet [ /PDF /Text ]
+2174 0 obj <<
+/D [2167 0 R /XYZ 56.6929 53.5688 null]
>> endobj
2175 0 obj <<
+/D [2167 0 R /XYZ 56.6929 53.5688 null]
+>> endobj
+2166 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F39 1178 0 R /F53 1333 0 R /F11 1459 0 R /F41 1238 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2179 0 obj <<
/Length 2825
/Filter /FlateDecode
>>
@@ -10523,189 +10473,189 @@ Zî–ÁÅ“ž„N(ËEHq¤;#UO«E;õ4:É$£ÇgöHm)7™FJ“>2½Ð-™'ØÃdvÀ›
·‘÷AŸWÏÙ6}ÍE5#P}m kkôÓÒ9áBŸÔ6"²€ÑÛÇ×H^MÖêD2ì #FEÐ|X|Ö~ѼJyÈ«m^§DRãKá%Jæ./öY®P¯ÙÙC²7Ü…¤jñ î€j“Ûÿò—¾ÖÎaŒh’8Ó(4Ÿ”r¬_Jü
Lâþ«›o‚Oßý¿$÷b–endstream
endobj
-2174 0 obj <<
+2178 0 obj <<
/Type /Page
-/Contents 2175 0 R
-/Resources 2173 0 R
+/Contents 2179 0 R
+/Resources 2177 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2172 0 R
->> endobj
-2176 0 obj <<
-/D [2174 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-2177 0 obj <<
-/D [2174 0 R /XYZ 85.0394 752.3015 null]
->> endobj
-2178 0 obj <<
-/D [2174 0 R /XYZ 85.0394 752.3015 null]
->> endobj
-2179 0 obj <<
-/D [2174 0 R /XYZ 85.0394 752.3015 null]
+/Parent 2176 0 R
>> endobj
2180 0 obj <<
-/D [2174 0 R /XYZ 85.0394 746.3107 null]
+/D [2178 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2181 0 obj <<
-/D [2174 0 R /XYZ 85.0394 731.5461 null]
+/D [2178 0 R /XYZ 85.0394 752.3015 null]
>> endobj
2182 0 obj <<
-/D [2174 0 R /XYZ 85.0394 728.1497 null]
+/D [2178 0 R /XYZ 85.0394 752.3015 null]
>> endobj
2183 0 obj <<
-/D [2174 0 R /XYZ 85.0394 713.3851 null]
+/D [2178 0 R /XYZ 85.0394 752.3015 null]
>> endobj
2184 0 obj <<
-/D [2174 0 R /XYZ 85.0394 709.9887 null]
+/D [2178 0 R /XYZ 85.0394 746.3107 null]
>> endobj
2185 0 obj <<
-/D [2174 0 R /XYZ 85.0394 651.9592 null]
->> endobj
-1399 0 obj <<
-/D [2174 0 R /XYZ 85.0394 651.9592 null]
+/D [2178 0 R /XYZ 85.0394 731.5461 null]
>> endobj
2186 0 obj <<
-/D [2174 0 R /XYZ 85.0394 651.9592 null]
+/D [2178 0 R /XYZ 85.0394 728.1497 null]
>> endobj
2187 0 obj <<
-/D [2174 0 R /XYZ 85.0394 648.8377 null]
+/D [2178 0 R /XYZ 85.0394 713.3851 null]
>> endobj
2188 0 obj <<
-/D [2174 0 R /XYZ 85.0394 634.0731 null]
+/D [2178 0 R /XYZ 85.0394 709.9887 null]
>> endobj
2189 0 obj <<
-/D [2174 0 R /XYZ 85.0394 630.6767 null]
+/D [2178 0 R /XYZ 85.0394 651.9592 null]
+>> endobj
+1390 0 obj <<
+/D [2178 0 R /XYZ 85.0394 651.9592 null]
>> endobj
2190 0 obj <<
-/D [2174 0 R /XYZ 85.0394 615.9121 null]
+/D [2178 0 R /XYZ 85.0394 651.9592 null]
>> endobj
2191 0 obj <<
-/D [2174 0 R /XYZ 85.0394 612.5156 null]
+/D [2178 0 R /XYZ 85.0394 648.8377 null]
>> endobj
2192 0 obj <<
-/D [2174 0 R /XYZ 85.0394 585.7959 null]
+/D [2178 0 R /XYZ 85.0394 634.0731 null]
>> endobj
2193 0 obj <<
-/D [2174 0 R /XYZ 85.0394 582.3994 null]
+/D [2178 0 R /XYZ 85.0394 630.6767 null]
>> endobj
2194 0 obj <<
-/D [2174 0 R /XYZ 85.0394 567.6349 null]
+/D [2178 0 R /XYZ 85.0394 615.9121 null]
>> endobj
2195 0 obj <<
-/D [2174 0 R /XYZ 85.0394 564.2384 null]
+/D [2178 0 R /XYZ 85.0394 612.5156 null]
>> endobj
2196 0 obj <<
-/D [2174 0 R /XYZ 85.0394 549.5337 null]
+/D [2178 0 R /XYZ 85.0394 585.7959 null]
>> endobj
2197 0 obj <<
-/D [2174 0 R /XYZ 85.0394 546.0774 null]
+/D [2178 0 R /XYZ 85.0394 582.3994 null]
>> endobj
2198 0 obj <<
-/D [2174 0 R /XYZ 85.0394 531.3128 null]
+/D [2178 0 R /XYZ 85.0394 567.6349 null]
>> endobj
2199 0 obj <<
-/D [2174 0 R /XYZ 85.0394 527.9163 null]
+/D [2178 0 R /XYZ 85.0394 564.2384 null]
>> endobj
2200 0 obj <<
-/D [2174 0 R /XYZ 85.0394 513.1518 null]
+/D [2178 0 R /XYZ 85.0394 549.5337 null]
>> endobj
2201 0 obj <<
-/D [2174 0 R /XYZ 85.0394 509.7553 null]
+/D [2178 0 R /XYZ 85.0394 546.0774 null]
>> endobj
2202 0 obj <<
-/D [2174 0 R /XYZ 85.0394 483.0356 null]
+/D [2178 0 R /XYZ 85.0394 531.3128 null]
>> endobj
2203 0 obj <<
-/D [2174 0 R /XYZ 85.0394 479.6391 null]
+/D [2178 0 R /XYZ 85.0394 527.9163 null]
>> endobj
2204 0 obj <<
-/D [2174 0 R /XYZ 85.0394 464.8745 null]
+/D [2178 0 R /XYZ 85.0394 513.1518 null]
>> endobj
2205 0 obj <<
-/D [2174 0 R /XYZ 85.0394 461.4781 null]
+/D [2178 0 R /XYZ 85.0394 509.7553 null]
>> endobj
2206 0 obj <<
-/D [2174 0 R /XYZ 85.0394 446.7135 null]
+/D [2178 0 R /XYZ 85.0394 483.0356 null]
>> endobj
2207 0 obj <<
-/D [2174 0 R /XYZ 85.0394 443.3171 null]
+/D [2178 0 R /XYZ 85.0394 479.6391 null]
>> endobj
2208 0 obj <<
-/D [2174 0 R /XYZ 85.0394 428.5525 null]
+/D [2178 0 R /XYZ 85.0394 464.8745 null]
>> endobj
2209 0 obj <<
-/D [2174 0 R /XYZ 85.0394 425.156 null]
+/D [2178 0 R /XYZ 85.0394 461.4781 null]
>> endobj
2210 0 obj <<
-/D [2174 0 R /XYZ 85.0394 355.0758 null]
+/D [2178 0 R /XYZ 85.0394 446.7135 null]
>> endobj
2211 0 obj <<
-/D [2174 0 R /XYZ 85.0394 355.0758 null]
+/D [2178 0 R /XYZ 85.0394 443.3171 null]
>> endobj
2212 0 obj <<
-/D [2174 0 R /XYZ 85.0394 355.0758 null]
+/D [2178 0 R /XYZ 85.0394 428.5525 null]
>> endobj
2213 0 obj <<
-/D [2174 0 R /XYZ 85.0394 352.0499 null]
+/D [2178 0 R /XYZ 85.0394 425.156 null]
>> endobj
2214 0 obj <<
-/D [2174 0 R /XYZ 85.0394 337.3452 null]
+/D [2178 0 R /XYZ 85.0394 355.0758 null]
>> endobj
2215 0 obj <<
-/D [2174 0 R /XYZ 85.0394 333.8889 null]
+/D [2178 0 R /XYZ 85.0394 355.0758 null]
>> endobj
2216 0 obj <<
-/D [2174 0 R /XYZ 85.0394 309.8192 null]
+/D [2178 0 R /XYZ 85.0394 355.0758 null]
>> endobj
2217 0 obj <<
-/D [2174 0 R /XYZ 85.0394 303.7727 null]
+/D [2178 0 R /XYZ 85.0394 352.0499 null]
>> endobj
2218 0 obj <<
-/D [2174 0 R /XYZ 85.0394 278.3282 null]
+/D [2178 0 R /XYZ 85.0394 337.3452 null]
>> endobj
2219 0 obj <<
-/D [2174 0 R /XYZ 85.0394 273.6565 null]
+/D [2178 0 R /XYZ 85.0394 333.8889 null]
>> endobj
2220 0 obj <<
-/D [2174 0 R /XYZ 85.0394 246.9367 null]
+/D [2178 0 R /XYZ 85.0394 309.8192 null]
>> endobj
2221 0 obj <<
-/D [2174 0 R /XYZ 85.0394 243.5403 null]
+/D [2178 0 R /XYZ 85.0394 303.7727 null]
>> endobj
2222 0 obj <<
-/D [2174 0 R /XYZ 85.0394 173.5556 null]
+/D [2178 0 R /XYZ 85.0394 278.3282 null]
>> endobj
2223 0 obj <<
-/D [2174 0 R /XYZ 85.0394 173.5556 null]
+/D [2178 0 R /XYZ 85.0394 273.6565 null]
>> endobj
2224 0 obj <<
-/D [2174 0 R /XYZ 85.0394 173.5556 null]
+/D [2178 0 R /XYZ 85.0394 246.9367 null]
>> endobj
2225 0 obj <<
-/D [2174 0 R /XYZ 85.0394 170.4341 null]
+/D [2178 0 R /XYZ 85.0394 243.5403 null]
>> endobj
2226 0 obj <<
-/D [2174 0 R /XYZ 85.0394 144.9896 null]
+/D [2178 0 R /XYZ 85.0394 173.5556 null]
>> endobj
2227 0 obj <<
-/D [2174 0 R /XYZ 85.0394 140.3179 null]
+/D [2178 0 R /XYZ 85.0394 173.5556 null]
>> endobj
2228 0 obj <<
-/D [2174 0 R /XYZ 85.0394 113.5982 null]
+/D [2178 0 R /XYZ 85.0394 173.5556 null]
>> endobj
2229 0 obj <<
-/D [2174 0 R /XYZ 85.0394 110.2017 null]
+/D [2178 0 R /XYZ 85.0394 170.4341 null]
>> endobj
2230 0 obj <<
-/D [2174 0 R /XYZ 85.0394 95.4372 null]
+/D [2178 0 R /XYZ 85.0394 144.9896 null]
>> endobj
2231 0 obj <<
-/D [2174 0 R /XYZ 85.0394 92.0407 null]
+/D [2178 0 R /XYZ 85.0394 140.3179 null]
>> endobj
-2173 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R >>
-/ProcSet [ /PDF /Text ]
+2232 0 obj <<
+/D [2178 0 R /XYZ 85.0394 113.5982 null]
+>> endobj
+2233 0 obj <<
+/D [2178 0 R /XYZ 85.0394 110.2017 null]
>> endobj
2234 0 obj <<
+/D [2178 0 R /XYZ 85.0394 95.4372 null]
+>> endobj
+2235 0 obj <<
+/D [2178 0 R /XYZ 85.0394 92.0407 null]
+>> endobj
+2177 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2238 0 obj <<
/Length 2889
/Filter /FlateDecode
>>
@@ -10725,177 +10675,177 @@ id„ý4¦Õ0m¥Ñ¡¥
…º#õ:ÓÊEYi(^ds›´¥«ÝÅÔOï7ÕḭD˜d™7žmôl‘‡ü€ºíÉÿ ã
.Wçñ|¾FñZD—øw¦~TЙìkUUIw9SAèJ6î$Í«z꾅щlÍ£ü~dÃÏu1dwGÛ›VdÊJ# ‰å4i•6uµû‘™ÚËøBm¼DÁ¶Ï9„§L½Î´ç1NîC݇MyúýȺ‡ лéz~ÐÛ–±DÇÊŽ§^I§‚ö;•“~f8ö–…a4LK5eb©TÛtV]á^T¦°Žqn¨bœñ7ƒ´ºsnÔ©b‚å2^Åâêr…tÇÉÐû¼¤é“ÖÓ?±N©áv3¥†f#¥æÒè¢.lå¹x òüßµ·eYšìÕ‹Z¤uö×ÎÚyÍnð i©³xˆ¿OÛ3ùŽ>“þϯíUñ
endobj
-2233 0 obj <<
+2237 0 obj <<
/Type /Page
-/Contents 2234 0 R
-/Resources 2232 0 R
+/Contents 2238 0 R
+/Resources 2236 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2172 0 R
->> endobj
-2235 0 obj <<
-/D [2233 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-2236 0 obj <<
-/D [2233 0 R /XYZ 56.6929 748.5056 null]
->> endobj
-2237 0 obj <<
-/D [2233 0 R /XYZ 56.6929 748.5056 null]
->> endobj
-2238 0 obj <<
-/D [2233 0 R /XYZ 56.6929 748.5056 null]
+/Parent 2176 0 R
>> endobj
2239 0 obj <<
-/D [2233 0 R /XYZ 56.6929 743.7078 null]
+/D [2237 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2240 0 obj <<
-/D [2233 0 R /XYZ 56.6929 719.6381 null]
+/D [2237 0 R /XYZ 56.6929 748.5056 null]
>> endobj
2241 0 obj <<
-/D [2233 0 R /XYZ 56.6929 711.8197 null]
+/D [2237 0 R /XYZ 56.6929 748.5056 null]
>> endobj
2242 0 obj <<
-/D [2233 0 R /XYZ 56.6929 697.0552 null]
+/D [2237 0 R /XYZ 56.6929 748.5056 null]
>> endobj
2243 0 obj <<
-/D [2233 0 R /XYZ 56.6929 691.8868 null]
+/D [2237 0 R /XYZ 56.6929 743.7078 null]
>> endobj
2244 0 obj <<
-/D [2233 0 R /XYZ 56.6929 665.1671 null]
+/D [2237 0 R /XYZ 56.6929 719.6381 null]
>> endobj
2245 0 obj <<
-/D [2233 0 R /XYZ 56.6929 659.9987 null]
+/D [2237 0 R /XYZ 56.6929 711.8197 null]
>> endobj
2246 0 obj <<
-/D [2233 0 R /XYZ 56.6929 635.929 null]
+/D [2237 0 R /XYZ 56.6929 697.0552 null]
>> endobj
2247 0 obj <<
-/D [2233 0 R /XYZ 56.6929 628.1106 null]
+/D [2237 0 R /XYZ 56.6929 691.8868 null]
>> endobj
2248 0 obj <<
-/D [2233 0 R /XYZ 56.6929 601.3909 null]
+/D [2237 0 R /XYZ 56.6929 665.1671 null]
>> endobj
2249 0 obj <<
-/D [2233 0 R /XYZ 56.6929 596.2225 null]
+/D [2237 0 R /XYZ 56.6929 659.9987 null]
>> endobj
2250 0 obj <<
-/D [2233 0 R /XYZ 56.6929 569.5028 null]
+/D [2237 0 R /XYZ 56.6929 635.929 null]
>> endobj
2251 0 obj <<
-/D [2233 0 R /XYZ 56.6929 564.3344 null]
+/D [2237 0 R /XYZ 56.6929 628.1106 null]
>> endobj
2252 0 obj <<
-/D [2233 0 R /XYZ 56.6929 549.6297 null]
+/D [2237 0 R /XYZ 56.6929 601.3909 null]
>> endobj
2253 0 obj <<
-/D [2233 0 R /XYZ 56.6929 544.4015 null]
+/D [2237 0 R /XYZ 56.6929 596.2225 null]
>> endobj
2254 0 obj <<
-/D [2233 0 R /XYZ 56.6929 529.6968 null]
+/D [2237 0 R /XYZ 56.6929 569.5028 null]
>> endobj
2255 0 obj <<
-/D [2233 0 R /XYZ 56.6929 524.4686 null]
+/D [2237 0 R /XYZ 56.6929 564.3344 null]
>> endobj
2256 0 obj <<
-/D [2233 0 R /XYZ 56.6929 500.3989 null]
+/D [2237 0 R /XYZ 56.6929 549.6297 null]
>> endobj
2257 0 obj <<
-/D [2233 0 R /XYZ 56.6929 492.5805 null]
+/D [2237 0 R /XYZ 56.6929 544.4015 null]
>> endobj
2258 0 obj <<
-/D [2233 0 R /XYZ 56.6929 467.136 null]
+/D [2237 0 R /XYZ 56.6929 529.6968 null]
>> endobj
2259 0 obj <<
-/D [2233 0 R /XYZ 56.6929 460.6924 null]
+/D [2237 0 R /XYZ 56.6929 524.4686 null]
>> endobj
2260 0 obj <<
-/D [2233 0 R /XYZ 56.6929 436.6227 null]
+/D [2237 0 R /XYZ 56.6929 500.3989 null]
>> endobj
2261 0 obj <<
-/D [2233 0 R /XYZ 56.6929 428.8043 null]
+/D [2237 0 R /XYZ 56.6929 492.5805 null]
>> endobj
2262 0 obj <<
-/D [2233 0 R /XYZ 56.6929 414.0996 null]
+/D [2237 0 R /XYZ 56.6929 467.136 null]
>> endobj
2263 0 obj <<
-/D [2233 0 R /XYZ 56.6929 408.8714 null]
+/D [2237 0 R /XYZ 56.6929 460.6924 null]
>> endobj
2264 0 obj <<
-/D [2233 0 R /XYZ 56.6929 382.1516 null]
+/D [2237 0 R /XYZ 56.6929 436.6227 null]
>> endobj
2265 0 obj <<
-/D [2233 0 R /XYZ 56.6929 376.9833 null]
+/D [2237 0 R /XYZ 56.6929 428.8043 null]
>> endobj
2266 0 obj <<
-/D [2233 0 R /XYZ 56.6929 350.2636 null]
+/D [2237 0 R /XYZ 56.6929 414.0996 null]
>> endobj
2267 0 obj <<
-/D [2233 0 R /XYZ 56.6929 345.0952 null]
+/D [2237 0 R /XYZ 56.6929 408.8714 null]
>> endobj
2268 0 obj <<
-/D [2233 0 R /XYZ 56.6929 321.0255 null]
+/D [2237 0 R /XYZ 56.6929 382.1516 null]
>> endobj
2269 0 obj <<
-/D [2233 0 R /XYZ 56.6929 313.2071 null]
+/D [2237 0 R /XYZ 56.6929 376.9833 null]
>> endobj
2270 0 obj <<
-/D [2233 0 R /XYZ 56.6929 298.5024 null]
+/D [2237 0 R /XYZ 56.6929 350.2636 null]
>> endobj
2271 0 obj <<
-/D [2233 0 R /XYZ 56.6929 293.2742 null]
+/D [2237 0 R /XYZ 56.6929 345.0952 null]
>> endobj
2272 0 obj <<
-/D [2233 0 R /XYZ 56.6929 267.8297 null]
+/D [2237 0 R /XYZ 56.6929 321.0255 null]
>> endobj
2273 0 obj <<
-/D [2233 0 R /XYZ 56.6929 261.3861 null]
+/D [2237 0 R /XYZ 56.6929 313.2071 null]
>> endobj
2274 0 obj <<
-/D [2233 0 R /XYZ 56.6929 199.468 null]
+/D [2237 0 R /XYZ 56.6929 298.5024 null]
>> endobj
2275 0 obj <<
-/D [2233 0 R /XYZ 56.6929 199.468 null]
+/D [2237 0 R /XYZ 56.6929 293.2742 null]
>> endobj
2276 0 obj <<
-/D [2233 0 R /XYZ 56.6929 199.468 null]
+/D [2237 0 R /XYZ 56.6929 267.8297 null]
>> endobj
2277 0 obj <<
-/D [2233 0 R /XYZ 56.6929 191.7053 null]
+/D [2237 0 R /XYZ 56.6929 261.3861 null]
>> endobj
2278 0 obj <<
-/D [2233 0 R /XYZ 56.6929 176.9408 null]
+/D [2237 0 R /XYZ 56.6929 199.468 null]
>> endobj
2279 0 obj <<
-/D [2233 0 R /XYZ 56.6929 171.7724 null]
+/D [2237 0 R /XYZ 56.6929 199.468 null]
>> endobj
2280 0 obj <<
-/D [2233 0 R /XYZ 56.6929 157.0677 null]
+/D [2237 0 R /XYZ 56.6929 199.468 null]
>> endobj
2281 0 obj <<
-/D [2233 0 R /XYZ 56.6929 151.8395 null]
+/D [2237 0 R /XYZ 56.6929 191.7053 null]
>> endobj
2282 0 obj <<
-/D [2233 0 R /XYZ 56.6929 137.1348 null]
+/D [2237 0 R /XYZ 56.6929 176.9408 null]
>> endobj
2283 0 obj <<
-/D [2233 0 R /XYZ 56.6929 131.9066 null]
+/D [2237 0 R /XYZ 56.6929 171.7724 null]
>> endobj
2284 0 obj <<
-/D [2233 0 R /XYZ 56.6929 117.2018 null]
+/D [2237 0 R /XYZ 56.6929 157.0677 null]
>> endobj
2285 0 obj <<
-/D [2233 0 R /XYZ 56.6929 111.9736 null]
+/D [2237 0 R /XYZ 56.6929 151.8395 null]
>> endobj
2286 0 obj <<
-/D [2233 0 R /XYZ 56.6929 97.2091 null]
+/D [2237 0 R /XYZ 56.6929 137.1348 null]
>> endobj
2287 0 obj <<
-/D [2233 0 R /XYZ 56.6929 92.0407 null]
+/D [2237 0 R /XYZ 56.6929 131.9066 null]
>> endobj
-2232 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R >>
-/ProcSet [ /PDF /Text ]
+2288 0 obj <<
+/D [2237 0 R /XYZ 56.6929 117.2018 null]
+>> endobj
+2289 0 obj <<
+/D [2237 0 R /XYZ 56.6929 111.9736 null]
>> endobj
2290 0 obj <<
+/D [2237 0 R /XYZ 56.6929 97.2091 null]
+>> endobj
+2291 0 obj <<
+/D [2237 0 R /XYZ 56.6929 92.0407 null]
+>> endobj
+2236 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2294 0 obj <<
/Length 2542
/Filter /FlateDecode
>>
@@ -10908,171 +10858,171 @@ D}`k°ùzH‹v;–<óç‘<k˜¹mP7,ÏKÍt ²}Ó|Û«"
éÿBp7¥Œ+)ƒrì Ümp>Ķn‚sF…‹±#ø4¥ w}vÓT`j¯K‚^ñÒ•‹µ±ŸïÄQ¾¯Ì‡‹è8:4‰8Œmúp€ÂŽq~ƒqq¯–p¾óE®nÒ#ü:O‹íkþáAL ƒº”ÍM);áZÊ ÜQ;¡;ÂÏ°Ç ï?ŠÛrÇx
ÈLíª¯ÝƒïüÂÙ)óWy~„{¹ÿý_ýò£ Šòr,4æ0[ÄV>ýˆzQx)]˜Rv>µTÇ'uNèŽÏ3ìq>{à =}gE7½S.%«‚ó©êÏrjÇtå¬Q„Gõ1þYoÓm»›x1xé„´H!]Ò£ÈÑùp RÀN ä5ƒnŒ°­Q3+ZÄpEdôºP•:¢ þ0yCA»/ÁóêÁЯ%k”"J¼8 õ÷'IQ猣o(À±&B½
endobj
-2289 0 obj <<
+2293 0 obj <<
/Type /Page
-/Contents 2290 0 R
-/Resources 2288 0 R
+/Contents 2294 0 R
+/Resources 2292 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2172 0 R
->> endobj
-2291 0 obj <<
-/D [2289 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-2292 0 obj <<
-/D [2289 0 R /XYZ 85.0394 748.4854 null]
->> endobj
-2293 0 obj <<
-/D [2289 0 R /XYZ 85.0394 748.4854 null]
->> endobj
-2294 0 obj <<
-/D [2289 0 R /XYZ 85.0394 748.4854 null]
+/Parent 2176 0 R
>> endobj
2295 0 obj <<
-/D [2289 0 R /XYZ 85.0394 743.3452 null]
+/D [2293 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2296 0 obj <<
-/D [2289 0 R /XYZ 85.0394 728.6405 null]
+/D [2293 0 R /XYZ 85.0394 748.4854 null]
>> endobj
2297 0 obj <<
-/D [2289 0 R /XYZ 85.0394 723.1655 null]
+/D [2293 0 R /XYZ 85.0394 748.4854 null]
>> endobj
2298 0 obj <<
-/D [2289 0 R /XYZ 85.0394 708.4607 null]
+/D [2293 0 R /XYZ 85.0394 748.4854 null]
>> endobj
2299 0 obj <<
-/D [2289 0 R /XYZ 85.0394 702.9857 null]
+/D [2293 0 R /XYZ 85.0394 743.3452 null]
>> endobj
2300 0 obj <<
-/D [2289 0 R /XYZ 85.0394 688.2211 null]
+/D [2293 0 R /XYZ 85.0394 728.6405 null]
>> endobj
2301 0 obj <<
-/D [2289 0 R /XYZ 85.0394 682.8059 null]
+/D [2293 0 R /XYZ 85.0394 723.1655 null]
>> endobj
2302 0 obj <<
-/D [2289 0 R /XYZ 85.0394 668.0414 null]
+/D [2293 0 R /XYZ 85.0394 708.4607 null]
>> endobj
2303 0 obj <<
-/D [2289 0 R /XYZ 85.0394 662.6262 null]
+/D [2293 0 R /XYZ 85.0394 702.9857 null]
>> endobj
2304 0 obj <<
-/D [2289 0 R /XYZ 85.0394 599.7666 null]
+/D [2293 0 R /XYZ 85.0394 688.2211 null]
>> endobj
2305 0 obj <<
-/D [2289 0 R /XYZ 85.0394 599.7666 null]
+/D [2293 0 R /XYZ 85.0394 682.8059 null]
>> endobj
2306 0 obj <<
-/D [2289 0 R /XYZ 85.0394 599.7666 null]
+/D [2293 0 R /XYZ 85.0394 668.0414 null]
>> endobj
2307 0 obj <<
-/D [2289 0 R /XYZ 85.0394 591.7571 null]
+/D [2293 0 R /XYZ 85.0394 662.6262 null]
>> endobj
2308 0 obj <<
-/D [2289 0 R /XYZ 85.0394 565.0374 null]
+/D [2293 0 R /XYZ 85.0394 599.7666 null]
>> endobj
2309 0 obj <<
-/D [2289 0 R /XYZ 85.0394 559.6222 null]
+/D [2293 0 R /XYZ 85.0394 599.7666 null]
>> endobj
2310 0 obj <<
-/D [2289 0 R /XYZ 85.0394 534.1777 null]
+/D [2293 0 R /XYZ 85.0394 599.7666 null]
>> endobj
2311 0 obj <<
-/D [2289 0 R /XYZ 85.0394 527.4872 null]
+/D [2293 0 R /XYZ 85.0394 591.7571 null]
>> endobj
2312 0 obj <<
-/D [2289 0 R /XYZ 85.0394 502.0427 null]
+/D [2293 0 R /XYZ 85.0394 565.0374 null]
>> endobj
2313 0 obj <<
-/D [2289 0 R /XYZ 85.0394 495.3523 null]
+/D [2293 0 R /XYZ 85.0394 559.6222 null]
>> endobj
2314 0 obj <<
-/D [2289 0 R /XYZ 85.0394 420.5376 null]
+/D [2293 0 R /XYZ 85.0394 534.1777 null]
>> endobj
2315 0 obj <<
-/D [2289 0 R /XYZ 85.0394 420.5376 null]
+/D [2293 0 R /XYZ 85.0394 527.4872 null]
>> endobj
2316 0 obj <<
-/D [2289 0 R /XYZ 85.0394 420.5376 null]
+/D [2293 0 R /XYZ 85.0394 502.0427 null]
>> endobj
2317 0 obj <<
-/D [2289 0 R /XYZ 85.0394 412.5281 null]
+/D [2293 0 R /XYZ 85.0394 495.3523 null]
>> endobj
2318 0 obj <<
-/D [2289 0 R /XYZ 85.0394 388.4584 null]
+/D [2293 0 R /XYZ 85.0394 420.5376 null]
>> endobj
2319 0 obj <<
-/D [2289 0 R /XYZ 85.0394 380.3932 null]
+/D [2293 0 R /XYZ 85.0394 420.5376 null]
>> endobj
2320 0 obj <<
-/D [2289 0 R /XYZ 85.0394 365.6884 null]
+/D [2293 0 R /XYZ 85.0394 420.5376 null]
>> endobj
2321 0 obj <<
-/D [2289 0 R /XYZ 85.0394 360.2134 null]
+/D [2293 0 R /XYZ 85.0394 412.5281 null]
>> endobj
2322 0 obj <<
-/D [2289 0 R /XYZ 85.0394 345.4488 null]
+/D [2293 0 R /XYZ 85.0394 388.4584 null]
>> endobj
2323 0 obj <<
-/D [2289 0 R /XYZ 85.0394 340.0336 null]
+/D [2293 0 R /XYZ 85.0394 380.3932 null]
>> endobj
2324 0 obj <<
-/D [2289 0 R /XYZ 85.0394 325.269 null]
+/D [2293 0 R /XYZ 85.0394 365.6884 null]
>> endobj
2325 0 obj <<
-/D [2289 0 R /XYZ 85.0394 319.8539 null]
+/D [2293 0 R /XYZ 85.0394 360.2134 null]
>> endobj
2326 0 obj <<
-/D [2289 0 R /XYZ 85.0394 295.7842 null]
+/D [2293 0 R /XYZ 85.0394 345.4488 null]
>> endobj
2327 0 obj <<
-/D [2289 0 R /XYZ 85.0394 287.7189 null]
+/D [2293 0 R /XYZ 85.0394 340.0336 null]
>> endobj
2328 0 obj <<
-/D [2289 0 R /XYZ 85.0394 272.9543 null]
+/D [2293 0 R /XYZ 85.0394 325.269 null]
>> endobj
2329 0 obj <<
-/D [2289 0 R /XYZ 85.0394 267.5392 null]
+/D [2293 0 R /XYZ 85.0394 319.8539 null]
>> endobj
2330 0 obj <<
-/D [2289 0 R /XYZ 85.0394 252.7746 null]
+/D [2293 0 R /XYZ 85.0394 295.7842 null]
>> endobj
2331 0 obj <<
-/D [2289 0 R /XYZ 85.0394 247.3594 null]
+/D [2293 0 R /XYZ 85.0394 287.7189 null]
>> endobj
2332 0 obj <<
-/D [2289 0 R /XYZ 85.0394 223.2897 null]
+/D [2293 0 R /XYZ 85.0394 272.9543 null]
>> endobj
2333 0 obj <<
-/D [2289 0 R /XYZ 85.0394 215.2245 null]
+/D [2293 0 R /XYZ 85.0394 267.5392 null]
>> endobj
2334 0 obj <<
-/D [2289 0 R /XYZ 85.0394 149.4956 null]
+/D [2293 0 R /XYZ 85.0394 252.7746 null]
>> endobj
2335 0 obj <<
-/D [2289 0 R /XYZ 85.0394 149.4956 null]
+/D [2293 0 R /XYZ 85.0394 247.3594 null]
>> endobj
2336 0 obj <<
-/D [2289 0 R /XYZ 85.0394 149.4956 null]
+/D [2293 0 R /XYZ 85.0394 223.2897 null]
>> endobj
2337 0 obj <<
-/D [2289 0 R /XYZ 85.0394 144.3554 null]
+/D [2293 0 R /XYZ 85.0394 215.2245 null]
>> endobj
2338 0 obj <<
-/D [2289 0 R /XYZ 85.0394 120.2857 null]
+/D [2293 0 R /XYZ 85.0394 149.4956 null]
>> endobj
2339 0 obj <<
-/D [2289 0 R /XYZ 85.0394 112.2205 null]
+/D [2293 0 R /XYZ 85.0394 149.4956 null]
>> endobj
2340 0 obj <<
-/D [2289 0 R /XYZ 85.0394 97.4559 null]
+/D [2293 0 R /XYZ 85.0394 149.4956 null]
>> endobj
2341 0 obj <<
-/D [2289 0 R /XYZ 85.0394 92.0407 null]
+/D [2293 0 R /XYZ 85.0394 144.3554 null]
>> endobj
-2288 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R >>
-/ProcSet [ /PDF /Text ]
+2342 0 obj <<
+/D [2293 0 R /XYZ 85.0394 120.2857 null]
+>> endobj
+2343 0 obj <<
+/D [2293 0 R /XYZ 85.0394 112.2205 null]
>> endobj
2344 0 obj <<
+/D [2293 0 R /XYZ 85.0394 97.4559 null]
+>> endobj
+2345 0 obj <<
+/D [2293 0 R /XYZ 85.0394 92.0407 null]
+>> endobj
+2292 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2348 0 obj <<
/Length 2928
/Filter /FlateDecode
>>
@@ -11090,123 +11040,123 @@ B…{aª / ;ÏÕVÇ
â§.|Rƒ¶Im 3ìê\ñ–/²ƒI/UQTïT`7“­.›ŸO@6á™Ë±Í¥"QÏ‘#÷ÒÐ’¥=9:T<{ãJ Ó±ÒžÓÄÜ ð׋žÒ'uIâ”Ù»:_h¦t4  ñ‹âh‘£e=A]-¶…ªÙ‚H{"’ÍWÒgÁNe)hXXQ̺€–…–Qj‘è˜/2Õ+.«Jº>
® ,¸è«ª íEšN¡hKÂsÚZ–LµYÃÈ{Þ®¨%éƒÞš§ÛBÖÔo²úm_á óAÖ¢û9Ø(ããûÃ÷VSì¡Á ø9-]@ v´tŸa€¢Á†ÂbC=¹x“¯Á§D°ØLÀ'sŬ(žCW$¢Ae™/¤y}æÝσ€ug¹ÄÚ7JÙÁà„ð“ÿìW¦*œªÕ/õÍ®LWkYm›ƒ»­¹ÙÉ+mœ¸p¼gž -¦Óh˜Î9à˜ÆÎÿ5ºŸ­QyŸz5Яnçä^Š€W´Rå# >f-„·7ÌQØ¥‡ý ýBgQιƒÿ9ÁÕ¥¥¡¾w!Ej™–wa#»š ëÆÌjÁ_+Ê jUq²7â7ZHZ•/4‚Þh3"Ñf€Ä}–Þ6ë…ú}ÎW¹¤Ùd)ýÐD, {ËmmNæ@´zÄC"-|¿¤–zꢗ0Ê{¡d#ÓW¸î_ šì0À)¦u¾Ù¿v‡{–²Ñ['1´>å p½|§{ÂÎEàâ¿à ë.ÿ÷úXo@‘+âøÄO'^¸094‹Ru¥`GK7ÿt¼öÿÓž Gendstream
endobj
-2343 0 obj <<
+2347 0 obj <<
/Type /Page
-/Contents 2344 0 R
-/Resources 2342 0 R
+/Contents 2348 0 R
+/Resources 2346 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2172 0 R
->> endobj
-2345 0 obj <<
-/D [2343 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-2346 0 obj <<
-/D [2343 0 R /XYZ 56.6929 749.0089 null]
->> endobj
-2347 0 obj <<
-/D [2343 0 R /XYZ 56.6929 749.0089 null]
->> endobj
-2348 0 obj <<
-/D [2343 0 R /XYZ 56.6929 749.0089 null]
+/Parent 2176 0 R
>> endobj
2349 0 obj <<
-/D [2343 0 R /XYZ 56.6929 745.2843 null]
+/D [2347 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2350 0 obj <<
-/D [2343 0 R /XYZ 56.6929 721.2146 null]
+/D [2347 0 R /XYZ 56.6929 749.0089 null]
>> endobj
2351 0 obj <<
-/D [2343 0 R /XYZ 56.6929 714.4694 null]
+/D [2347 0 R /XYZ 56.6929 749.0089 null]
>> endobj
2352 0 obj <<
-/D [2343 0 R /XYZ 56.6929 699.7048 null]
+/D [2347 0 R /XYZ 56.6929 749.0089 null]
>> endobj
2353 0 obj <<
-/D [2343 0 R /XYZ 56.6929 695.6096 null]
+/D [2347 0 R /XYZ 56.6929 745.2843 null]
>> endobj
2354 0 obj <<
-/D [2343 0 R /XYZ 56.6929 680.9049 null]
+/D [2347 0 R /XYZ 56.6929 721.2146 null]
>> endobj
2355 0 obj <<
-/D [2343 0 R /XYZ 56.6929 676.7499 null]
+/D [2347 0 R /XYZ 56.6929 714.4694 null]
>> endobj
2356 0 obj <<
-/D [2343 0 R /XYZ 56.6929 652.6802 null]
+/D [2347 0 R /XYZ 56.6929 699.7048 null]
>> endobj
2357 0 obj <<
-/D [2343 0 R /XYZ 56.6929 645.935 null]
+/D [2347 0 R /XYZ 56.6929 695.6096 null]
>> endobj
2358 0 obj <<
-/D [2343 0 R /XYZ 56.6929 631.2303 null]
+/D [2347 0 R /XYZ 56.6929 680.9049 null]
>> endobj
2359 0 obj <<
-/D [2343 0 R /XYZ 56.6929 627.0752 null]
+/D [2347 0 R /XYZ 56.6929 676.7499 null]
>> endobj
2360 0 obj <<
-/D [2343 0 R /XYZ 56.6929 603.0055 null]
+/D [2347 0 R /XYZ 56.6929 652.6802 null]
>> endobj
2361 0 obj <<
-/D [2343 0 R /XYZ 56.6929 596.2603 null]
+/D [2347 0 R /XYZ 56.6929 645.935 null]
>> endobj
2362 0 obj <<
-/D [2343 0 R /XYZ 56.6929 572.1906 null]
+/D [2347 0 R /XYZ 56.6929 631.2303 null]
>> endobj
2363 0 obj <<
-/D [2343 0 R /XYZ 56.6929 565.4454 null]
+/D [2347 0 R /XYZ 56.6929 627.0752 null]
>> endobj
2364 0 obj <<
-/D [2343 0 R /XYZ 56.6929 550.7407 null]
+/D [2347 0 R /XYZ 56.6929 603.0055 null]
>> endobj
2365 0 obj <<
-/D [2343 0 R /XYZ 56.6929 546.5857 null]
+/D [2347 0 R /XYZ 56.6929 596.2603 null]
>> endobj
2366 0 obj <<
-/D [2343 0 R /XYZ 56.6929 531.8211 null]
+/D [2347 0 R /XYZ 56.6929 572.1906 null]
>> endobj
2367 0 obj <<
-/D [2343 0 R /XYZ 56.6929 527.7259 null]
+/D [2347 0 R /XYZ 56.6929 565.4454 null]
>> endobj
2368 0 obj <<
-/D [2343 0 R /XYZ 56.6929 501.0062 null]
+/D [2347 0 R /XYZ 56.6929 550.7407 null]
>> endobj
2369 0 obj <<
-/D [2343 0 R /XYZ 56.6929 496.911 null]
->> endobj
-778 0 obj <<
-/D [2343 0 R /XYZ 56.6929 464.7873 null]
+/D [2347 0 R /XYZ 56.6929 546.5857 null]
>> endobj
2370 0 obj <<
-/D [2343 0 R /XYZ 56.6929 439.0859 null]
->> endobj
-782 0 obj <<
-/D [2343 0 R /XYZ 56.6929 352.4521 null]
+/D [2347 0 R /XYZ 56.6929 531.8211 null]
>> endobj
2371 0 obj <<
-/D [2343 0 R /XYZ 56.6929 326.7507 null]
+/D [2347 0 R /XYZ 56.6929 527.7259 null]
>> endobj
2372 0 obj <<
-/D [2343 0 R /XYZ 56.6929 290.6891 null]
+/D [2347 0 R /XYZ 56.6929 501.0062 null]
>> endobj
2373 0 obj <<
-/D [2343 0 R /XYZ 56.6929 290.6891 null]
+/D [2347 0 R /XYZ 56.6929 496.911 null]
>> endobj
-2374 0 obj <<
-/D [2343 0 R /XYZ 56.6929 290.6891 null]
+782 0 obj <<
+/D [2347 0 R /XYZ 56.6929 464.7873 null]
>> endobj
-2375 0 obj <<
-/D [2343 0 R /XYZ 56.6929 290.6891 null]
+2374 0 obj <<
+/D [2347 0 R /XYZ 56.6929 439.0859 null]
>> endobj
786 0 obj <<
-/D [2343 0 R /XYZ 56.6929 241.4457 null]
+/D [2347 0 R /XYZ 56.6929 352.4521 null]
+>> endobj
+2375 0 obj <<
+/D [2347 0 R /XYZ 56.6929 326.7507 null]
>> endobj
2376 0 obj <<
-/D [2343 0 R /XYZ 56.6929 201.7704 null]
+/D [2347 0 R /XYZ 56.6929 290.6891 null]
>> endobj
-2342 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R /F14 976 0 R >>
-/ProcSet [ /PDF /Text ]
+2377 0 obj <<
+/D [2347 0 R /XYZ 56.6929 290.6891 null]
+>> endobj
+2378 0 obj <<
+/D [2347 0 R /XYZ 56.6929 290.6891 null]
>> endobj
2379 0 obj <<
+/D [2347 0 R /XYZ 56.6929 290.6891 null]
+>> endobj
+790 0 obj <<
+/D [2347 0 R /XYZ 56.6929 241.4457 null]
+>> endobj
+2380 0 obj <<
+/D [2347 0 R /XYZ 56.6929 201.7704 null]
+>> endobj
+2346 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F14 980 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2383 0 obj <<
/Length 2293
/Filter /FlateDecode
>>
@@ -11225,45 +11175,45 @@ P#¢ &6æ0wV}-±b]íO«–í%9µ2¶žTû¾Ò“žAäíEÑѣ̀~ãÊ»Ì^¹¾'åe ±)ìúŸ`ÖnqaSx¿áÄ«¶´
惒ÊáNšë¥jÚZÓ‡„—8@Ääܘêån zs€{Uêq€»;9Àˆýp2ßh0á–ÂCP˜XÃg‰±ˆ€âLî€×Û Èwƒã´‚ðYÝ26iàÞ.‘ØO|)Úˆ8ñKD˜‰••@Åt"'%M_ñX¨Ù«9÷}WúL¾qŸ#ªWzû>_“:ºÏs±Ó÷9K^"áÐtÀ¼¿TF¹ ‘Ë¥é:$ã˜b¯¦m‹ì›ýpG'ßNìWšèäúÍÖ’žm/zèᢋÛYìÜå´dF+ö‰™Ú¡¾™ 8¢oX/dîpŠ³:áØ8Ò WÐBi:–Ž™ .Ó>÷7ŠCßfœÈ²‰œ#„‰¸§Ú¯ua‡H;B£x“kéƒÞqàõÁûxÁÏD‚…¶êÚ³IÙªJ¹’Ì Exêìc…±dÐż³@©ß•%±3Hqøñ….oÔ~½9»åη¨ks“ÓÛ;‚W%0þ5=ÿ}Ï ÷Âòÿ?]¾}¾‘Ž_§œòÕVx*åW1ùQž %ìoÿ{☻dèŠ(ò¦sˆ€\Sï…
qÁÏî (Ô‘Nœý¿Ii»áendstream
endobj
-2378 0 obj <<
+2382 0 obj <<
/Type /Page
-/Contents 2379 0 R
-/Resources 2377 0 R
+/Contents 2383 0 R
+/Resources 2381 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2172 0 R
->> endobj
-2380 0 obj <<
-/D [2378 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-790 0 obj <<
-/D [2378 0 R /XYZ 85.0394 662.3711 null]
+/Parent 2176 0 R
>> endobj
-2381 0 obj <<
-/D [2378 0 R /XYZ 85.0394 634.4781 null]
+2384 0 obj <<
+/D [2382 0 R /XYZ 85.0394 794.5015 null]
>> endobj
794 0 obj <<
-/D [2378 0 R /XYZ 85.0394 566.8617 null]
+/D [2382 0 R /XYZ 85.0394 662.3711 null]
>> endobj
-2382 0 obj <<
-/D [2378 0 R /XYZ 85.0394 536.3186 null]
+2385 0 obj <<
+/D [2382 0 R /XYZ 85.0394 634.4781 null]
>> endobj
798 0 obj <<
-/D [2378 0 R /XYZ 85.0394 411.7882 null]
+/D [2382 0 R /XYZ 85.0394 566.8617 null]
>> endobj
-2383 0 obj <<
-/D [2378 0 R /XYZ 85.0394 386.7645 null]
+2386 0 obj <<
+/D [2382 0 R /XYZ 85.0394 536.3186 null]
>> endobj
802 0 obj <<
-/D [2378 0 R /XYZ 85.0394 230.2565 null]
+/D [2382 0 R /XYZ 85.0394 411.7882 null]
>> endobj
-2384 0 obj <<
-/D [2378 0 R /XYZ 85.0394 203.9874 null]
+2387 0 obj <<
+/D [2382 0 R /XYZ 85.0394 386.7645 null]
>> endobj
-2377 0 obj <<
-/Font << /F37 1038 0 R /F14 976 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R >>
+806 0 obj <<
+/D [2382 0 R /XYZ 85.0394 230.2565 null]
+>> endobj
+2388 0 obj <<
+/D [2382 0 R /XYZ 85.0394 203.9874 null]
+>> endobj
+2381 0 obj <<
+/Font << /F37 1042 0 R /F14 980 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2387 0 obj <<
+2391 0 obj <<
/Length 2527
/Filter /FlateDecode
>>
@@ -11282,47 +11232,47 @@ A! zBΪª zÊaÄwIl3H’ ²R7IK#«pˆ1‚¾‡JʤM.“]²È‹¼=Ð<QÊF,\zÔya`,öºu1ƒâA
H¨ã
e0ì>Ùr${ÑÁãÍðÍtÜŠzéÙüDñùîÏ¡9rP#nßÔ“±ÏOè(µ”GµMo£g~ÿÑèþ¾–Ž¥4úøôyyyI´î KyÅK¶˜¦C7c§±¯ë)ÆãØ£‘8hyøíÎ,|¦ïO ðOcŸõ;²2ˆm–h CnÚwš‡i3ÁE HèówUfÿ4ûðU‚ð`¡É×%Ý(í6O!•î‰%[VÏ¥!Ø£Ò``Û.X»+ÛÚÐÝUù‡ž×]DÎïa38îÈË­-Õ6oé+ª&i6‰ ‰yÊÄ_ì E\áê⃣òþR5âѼ«ÃÿïÄŽ/—T•Ñ¥^A†Ð±Ä06B¡„’ç‘Ôütv.û<-endstream
endobj
-2386 0 obj <<
+2390 0 obj <<
/Type /Page
-/Contents 2387 0 R
-/Resources 2385 0 R
+/Contents 2391 0 R
+/Resources 2389 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2393 0 R
-/Annots [ 2390 0 R ]
+/Parent 2397 0 R
+/Annots [ 2394 0 R ]
>> endobj
-2390 0 obj <<
+2394 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [344.9397 501.3201 406.1397 512.7122]
/Subtype /Link
/A << /S /GoTo /D (trusted-keys) >>
>> endobj
-2388 0 obj <<
-/D [2386 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-806 0 obj <<
-/D [2386 0 R /XYZ 56.6929 609.3932 null]
->> endobj
-2389 0 obj <<
-/D [2386 0 R /XYZ 56.6929 583.208 null]
+2392 0 obj <<
+/D [2390 0 R /XYZ 56.6929 794.5015 null]
>> endobj
810 0 obj <<
-/D [2386 0 R /XYZ 56.6929 484.1849 null]
+/D [2390 0 R /XYZ 56.6929 609.3932 null]
>> endobj
-2391 0 obj <<
-/D [2386 0 R /XYZ 56.6929 454.463 null]
+2393 0 obj <<
+/D [2390 0 R /XYZ 56.6929 583.208 null]
>> endobj
814 0 obj <<
-/D [2386 0 R /XYZ 56.6929 405.4622 null]
+/D [2390 0 R /XYZ 56.6929 484.1849 null]
>> endobj
-2392 0 obj <<
-/D [2386 0 R /XYZ 56.6929 378.8348 null]
+2395 0 obj <<
+/D [2390 0 R /XYZ 56.6929 454.463 null]
>> endobj
-2385 0 obj <<
-/Font << /F37 1038 0 R /F41 1233 0 R /F14 976 0 R /F22 973 0 R /F21 950 0 R >>
-/ProcSet [ /PDF /Text ]
+818 0 obj <<
+/D [2390 0 R /XYZ 56.6929 405.4622 null]
>> endobj
2396 0 obj <<
+/D [2390 0 R /XYZ 56.6929 378.8348 null]
+>> endobj
+2389 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F14 980 0 R /F22 977 0 R /F21 954 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2400 0 obj <<
/Length 2458
/Filter /FlateDecode
>>
@@ -11333,39 +11283,39 @@ xÚÍZ[oÛ:~ϯðÛq€c–w‰yKÛì"»9Ù&vÑöA±åD¨,¹’œË¿ß!‡TD[¶Hv±(ZÓähøif8ó k6¡ð‡MRE¨0r’
¤px—í¾¾ã bzéQ×Nñˆk¡!µíïÛŒbÓeÑùbq¥‘Gåþ`…¸Þ=·,M‰N(
É)´ ½ n»v—?dEÈ€Ò‰£~v›.û™±)8±sY©F)á ¨
endobj
-2395 0 obj <<
+2399 0 obj <<
/Type /Page
-/Contents 2396 0 R
-/Resources 2394 0 R
+/Contents 2400 0 R
+/Resources 2398 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2393 0 R
->> endobj
-2397 0 obj <<
-/D [2395 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-818 0 obj <<
-/D [2395 0 R /XYZ 85.0394 650.8348 null]
+/Parent 2397 0 R
>> endobj
-2398 0 obj <<
-/D [2395 0 R /XYZ 85.0394 625.7398 null]
+2401 0 obj <<
+/D [2399 0 R /XYZ 85.0394 794.5015 null]
>> endobj
822 0 obj <<
-/D [2395 0 R /XYZ 85.0394 378.0874 null]
+/D [2399 0 R /XYZ 85.0394 650.8348 null]
>> endobj
-2399 0 obj <<
-/D [2395 0 R /XYZ 85.0394 350.2627 null]
+2402 0 obj <<
+/D [2399 0 R /XYZ 85.0394 625.7398 null]
>> endobj
826 0 obj <<
-/D [2395 0 R /XYZ 85.0394 153.7325 null]
+/D [2399 0 R /XYZ 85.0394 378.0874 null]
>> endobj
-2400 0 obj <<
-/D [2395 0 R /XYZ 85.0394 128.6375 null]
+2403 0 obj <<
+/D [2399 0 R /XYZ 85.0394 350.2627 null]
>> endobj
-2394 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R >>
+830 0 obj <<
+/D [2399 0 R /XYZ 85.0394 153.7325 null]
+>> endobj
+2404 0 obj <<
+/D [2399 0 R /XYZ 85.0394 128.6375 null]
+>> endobj
+2398 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2403 0 obj <<
+2407 0 obj <<
/Length 2393
/Filter /FlateDecode
>>
@@ -11374,32 +11324,34 @@ xÚÅY_sÛ8ϧðtîAž]sùWsOé5·“Ý6—xgî¦ÛÅV]m˵”¦î§?€ eÊ–Îv(Aø€ÅˆÃ12)K­´
”ÅÙíÙ?:ѬûtÐP‚3©R9`))‡,e,K•TÎR¿7ÅCy>ž(Á“¦X®å䡨h¿uÓ®Še‰»Y"’ÅG¥™ÍyÚÙ;eÌÆy'çi=/Ú » ‘M…S4žoAx5£b¦ñlQ•«–ÆëMý°)–^ÙWA›¡\á©NŠÙ¬\· ¾(·*КjõàV…q·ŒgõrY¬æž·ñzs“EµòÜÅf,òäái Êýˆ¤,iÊÕ<|¶"1±|÷Aùé©l¼r˲A{ÓK[ã®pB0kŒtûhaZ©4)žÚÇzSµE[}ö¤¦Ü|.7ãL'°¾2Yâ”w3õsCÃN
ùÔi߽3¬XÂu…xìœxyiu¿ï´û Îî‚£é¾1vâž«Ù㞬ØýûeTDP~µÇãA@6¯sõB<D\'â!p¹xøJ«còÊã~ú @™eö´×€
=GƒjÁ‘žÓ`§y½„´ÏŸV‡;äf‘9}¢Øƒ"Ÿ26Ç ¨rÅR®ÒÓŒ¹Ž°ãBåW`’CØ+¹W€‰o(À΀3+2qz×À.úg`XŽÖÛÆ-Þ(AÐn×{‡»r½.7…OQ0£¸¬¨Äå#˜ÅUŒÄMø­vs˧ !V£ îhL(£˜0ù ÙdÌuâH—;Ò¥o?ÕàPÀʜԤãP¥Ÿj(ØSÓ×¥;%C“¨‘'Õô¼ó3¤÷K È.<Óv]ÍŠ½”_
-j[á ëÉϾh’Y²¨¡ò«?ú—ê£çE›Ì€ÈWL+¸½zØ;þF6¼¹ÙùÒÍ› ¬¦øç…°c­GÈ\™Jõ7ÝÁZÀ-l¾…¡pqÇeÑwdùaøbïBïš¹Òõì²^ u»¿Ám¤2ðAiS&”²Î"o£FŒIáÎuU3J xõ«À¶m*“Ë}Ë€LžÉlW ìÖ:_} @S,ìS4v{ÝÙÀ~ºZÊÑ›v4Š6ObÉnSi쥬Ÿq@ß÷q-6ž»¼³Á¶š•c¸½±½&²¤ô¸€,ØÁg½¡ºdâéKüÒÁ
-ÔGÏ^¬×›zí¿éú¨ ™"ù<–&qp‰¬¡që?ÖÉW4`Vö·!ŒîÇÊé@5Nßfy
-—„oÍ98ŒÍ již–î•.¡UÔèj”ëй^ÖQ›ENj¾×¡ËÚB-3s½h˜£üG®ù…ßQ‹GC.ý9òÃtRr.Îçwùù9”ªúG ½ÿ«dZgNÂ_
+j[á ëÉϾh’Y²¨¡ò«?ú—ê£çE›Ì€ÈWL+¸½zØ;þF6¼¹ÙùÒÍ› ¬¦øç…°c­GÈ\™Jõ7ÝÁZÀ-l¾…¡pqÇeÑwdùaøbïBïš¹Òõì²^ u»¿Ám¤2ðAiS&”²Î"o£FŒIáÎuU3J xõ«À¶m*“Ë}Ë€LžÉlW ìÖ:_} @S,ìS4v{ÝÙÀ~ºZÊÑ›v4Š6ObÉnS);9.X?ã€"¾ïãZl<wy'fƒm5+Çp{c{MdIéqY°ƒÏzCuÉÄÓ—ø¥ƒ¤:ojÀÃÒäŠjh–
+çˆzcÅâ¯èŸÚ;5ПVór3ªÈ[j2¤
+üúŽÔw%[ßõ¬!G¡¦©‚ªl<mU¥ïȺ;˜¢©ž½X¯7õÚÓõQ2Eòy,MâàYCãÖ¬“¯hÀ:¬ìoCÝ•Ójœ¾Íò
+¿êzD»Êó˜EóÿžE)õùSFý’-ëÏe0%•T‘-›ÿµ1³ÿ¯1_Í- ä+j°=ÄGV¿û7Ï”aë%?VËÌ
+m&”>Ì}ýÏ£Úÿº¥}iendstream
endobj
-2402 0 obj <<
+2406 0 obj <<
/Type /Page
-/Contents 2403 0 R
-/Resources 2401 0 R
+/Contents 2407 0 R
+/Resources 2405 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2393 0 R
+/Parent 2397 0 R
>> endobj
-2404 0 obj <<
-/D [2402 0 R /XYZ 56.6929 794.5015 null]
+2408 0 obj <<
+/D [2406 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-830 0 obj <<
-/D [2402 0 R /XYZ 56.6929 740.3318 null]
+834 0 obj <<
+/D [2406 0 R /XYZ 56.6929 740.3318 null]
>> endobj
-2405 0 obj <<
-/D [2402 0 R /XYZ 56.6929 714.7319 null]
+2409 0 obj <<
+/D [2406 0 R /XYZ 56.6929 714.7319 null]
>> endobj
-2401 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F14 976 0 R /F62 1379 0 R /F41 1233 0 R >>
-/XObject << /Im2 1368 0 R >>
+2405 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F14 980 0 R /F60 1366 0 R /F41 1238 0 R >>
+/XObject << /Im2 1355 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2408 0 obj <<
+2412 0 obj <<
/Length 1890
/Filter /FlateDecode
>>
@@ -11411,99 +11363,104 @@ xÚ­ÉnÛ8ôî¯ðQj–›¶™SÚ¦ƒE›IR`i²DÇBµ¸’'óõóÈGÊ’­$t’ƒžÉÇ·o$›SøgóÈ'TÄrÆ’ø”ùó´œÑ
`4‰i_õÞÛ‡XxŸª|.ò9ºõ €2°ÅÖZUe¦„¦óÁ–­Å°ós§šÜ¤,›á&èZ…û‡«.¬c±Ö¤ëÒîŽæBËMdghR½‹é7M»*s“T?öj‡þ~4¥IQàÄ{̲þɺç0%ýÜκÛv´f'Ìì$28z¯ñ=PW…O È†ýCGhŸ9>» ¯™£ÕZ5ªJQá—_'δ·1ýµY# 5y
jm¥ -·Çª¿k7„ÂA­k™T»¤°ZÈ[xC[úê1UÛ 8tIMw%D­EÚ¨%\±nÝŸšH˜p°™µ}k²Iò
endobj
-2407 0 obj <<
+2411 0 obj <<
/Type /Page
-/Contents 2408 0 R
-/Resources 2406 0 R
+/Contents 2412 0 R
+/Resources 2410 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2393 0 R
+/Parent 2397 0 R
>> endobj
-2409 0 obj <<
-/D [2407 0 R /XYZ 85.0394 794.5015 null]
+2413 0 obj <<
+/D [2411 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-834 0 obj <<
-/D [2407 0 R /XYZ 85.0394 741.6375 null]
+838 0 obj <<
+/D [2411 0 R /XYZ 85.0394 741.6375 null]
>> endobj
-2410 0 obj <<
-/D [2407 0 R /XYZ 85.0394 716.9352 null]
+2414 0 obj <<
+/D [2411 0 R /XYZ 85.0394 716.9352 null]
>> endobj
-838 0 obj <<
-/D [2407 0 R /XYZ 85.0394 420.5643 null]
+842 0 obj <<
+/D [2411 0 R /XYZ 85.0394 420.5643 null]
>> endobj
-2411 0 obj <<
-/D [2407 0 R /XYZ 85.0394 393.2598 null]
+2415 0 obj <<
+/D [2411 0 R /XYZ 85.0394 393.2598 null]
>> endobj
-2406 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R >>
+2410 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2414 0 obj <<
+2418 0 obj <<
/Length 69
/Filter /FlateDecode
>>
stream
xÚ3T0
endobj
-2413 0 obj <<
+2417 0 obj <<
/Type /Page
-/Contents 2414 0 R
-/Resources 2412 0 R
+/Contents 2418 0 R
+/Resources 2416 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2393 0 R
+/Parent 2397 0 R
>> endobj
-2415 0 obj <<
-/D [2413 0 R /XYZ 56.6929 794.5015 null]
+2419 0 obj <<
+/D [2417 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2412 0 obj <<
+2416 0 obj <<
/ProcSet [ /PDF ]
>> endobj
-2418 0 obj <<
-/Length 2016
+2422 0 obj <<
+/Length 2012
/Filter /FlateDecode
>>
stream
-xÚµXK㸾ϯ0=¸‡oI{ʼ’é¦'Øé ‡™>¨mÚF–´¢Ü=Fÿž"‹”%·¼F°h“ÅâÇb½)¶ ðÇ™"Tär‘æ’(ÊÔbµE[Xûû+x¤DI!`2³š(‘•ñt‘ŒAÞÞ¿zý7Îœ­¹ZÜo†³tšš/î×_—oÚÖÔëòÇMÂ]¾½y¸ÿwI’f)s»(œ-”ö;>õ¡¨¿-¶Æ{˜$BjöhE4U™ßó–°›„QJ—ërëøƒH‰ÐŸ+ö&àðENrÍu€Œˆ dv\n³?÷ç)ŽÞß}ÁAÕ4ß-Ž}Y•ýñ$#¹RQ0ÉÏ^æ˱nZ[ú;¼úp?èTSÂhT2M˜ÊÅœÞÈÉ•¼`”Œ¸=sÇ ¼M$Ý0šdàî©A[_ÿjM÷dº‡0MñNJŒ M‰Êµ‚sÝæb½îŒ V™œϤ`oÀ\Í`
-E2­"äª*fyN²,ÍÏ7W7eeêÁäS!S’qšžc~ÿ?`î‡Q;ƒžçõ*ËÉà?°»mºþ/—t‘ñûU±/ˆÌÉçxýU¼þØþx?®â9wšÃ“„ë–?^…ûºÛ«_Ü­ùnŽ3È9%2§úZ#ýà3H"
-qÍ´2eàq+_Ö.Æ«êèf^Ýk¤?—ýi«f¿í'UY\ÃØö¦î­3â`\ä.*Û ×®°„óÇ¢_È}³PÞÎîÂSW€–B©œºýB0bŠ5&92(ä\„@²}ȧu³S¦â•ñ¹E/ß íboƒC{€KwGœ4èØ1U‰G«$¼7¹í­»˜æLD·K‹Ž_ËåóÎÔ8réäe‘Os˜–ÁÉnÞ«T¦c€ ¤OØð»-ŸLí®¯ÄòŸuU~7H7EW•>P`âÒ¯ýg7M1»q­–ooïÞ#GP÷-?ܽ8Ôlfc^clè£/Ö%•ªèÍàÍ3j-‘îi•39 þý¡ê˶2ãè¶ÓH~ ‹¥µ¢|ä>ˆK0n
-©¦õ 5#úO´õÈû†µªYÅçÿŠ{ÐÇ’™âSû¦žáÍy:òL †Ü£óÜ$Ÿ)aÇ)õ |a“ÿY“Ô•_u0Ƴ©:
-c§ý Eú’ ðéãö.&Xž ÐêB£‘ž=㻑Ü1ôZ¡mÀ†ÒÕ˜vðf»iãSÀ{‰/!çŸN_
+xÚµÛŽÛ¸õ=_a }ð
+›™ÓD‰Œ¨Œ§‹dLäíý«×ålÁ)Ñš«Åýfà¥Ó”Ð|q¿þº|Ó¶¦^—?o®èòíÍÃýoxK’4K™»ECJ´PÚßøTÔ‡¢Bü¶Ø;Üa’©y¸£ÑTeþÎ[ÂnF)]®Ë­Ãw"%Bkã®Ø›@‡/r’k®ÁˆÈ@f‡å.{¾ß8Oqõþî .ª¦ù~hq}è˪ì'ÁÉ•Š‚IFxÆP™/Ǻiméuxõá~°©¦„ °¨dš0•‹9»3“+yÁ)% =sìN$¼O$i]2` zj°Ö׿XÓ=™î!l“GÔI‰ FS¢r­€¯»\¬×±Á+^ x& xÍÕ M¡H¦U$¹ªŠY‚<'Y–æç7W nÊÊԃ˧B¦$ã4=§ùýÿ@s?¬Úê‰pQ¯²l‘ ñ·Û¦ëÿtÉÙ9‹Wž 2$gTœÓë¯Òëíÿ@ïçUz.œæèIÂõ ϯ’ûºÛ«_œÖ¿~7ÇÊ9%2§úœ´VúÁWD
+Ü~£T˜ŸåceÜ7M…'@+’íM‡”¶@¼Þ"&ö"8÷9íAX¾-¹IM—·=B½“Ë"¶»æ:ê2‰gìk€*ˆX¯aÁ]µmU¸ßµ}vZôáš—5ààº?tµYãñUÙŸC-µpƵh6w|",#}ع
+'…?n6ø[öá4F  ×ò8ÈÀ
+Åù@„zï¡£%F¥h»lçˆùÆ]ö¿‡¾=ô.~]~ßt/Ç¡6,‹âï®x2ኛ
+üjs¨W.'ŠjàÞ¬g .\5Q*ý}ƒK’K{‰ÕY’,Ï蘓4M1ãßTý®9lw3¬¤‚‰Sˆk®åP)ŽK\!ø²v9^UG·óæ^#ü¹ìw[5û=X?©ÊÚà¦Äö°7uoëç"vQÙ±v… Ü?ý*Ü7ë@ÊûÙýBZc©ñÐJ(•Ó°JfL±Æâ!G…ú€‡H¶5┢nwªT¼2¾¶èå„=Bîmpi twÄM€>€©I<Õ±IÈG“»Þ:ÅìP0g2ºí\YtøZ.Ÿw¦Æ•+'/›|šÆ´ ŽLvóQ¥2ç
+a
+—Š<$ —Ô«ïî‹Ðª´–NËz&™R„q'Ôצ_½†TS=ÅR–ÁÉq1÷USofäžÚ¡p߆j^Wlñ}lå×~Øv¹o­ Þz·wws¨×s&e‡Ç´T×L*Å€Lê%šF  èìQø gU³Šïÿt÷`$Š§4ÓûÖž¡ê<…&
+©Š%ðÏÿþøùÓ‡ÿ¼&@°[ÍÌÑ™f£¤Ðby¿‹ºb#ëŸ 10b
+=—ç’HÆÏš®¯mç©T´-4‰u,­Î^§ÃË…tL)Dëlm½÷S4ôåÛ;üÅÑï>â/~TñïW8-B¨UÑâ& 0°ê¯’뛉UæÉTçP ì™€éeš-?”8I:8Ž§ÇÌ·x°©,‹¾‹_ &îM¤‰Ýü{:PüóaZLV—Z?“Öz>&‚ÀÞ³9žf \¸þ<ŒD3‡æïU½<”°ª†ÊU\m`<Gœ ÃSÖÎüAŒ&Œ&Aá Èí],!p2¼`Ú…Y#UÓaÁ!¾ûñ!ø&œ)]›i‡p¶1²›6¾|˜¸erþµáô€¸Ï³ŸJrÂÁïÎc›Á [°k@r*0‘ž³>c¿ä÷_¾ Ú«endstream
endobj
-2417 0 obj <<
+2421 0 obj <<
/Type /Page
-/Contents 2418 0 R
-/Resources 2416 0 R
+/Contents 2422 0 R
+/Resources 2420 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2393 0 R
+/Parent 2397 0 R
>> endobj
-2419 0 obj <<
-/D [2417 0 R /XYZ 85.0394 794.5015 null]
+2423 0 obj <<
+/D [2421 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-842 0 obj <<
-/D [2417 0 R /XYZ 85.0394 769.5949 null]
+846 0 obj <<
+/D [2421 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-2420 0 obj <<
-/D [2417 0 R /XYZ 85.0394 573.0107 null]
+2424 0 obj <<
+/D [2421 0 R /XYZ 85.0394 573.0107 null]
>> endobj
-846 0 obj <<
-/D [2417 0 R /XYZ 85.0394 573.0107 null]
+850 0 obj <<
+/D [2421 0 R /XYZ 85.0394 573.0107 null]
>> endobj
-2421 0 obj <<
-/D [2417 0 R /XYZ 85.0394 538.4209 null]
+2425 0 obj <<
+/D [2421 0 R /XYZ 85.0394 538.4209 null]
>> endobj
-2422 0 obj <<
-/D [2417 0 R /XYZ 85.0394 504.6118 null]
+2426 0 obj <<
+/D [2421 0 R /XYZ 85.0394 504.6118 null]
>> endobj
-2423 0 obj <<
-/D [2417 0 R /XYZ 85.0394 432.7569 null]
+2427 0 obj <<
+/D [2421 0 R /XYZ 85.0394 432.7569 null]
>> endobj
-2424 0 obj <<
-/D [2417 0 R /XYZ 85.0394 303.3232 null]
+2428 0 obj <<
+/D [2421 0 R /XYZ 85.0394 303.3232 null]
>> endobj
-2416 0 obj <<
-/Font << /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R >>
+2420 0 obj <<
+/Font << /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2427 0 obj <<
+2431 0 obj <<
/Length 3818
/Filter /FlateDecode
>>
@@ -11528,27 +11485,27 @@ J‚8 Z;s¥4«ó¡°ªj–h¿ZûK€àãS¾7Äa>eyýýÅé„ôcÙE¯ ÒýQÄ8Ê <CIè3`s!ÔŸ³¶Nx“·ü-®
†x»ë9u4ÃqÀ’ëûfr˜çTòbüð'ÇÌMOäÛ±§QNiij¦!—áN‡¶@Oæj–¨á ËìpØØÁh¹bk‹‚Õ—='P¸=2ûæúò rú%o2ˆ
ÔȢ뾫6wD$Veƒ®r‚—¨œå ›;ñèYcÀ}g"ÂUôÿü zxîml¢ó\ÅQ( ð»€2/ÊYw?á§ÓÇkÿ/À(ÅWendstream
endobj
-2426 0 obj <<
+2430 0 obj <<
/Type /Page
-/Contents 2427 0 R
-/Resources 2425 0 R
+/Contents 2431 0 R
+/Resources 2429 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2431 0 R
+/Parent 2435 0 R
>> endobj
-2428 0 obj <<
-/D [2426 0 R /XYZ 56.6929 794.5015 null]
+2432 0 obj <<
+/D [2430 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2429 0 obj <<
-/D [2426 0 R /XYZ 56.6929 752.2855 null]
+2433 0 obj <<
+/D [2430 0 R /XYZ 56.6929 752.2855 null]
>> endobj
-2430 0 obj <<
-/D [2426 0 R /XYZ 56.6929 474.2043 null]
+2434 0 obj <<
+/D [2430 0 R /XYZ 56.6929 474.2043 null]
>> endobj
-2425 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R /F53 1328 0 R /F11 1353 0 R >>
+2429 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R /F53 1333 0 R /F11 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2434 0 obj <<
+2438 0 obj <<
/Length 3270
/Filter /FlateDecode
>>
@@ -11565,24 +11522,24 @@ v—À8o(ª4N¡ZµÛ”•y´þ€— ÜX;;¥
“'’¥§-pRÇ&ô÷lH x÷L¸Ã„N$6U€F£È=ÈÇ"Á4¤±"5ý·9nvÿ=ؼµiÓºÆ.ý8$£Yd‹Hák#ˆB¡»€ÃËÅŒÑÕÌ_>‘mÍV-]æ­ŒUùHq¹xÑ)Ï ¸òlíWÓ7KÜ•‰IUÛRgW /¨ã(PØRý­j—owª©×/Seu»‚yB·Pi*E\¸‡.¨@_g¸·3†"—¢‰Þa´ï+ÞÝÇ î9e
]QehnpÇß4ïp“Á¯Á2ÍÓ,¢9´cû™Á€ÕTw£{>dHi"Æ»2“!ò(_<˜ª³‡{.ˆ ¼ÄŽh2<ñ¶ò×ü?/(‹“˜§g
endobj
-2433 0 obj <<
+2437 0 obj <<
/Type /Page
-/Contents 2434 0 R
-/Resources 2432 0 R
+/Contents 2438 0 R
+/Resources 2436 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2431 0 R
+/Parent 2435 0 R
>> endobj
-2435 0 obj <<
-/D [2433 0 R /XYZ 85.0394 794.5015 null]
+2439 0 obj <<
+/D [2437 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2436 0 obj <<
-/D [2433 0 R /XYZ 85.0394 654.1216 null]
+2440 0 obj <<
+/D [2437 0 R /XYZ 85.0394 654.1216 null]
>> endobj
-2432 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R /F21 950 0 R /F48 1253 0 R >>
+2436 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F21 954 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2439 0 obj <<
+2443 0 obj <<
/Length 2877
/Filter /FlateDecode
>>
@@ -11598,21 +11555,21 @@ u´  ²j01[¦/ÑvUúøt‘îS¿Û«<®÷Eàvò.BN¨»9!sÓÎa.ƒÁÇ[\+v;A:\P¥«\9J÷My2f
ð†°ñoúŒƒüPW)Oªfð5æÍß
‘³ª•ƒç±Tv}3l©åš=„ú\]ñ¹ý¨-mäX^bÛÈò×âp¬KåöÙz>Í ú´ÈIgŸFÒÅN†ì¾–/ØT 6¦Á„•bÓžu#ñîÓÝßÞÿ×oF ÷¼ Ô}Ìý^÷@.è
endobj
-2438 0 obj <<
+2442 0 obj <<
/Type /Page
-/Contents 2439 0 R
-/Resources 2437 0 R
+/Contents 2443 0 R
+/Resources 2441 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2431 0 R
+/Parent 2435 0 R
>> endobj
-2440 0 obj <<
-/D [2438 0 R /XYZ 56.6929 794.5015 null]
+2444 0 obj <<
+/D [2442 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2437 0 obj <<
-/Font << /F37 1038 0 R /F48 1253 0 R /F22 973 0 R /F21 950 0 R /F53 1328 0 R >>
+2441 0 obj <<
+/Font << /F37 1042 0 R /F48 1258 0 R /F22 977 0 R /F21 954 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2443 0 obj <<
+2447 0 obj <<
/Length 3119
/Filter /FlateDecode
>>
@@ -11625,66 +11582,67 @@ xÚ¥ZKsÛF¾ëW°*¨Ž1oààƒÉ^'YÛ)©l9>€äPD…h´£üúíž„R»Tó@cº§ç›~t–Â:Ë$Iy.f:D
Är[,o„`Žuo(BœŠB«òqä†QM|ÕþxÓ@H¨¦ÏÔ»T—1©"¦ë
"¸b
endobj
-2442 0 obj <<
+2446 0 obj <<
/Type /Page
-/Contents 2443 0 R
-/Resources 2441 0 R
+/Contents 2447 0 R
+/Resources 2445 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2431 0 R
+/Parent 2435 0 R
>> endobj
-2444 0 obj <<
-/D [2442 0 R /XYZ 85.0394 794.5015 null]
+2448 0 obj <<
+/D [2446 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2441 0 obj <<
-/Font << /F37 1038 0 R /F48 1253 0 R /F22 973 0 R /F53 1328 0 R /F41 1233 0 R /F21 950 0 R >>
+2445 0 obj <<
+/Font << /F37 1042 0 R /F48 1258 0 R /F22 977 0 R /F53 1333 0 R /F41 1238 0 R /F21 954 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2447 0 obj <<
-/Length 2543
+2451 0 obj <<
+/Length 2727
/Filter /FlateDecode
>>
stream
-xÚ¥YKsÛ8¾ûWè°U+W"/¾ææÄJFSŽã‰ìÚÝÊä@‘Å
-E*"eÇ»µÿ}»Ñ
-nYÚUÝ"u6Az–:éf/}Y`ŒA*ŤmãV|¬§i»=È@"d\&ÁaðYUzß¼&l‘¨w‡¼Ü>ƒ0âM€9xà\ X´h¨•¥Á…U86¨²5a z&ŒHÜ¡³ msjg%!®ÅÞΩõºû—¶!7ܸˆÝ‘S'OžøP仴ľ촱C^dã$&ÈMÚ€Ò<—ü vnšl[,Lî Ê#ˆzZ4]ÔKÈî %æˆp=$èÙc‡ñ´zêàkÁFÓ‚¤jN¼ÝÑà°=lìO©h?â–]±¦é ×/ëú›q“w7Ï¢LúÓCùÓíéÕAû´1GÉÊ´9†Õn?nUêg³ªw¥›æÓiê‘nYëã)GÑôŒ»û²^йGäHDcã·BèŲ`M Œxnv’ ˜¬`ðÝ †&¯±,÷«‚ÿº¥2B!Ž75ÍðËxWfè¦FëƇ“úùCP\ôð
-(78üu˜Ñüv¹ª†‹•þöàhx`Pë@k ûç<~© #8žÌ¹.,i¾»Æ8ÊÒúI½¦!.ê#:. àxMßuúÍSVäh®‹au·i~ó1¥ ^\ÿ‹þ pãz;p0 À
-
-#^¤ƒ’DƒDÜCèÕ t%Ô†\t2Ób.+ É%D»š¨6_‚9–,ˆÕ euŒÉó8ÿ 5 5Šªh «9÷qè-}×iî8鬠a\é»ÃÇŠ4ÖtUP<²I¢:\’j0`ÒåaÔ‚;9f,‹ü”uFÙvx¥;“ÛöÉ…UUy›?0° {ñ9œÒ¤•“ã9s¢!0¼;À=}-úX”N‘ªn©±ÙUë·1ÔèNàHewijõ¦©¿9!Áå¬M%Ü¿ƒH…‡
-È]”ö*-}†ãY›[{:›ÛŽÍÂ0
-8ÁI¹£.‰ê Š7Ä
-:¾aûJˆ¡:Iu|{÷aþröèuÿ.à­ßqQvøñ#µ{ªXÿäýƒ=÷ÿ‘
-þé3ðÐÍ;uþòKûÎ4&ØX¿˜Ë(`09ôB¡-„–§À…X…r@öÿSÛendstream
+xÚ¥]sÛ6òÝ¿B7sò$B
+#i©G±V,ä"eë>º…µ'ÂáL<Ò¤õöúäÍû i¦#®½³Æ“DŒ®ó¯ã·L°S8ÏgN'2
+¹Ÿ]]M/Ïgÿ†yÈ8<»ürvA°«S h¦óÓo׿œL¯;fú  'ßO¾~ã£øþ儳@'áè&œ ­åh}¢Â€…*<du2?ù­;°·j· @… ¥ŠF“@±è‹I°X@ŠCÍ¢@˜T2$&…bzõµ¬¾µÕ&¯ÊÃ+ ™0%ƒÞŽ!êÖ1y){äE0ÅC¹Oÿ_KS‚äE2ΖiS”·8ÑãóËù|úŽšâ¶LÛm}
+cÓáeCã©U½¦IJÛáB{# ¼OWEž¶EU‚Â¥ÖãÏæû¶ óÚ·x{+Ë„‡1\K0·Èä!ãȪõ¦X™œfE»¤ÑämìPzZ0Éc¸¯ŠYÇ⯘Œd:I’aƒ™t'NúGHMTGbG/1Ÿ}x÷óÙ|ÊŽ,Û™O,b&%úŒõ°ž±1ÕÙXÙù‘ˆgJ ù<éë˜öþµEÈT,Ã}â³2[ms§À´¤ïì‹Feºvk©ïMMãÙ9}ÉF¾oMÓ:“¹Zô2'sÅséˆõã©bü¤£$bqü’ûXO ¹Ãê„|g̦ژcO†ð¡0~>K¾Ã:¦àÉš‰LöøhŸN¡ÆíÒà _¿»"HSew¦¥±åÏ.ߘöÁÐDYÙèŽ8IËœPHÛƼpgÔ)Ш ¥]¦îˆŒ°ÁÓQ/öú”æÁywÌâBîžw[.­J—8†B“fÎËWUu·Ý0<’¯—Îlr³H·+·«h¨KôÅ•$LàÎœUV}5È6
+YÊá2‡®â^Œ&2Ö,Äø0 "¦5-îÇ/§±_Ï®.¦ÄÍo_¦Ÿg”ɨp8ENut•ŒßÎ.Ñò•këÍʬMÙÚðIKÕ¢ãªo©")ã.žNÌ”èÑl7›ªn¢ÔlLV,É¥€Ê„Z
+Ik4¯]ÒEuº1jÛÞ”p¡g{]vçòIẓý+‘ÃxY*år@ès€êç€Ðæ
+]øT‰žŶ^V>M‚1ÚR
+"ž¥½ŠDGܛЫAÕPrÑñL‡¹œ€"—ë*‚Útul̉da¼PV'Ž<Žó:ÓР(‹¶°7çÉ.ê&ÔOÁwæ“tÅ×÷à¨ë{T¢¨UxlSD¹$•:ÐÁ@@—ûv¸Lm¡g­?«*£\»³ø@u"·ã!‘ {Õ`×I J«@±óŸ¡Á)MZ:>ž7X4†—b¸§/EŠ•»HYµ4ØÔEÙz2†®ì°Âl½hª;Ç$¸œ•©T1 ã Ú—ië[Pÿ–qäM¾‘=v'0+¥¸ü¿½i¨…LȤíªûíèìü’˜¹ºúôù4„²ååNt6Ô[j&äËñ<H´W9Y›‚2 š+ûÂ`'ÛÂöépÝÓ
+²l™ÖiÖÚ'X4eVå]_LEá1‡¾]TþéçþÝŒ‚…äyž[1FDúàñ-Ò”[£dLw
+á>˽YÙNZú ³2·òt2·›…aì7åº ¨(¾µ‡PMD\O©{ìÛ/µm,È)P— ùbüRò«O“ñ¶lž· A®âƒpû~vá_ú+÷~|}cÚìMmšjuÏÀÅC¯3ÿøßÏŸ>NÿxÀÕ:â{Ú´a>uŽgóOÏÅx
+ÎUÓb°F_ï^ás&=`^6É&wæñÖ”½EK Ð}éEPŠ©N|Ÿß¿<‡*ƒ„Åa‡÷Äë*ÄPltö®øöˇù‹7»Æ7i÷'ögý‰ ²7`>þi¤rëg^?ØSC!Ãÿžñyw›¿ýåîX…ù5‘ÃÿÈ8IÁØ1…²JÿÝpÉÞÿ¯<+endstream
endobj
-2446 0 obj <<
+2450 0 obj <<
/Type /Page
-/Contents 2447 0 R
-/Resources 2445 0 R
+/Contents 2451 0 R
+/Resources 2449 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2431 0 R
+/Parent 2435 0 R
>> endobj
-2448 0 obj <<
-/D [2446 0 R /XYZ 56.6929 794.5015 null]
+2452 0 obj <<
+/D [2450 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2449 0 obj <<
-/D [2446 0 R /XYZ 56.6929 663.9757 null]
+2453 0 obj <<
+/D [2450 0 R /XYZ 56.6929 628.3593 null]
>> endobj
-2450 0 obj <<
-/D [2446 0 R /XYZ 56.6929 361.3763 null]
+2454 0 obj <<
+/D [2450 0 R /XYZ 56.6929 338.1896 null]
>> endobj
-2451 0 obj <<
-/D [2446 0 R /XYZ 56.6929 244.0091 null]
+2455 0 obj <<
+/D [2450 0 R /XYZ 56.6929 227.6111 null]
>> endobj
-2452 0 obj <<
-/D [2446 0 R /XYZ 56.6929 154.5575 null]
+2456 0 obj <<
+/D [2450 0 R /XYZ 56.6929 146.3585 null]
>> endobj
-2453 0 obj <<
-/D [2446 0 R /XYZ 56.6929 85.0109 null]
+2457 0 obj <<
+/D [2450 0 R /XYZ 56.6929 83.6007 null]
>> endobj
-2445 0 obj <<
-/Font << /F37 1038 0 R /F48 1253 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F53 1328 0 R /F39 1173 0 R >>
+2449 0 obj <<
+/Font << /F37 1042 0 R /F48 1258 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R /F53 1333 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2456 0 obj <<
+2460 0 obj <<
/Length 3447
/Filter /FlateDecode
>>
@@ -11702,36 +11660,36 @@ B_gœOൟC95Òky©šž¼4”à Ä;:ò½ËP)w­Í¼3é¤1T^ÞCˆ;;ÄàO>³Ç(Ιê%â8¡kÈwØ9†
6š3¹{Iâovçû3ÚšºGi:{rRZ `vŽ!Œ³÷ÄøÖy€Ç„ û}Äô6éj*E‹ ã“€Ø>ž*!Ýo„˜-0 #Êz=áÎIH¯¾
¼R‰;åèâ]xù¾4„D¦×#G¢Ûb[,Y&V)XÈ j]—Zù±<© *’ÞÅ6Ê CÊ¢‘ŠÚh’¡~q$x•}jÈ€Æ%+†›GèTÌÌÿv©Ý·–iªaÜèd›á¬vc{
endobj
-2455 0 obj <<
+2459 0 obj <<
/Type /Page
-/Contents 2456 0 R
-/Resources 2454 0 R
+/Contents 2460 0 R
+/Resources 2458 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2431 0 R
+/Parent 2435 0 R
>> endobj
-2457 0 obj <<
-/D [2455 0 R /XYZ 85.0394 794.5015 null]
+2461 0 obj <<
+/D [2459 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-850 0 obj <<
-/D [2455 0 R /XYZ 85.0394 769.5949 null]
+854 0 obj <<
+/D [2459 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-2458 0 obj <<
-/D [2455 0 R /XYZ 85.0394 747.9963 null]
+2462 0 obj <<
+/D [2459 0 R /XYZ 85.0394 747.9963 null]
>> endobj
-2459 0 obj <<
-/D [2455 0 R /XYZ 85.0394 712.4426 null]
+2463 0 obj <<
+/D [2459 0 R /XYZ 85.0394 712.4426 null]
>> endobj
-2460 0 obj <<
-/D [2455 0 R /XYZ 85.0394 646.5299 null]
+2464 0 obj <<
+/D [2459 0 R /XYZ 85.0394 646.5299 null]
>> endobj
-2461 0 obj <<
-/D [2455 0 R /XYZ 85.0394 574.5487 null]
+2465 0 obj <<
+/D [2459 0 R /XYZ 85.0394 574.5487 null]
>> endobj
-2454 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R >>
+2458 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2464 0 obj <<
+2468 0 obj <<
/Length 2714
/Filter /FlateDecode
>>
@@ -11745,370 +11703,367 @@ HÕ–gAM#c?ø]€‚Ó2 äØ´é¶-ª•}I­~Õn}“oÉ:Z
{mñÌm3{î7¸ ~íðDiÐëßþøýô•Xâ]™÷»¶ˆƒ—µS
íÅÃð@u÷™üP÷?¦ù#½endstream
endobj
-2463 0 obj <<
+2467 0 obj <<
/Type /Page
-/Contents 2464 0 R
-/Resources 2462 0 R
+/Contents 2468 0 R
+/Resources 2466 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2473 0 R
+/Parent 2477 0 R
>> endobj
-2465 0 obj <<
-/D [2463 0 R /XYZ 56.6929 794.5015 null]
+2469 0 obj <<
+/D [2467 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2466 0 obj <<
-/D [2463 0 R /XYZ 56.6929 523.9144 null]
+2470 0 obj <<
+/D [2467 0 R /XYZ 56.6929 523.9144 null]
>> endobj
-2467 0 obj <<
-/D [2463 0 R /XYZ 56.6929 414.7474 null]
+2471 0 obj <<
+/D [2467 0 R /XYZ 56.6929 414.7474 null]
>> endobj
-2468 0 obj <<
-/D [2463 0 R /XYZ 56.6929 353.4012 null]
+2472 0 obj <<
+/D [2467 0 R /XYZ 56.6929 353.4012 null]
>> endobj
-854 0 obj <<
-/D [2463 0 R /XYZ 56.6929 315.6213 null]
+858 0 obj <<
+/D [2467 0 R /XYZ 56.6929 315.6213 null]
>> endobj
-2469 0 obj <<
-/D [2463 0 R /XYZ 56.6929 283.1208 null]
+2473 0 obj <<
+/D [2467 0 R /XYZ 56.6929 283.1208 null]
>> endobj
-2470 0 obj <<
-/D [2463 0 R /XYZ 56.6929 248.0689 null]
+2474 0 obj <<
+/D [2467 0 R /XYZ 56.6929 248.0689 null]
>> endobj
-2471 0 obj <<
-/D [2463 0 R /XYZ 56.6929 183.8008 null]
+2475 0 obj <<
+/D [2467 0 R /XYZ 56.6929 183.8008 null]
>> endobj
-2472 0 obj <<
-/D [2463 0 R /XYZ 56.6929 95.2626 null]
+2476 0 obj <<
+/D [2467 0 R /XYZ 56.6929 95.2626 null]
>> endobj
-2462 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F21 950 0 R /F53 1328 0 R /F39 1173 0 R >>
+2466 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R /F53 1333 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2476 0 obj <<
+2480 0 obj <<
/Length 2274
/Filter /FlateDecode
>>
stream
-xÚ­YÛrÛ8}÷Wèm骈ƒ+/óæqœYÏdíl¤ÌÌV’˜¤,V(R+Rv”¯ß @Š–«v·R&pЗƒnšÎü£³D†„§b§"”„ÊY¶¹ ³G˜ûõ‚Z¹SšûZ¿,/~zÇãY¦‹fË•·V’$¡³eþ9¸úðáæîíí_—s&IðKx9—„ÿ¸ºûtõe.S\ýz³¸œÓD0­$´ZD‚·w‹ÅÍõüúþ› qùuùÛÅͲ惧„kTÿ¾øü•Ìr8Ão$äi"gÏð@Bš¦l¶¹’‡Rpî$ÕÅââŸý‚Þ¬yuÊ’'¡LX<a Fg”†©”l`™†gܘãþÃòöþnqr ‹ ’i7X¥¹¯å6žpƒÓÒûÎWzËŸÞIéi®„KX\k¬Êªâ4è`³¸z­ `ÌÛŽ2FTDCd·+ƒ”
-
-ÿ(4E’$#„£eY&,Š¬RÙârí¶ÈÊ/„°"s9ç„ݺ¨qFzÀ‚M] È½¶»¤IP¨ŸVæ±Ù v·VÊõº•}³kpVËê|°×üûÍ¿ü¥³Æüæ-„¸à‰=> ê¦{£‡i"´Ym(Á©,vÈ\Z’ãÒ0-Â<_±Ç…‘Â7ð¡jšoEŽãýˉí—¢6Š“ÇœŸZ_ëå¨íµLÔV“QK™Œ­»óf£
-`(/„ |Œ Àþ…H’ÀÔ²ŠÕ™Ç¢~a²-kMDÞôf2Äzõiù÷û¯ƒ¼­»bWî¸8ÀM±±.»nê¶Ùuå~sÜO„\Dn?ZŒi
-U8ä„ô ³æ©Ø©ÇÂQ,B*%b»S›bܱ4NØ€KÝBpyŒ#ñ®xÙw{¿Fñ«áû½û•Wä¼nÍÅ¡n¶mÙŽS)¼ª{I‹É™ÔÄY2ðV09&¦¸À)MšG§ûçùï– ø€ÒS TÚSD¹+²®Ù&jh)ˆIj5¿ºUW«B“DRž”Ûƒõ€ÊSÝlÖË_]ϹPë/—易¦a"d4^zóêÒõýܺ¢€²d¼înb]ˆJ²A QêœzRÕÔâ@–Œœ€Î^ õÁLŒE¹Ïì£ R $LÅhýÚ×i¦#º+Á†ñþöfqýñÖtŸô<Ís~Æ2;ŽB"RwP;^ BºNIØâQ‹°•G!pc‹#L^˜VøüX>™F$¶YáH§5ÔϺîÕ­i7^«'ûRWnL)¬¥›¢S¹êÀú 
-³ þÔýÚÕà8»òÑKð®gJ³ƒ]JÕRh¢áòìËc<¯Ël­‡b_Yi¦ ÿ¡5Þ‡ þ~ M¼8©PÒv
-êýæahòc¤]£ùbÃ^ZÕD…µ°Í<a‡ emh^¨›]Ù­78“[b²/ÁïLŒÆ"t»9¤ªßc‡y!i
-?ÌÑÈò
+xÚ­YÛrÛ8}÷Wèm骈ƒ+/óæqœYÏdíl¤ÌÌV’˜¤,V(R+Rv”¯ß @Š–«v·R&pЗƒnšÎü£³D†„§b§"”„ÊY¶¹ ³G˜ûõ‚Z¹SšûZ¿,/~zÇãY¦‹fË•·V’$¡³eþ9¸úðáæîíí_—s&IðKx9—„ÿ¸ºûtõe.S\ýz³¸œÓD0­$´ZD‚·w‹ÅÍõüúþ› qùuùÛÅͲ惧„kTÿ¾øü•Ìr8Ão$äi"gÏð@Bš¦l¶¹’‡Rpî$ÕÅââŸý‚Þ¬yuÊ’'¡LX<a Fg”†©”l`™†gܘãþÃòöþnqr ‹ ’i7X¥¹¯å6žpƒÓÒûÎWzËŸÞEÜÓ\ —°¸ÖX•U1†EiÐÁgqõZÀ˜·e<Œ¨ˆ†ÈnW)þQhŠ$IFG˲(LXY¥²ÅåÚm‘•_aEþærÎ ºuQãŒô€?šº@‘{mwI“ P9>­Ìc³Aín­:”ëu+ûf×ଖÕù`®ø÷›ùKgùÍ[qÁ{|ÔM÷F,ÓDh³ÚP‚SYì-¸´$Ç¥a<Z…+x¾b #…oàCÕ4ߊÇû-þ–Û…/Em'!9?µ¾ÖËQÛk™¨­&£–2[wçÍFÖqÜrØ”“è<²^kÚ n9`£4b»^Ù7ˆ,ð±´(üyû^SÚø0ô Ê´u¹‰¨^´¢@ûDµençñ˜È‚%AyIƒºíL”r¬f…J™FTÖ/€Z`x18L$Óa|€ä‚„_ >kq¼µTw†ª“àÙŽÇAñ]m¶U¡“NÆ&;´~f­Cƒ£™àá$„ª_vá0k6úw3¶ÀáíâÐé3w8¼‚ú}\¼±±Þ?[>ñ#1ÒF„ °ºm‹lnð»Ì‚°4¿yõtI) ²ÍÂf÷ˆRç‹ L(¥ˆ_IOëLÂ8-“0ùD€-’Trw pFpoU·>I!ÂV;°×š€8H‘†1â!ÆEëÖœ
+ $ÆMœz'IC¸¥#ï0§7‚¾6¸pÛCY«Ý‘BIð©utwäÈ¢í u^¤8™²0‘8ï1_ëeõZÆco§<¦ë™žâÚÕ®Ù|+gÜ–°0áðîY˜½ÖÎù’8L(O‡@ÿ¯nä:žìÔ‡`,¡K°ÿÒ‡ãblÎâ8Œu™0×õãX|,nnðÝ«÷‹û À$P^Aø7€ý ‘$ÿ¨e«3EýÂd[>Öšˆ¼é ÌdˆõêÓòï÷_y[wÅ®.:Üqq€›bc]vÝÔm³ëÊý渟¹ˆÜ~*´Óªp(È éAgÍS±S…£X…TJÄv§6Å42¸ciœ°—º… &àòG†c]ñ²ïö~âW;Ã÷{÷+¯ÈyÝš‹CÝlÛ²§Rx9T÷ ’ “……2©/ˆ³dà­`rLLqSš4N÷Ïóßñ4rHé)*í)¢ÜY×ì5´aÄ$µš_ݪ«‰U¡ÎI")OÊíÁz@å©n¶Fë寮ç\¨õ—Ë÷SPÓ02/½yuéú~n]Q@Y2^w7±.Ä %Ù „(uN=©jjq KFN@g¯‚†ú` &Æ¢ÜgöÑ©¦b´~íë4ÓÝ•`Ãx{³¸þxkºÏ zžæ9?ãG™G!©;
+¨¯!]§$lñ¨EØÊ£¸±Å&/L+|~,ŸL£Û¬€p¤Ójƒg]÷jÖ´¯Õ“}©+7¦ÖÒMÑ©\u
+ `}P
+Ã׸ ËNúpè¿åáävW6»ÑFk5•uc)~­lç
+“6%í¶Ö¤Hòºò=’<úÆãÞg³X´ìÁΩZU‡E®™ Àhz¾kº’X@/×H‘\_ùë&Ç1&&ëO»ëðÆb6&µJ]PIiN@†Ñó+»­Ãa3Ÿ¹C£Ì\{Œcù1‘_Ö^A`›WïôÁåùdízð¡¶ÿÛ*¸ºàµmø„…m¨/–—þTÖÓŸCI_DþÏF9þÁŠcž$lú;‡B•ó”:PÚRTÈ1ôþ.§ØÿJ¤¨oendstream
endobj
-2475 0 obj <<
+2479 0 obj <<
/Type /Page
-/Contents 2476 0 R
-/Resources 2474 0 R
+/Contents 2480 0 R
+/Resources 2478 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2473 0 R
+/Parent 2477 0 R
>> endobj
-2477 0 obj <<
-/D [2475 0 R /XYZ 85.0394 794.5015 null]
+2481 0 obj <<
+/D [2479 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2478 0 obj <<
-/D [2475 0 R /XYZ 85.0394 751.93 null]
+2482 0 obj <<
+/D [2479 0 R /XYZ 85.0394 751.93 null]
>> endobj
-2479 0 obj <<
-/D [2475 0 R /XYZ 85.0394 546.4203 null]
+2483 0 obj <<
+/D [2479 0 R /XYZ 85.0394 546.4203 null]
>> endobj
-2480 0 obj <<
-/D [2475 0 R /XYZ 85.0394 481.4562 null]
+2484 0 obj <<
+/D [2479 0 R /XYZ 85.0394 481.4562 null]
>> endobj
-858 0 obj <<
-/D [2475 0 R /XYZ 85.0394 441.1625 null]
+862 0 obj <<
+/D [2479 0 R /XYZ 85.0394 441.1625 null]
>> endobj
-2481 0 obj <<
-/D [2475 0 R /XYZ 85.0394 404.0002 null]
+2485 0 obj <<
+/D [2479 0 R /XYZ 85.0394 404.0002 null]
>> endobj
-2482 0 obj <<
-/D [2475 0 R /XYZ 85.0394 371.4021 null]
+2486 0 obj <<
+/D [2479 0 R /XYZ 85.0394 371.4021 null]
>> endobj
-2483 0 obj <<
-/D [2475 0 R /XYZ 85.0394 303.5162 null]
+2487 0 obj <<
+/D [2479 0 R /XYZ 85.0394 303.5162 null]
>> endobj
-2484 0 obj <<
-/D [2475 0 R /XYZ 85.0394 229.5618 null]
+2488 0 obj <<
+/D [2479 0 R /XYZ 85.0394 229.5618 null]
>> endobj
-2474 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R >>
+2478 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2487 0 obj <<
+2491 0 obj <<
/Length 2682
/Filter /FlateDecode
>>
stream
xÚíZÍ—Û6¿Ï_á[4ïŬHJ¤´=¥í´M›M²™é~¼¶Ù–Çz‘¥©%gêþõ  -Ù²»_‡=ôÍÁ
-+¥™Yi…ÍlvA3 ͇R^ñ„¼ê¯Qåg_§é@ìÊ´ÉQb]Õå©Y9,53Ùu³¼Ð„Yj¨,ÊÀ¡™õz .V&*Ⱥd¸i„4i~bÞÉ¬Ê )ª:š®{*—ÕOq¬ÊÕK hõ›²AžÅ ýÖ6<¢×l´»•YT+¢®Ýc»¥§~Sô$…óÖåç8orœ­.œøcÙõDxxxCòE³òS°,DÂ÷wÿ .ŠÁ²À»©ÈóÜÎæt„(zhR|M›hUöån[5功+â.ûú@”É:e}:¬_)úÂíHÎfi2ë|÷•‚ ¶qÆ;;ßNl¾L„ŽÃæã„^Ì…’&L³úÝiÚ§¾j›Žímé·i{”´zX³¼´ÏiC•ME–g~CÍÞPN¡½Á²Ýni+ࡆÍ—bÓ˜X%õõØJ]ŽÍ å6åû‰Ø”‰ÂáOƒ—ÛÝáÔ6©§±ºn\š°nä•‹XCB™w_öà È–´i2Ï'mr¼ª!Öó¦Znˆô±<ð‹Ë‚¹‹’ëv߬ Õ«\G_•ëb_“ŽÌ¹u¤k¹ß‘²¦'Îs»ûX5ô0¶DJ]öŸ²Bc®¸î¿Ôÿy©alŒý—cïÀmñkµÝC\¨mò#?j+ÀxuÝÈ 5aå8 ”ˆs•ŽÍ$?ªÄ'†ÄDŸŠz_2­¥ß³ö 4 §o…Å •Ò ÖíŽØ,—ú´$b¥ózœ‘[4E}ø͇-½$×ã¨}¦ìÚéåÔ îˆëFœ0áÑåõ«‹{|j»®ZTuՈЮ‰ÛPAf¬ZV².ªzOÁÕ:Žþ (è\ɼ«½!O{Њ ‰Ç™|U˾úTô®$iÕJEÛ=V­¤sRʦÝ?nˆÖW[¦º}v¤ S8Z÷»"†ãHˆœ¤çªß™2ªÛ†
-RGÝ»-6ŧr¼$òJùëG*Ũ埈յõ'tOY,7èä.Êu–ïâ뫦´áÅ/K¿O{®±“úÜjð=_^‘øáCWöàD ŽA°|§jb=˶YUþÄP{ÜY…UOO5e™—L Ÿçbç<TuM£טDz)wèyáÕ* %ƃ —LGuÙ<¢gT¦èd­÷L
-3¸MA‘s`}4¨OÀ…tha.)ô2¸§ìèyßT.-À”*>kHYè·X­hy8&¡n¿Æy°àþú'Økk¢ÛêÉ k'b
-J<åãä¨%ñ€iSð„‹²dí”™’–(ú¬D,ˆÆñ«kðz=eZfE+ùŸšær·Î2‘%2ÇÕ wè«âÐòÛêœThÐõg!„‹þœ†Ug-dJ~å ºóÎ9{ïa^u
-y‹`sä%ôØ\Xkäuô0”ºŒ‚Ôу„Ný9ñ íx
-¦gz¥x¾1-KÖ[ŸðŽLñøÇ\,ãGÚ°\[³òÐׂ˜+¼,ØÒ¯Ã4ó
-掓X]·3HM::zF
-€ÒéØR‚PøɃ:U¶>Áf\ÙÒpÁ\ŠK§/rrëÂWº×¥¡‘<9GžÅpŠôa.v§ _KEg€XsH4Œ¦p4BS̺e垇†»&ã2þŒ
-ìxômû\"бIÄVUkVÅ*©ïÒÒ·„`ÒrS4t+‚äÃÑàóÌ9W‰øåkÜ¢Us·ïàù0HÎnˆ3Ë<ÝÕ‡„q®-Q"ܺm
-Ä͹Ȳ\Ñ4~Ë«aWæÛY<šÄ]u¾u¤nwJ†ðÝ&VTÜ•ÀžZPìB–½úááÛw®­€üÓHSr&»?t}¹e‡~Ù6]»ë«ýöÒ¿8èTàÿ%L­8˜ö_ÿûÃñ=+t–]ø¼„VáeãÂÅÉÄœG/ÿ£Ä¹íÿ‘l¤[endstream
++¥™Yi…ÍlvA3 ͇R^ñ„¼ê¯Qåg_=»2m`r”XWuyjVKÍLvÝ,/4a–*K…2p(Ff½^ƒ‹•‰
+².®C!MšŸ˜w2«rBŠ…ªŽ¦ëžÊeõS«rõ(ZFý¦lgqDB¿µ è5íne•ÅŠ¨k÷Øné©ß=Iá¼uù9Λg« 'þXv=Þ|Ѭü, ‘ðýÝ?ˆ‹b°,ðn*ò<·³9!Šš_Ó&Z•}¹ÛVM¹â犸˾>e`²NYŸ+ÅWŠ¾p;’³YšÌ:ß}¥ ˆmœñÎη›/¡ã°ù8á„s¡¤ Ó¬~wšö©¯Ú¦c{[úmÚž%­VǬ/màsÚPeS‘å™ßPE³7”Sho`°l·[Ú
+x¨asÅ¥Ø4&FI}=6‡R—c3H¹Mù~"6%d¢pøÁÓàåvw8µMªDÄi¬®¤&¬9Bå"ÖÐFæÝ—=x²%mšÌ³ÁÉC›¯jˆõ¼©–"},üâ²`î¢$ºÝ7+Hõ*×ÑWåºØפ#snéZîw¤¬é‰óÜî>VÍ#=Œ-‘RF—ý§¬Ð˜+®ûo uÅ^jcÿ%˜Ä;p[üZm÷—j‡üÈÚ
+0^]72HMX9(%â\¥c3É*ñ‰!1ѧ¢Þ—LkéwÁ¬}ç (Åé[a1H¥4ƒu»#6Ë¥>í
+zW2ïªGoˆÅÓ´âBâq&_•Å²¯>½+IZçCcµRÑv•C+é\€”²i÷¢õÕ–©nŸiÃŽ€Öý®ˆ†á8"g é¹ê7Dc¦Œê¶¡Â…TçQ÷nK„Mñ©/‰¼RþúÄчJ1ªCùÁ'bumý Ý“ÀÁ_Ë ú¹‹r݆å»xÇúª)mxñÆËÒïÓžkì¤>·|Ï—W$~øЕ=8Ñ‚cl ß©šXϲmV•?1ÔwVaDÕÅÓSMYæ%èç¹Øùƒ
+½LnÀ);zÞ7•K 0$¥ŠÏRú-V+ZŽI¨Û¯q,¸¿þ öÚšèŶzA2èÚ‰€¸Ý÷eÇ{÷bó‚”9`°i÷»À]rWÅ!0ŸO™Ïeù1p·í){Û6ý&ð§ìCYìºiçT KpLxi
+*HÞ7uÙ1kTI“ ™B§@ù8y#jI<`Ú<á¢,Y;ef§¤%Šƒ>ë ¢q¼ð*Æ
+/ ¶ôëpÍ<@…xP×­:ÁÚê#Ž°jŒ#¼UÚ/\Ó‰âÒ6îŒbDvÝŸvë~¬ž–K63à!Ô+zö+”Š¹±(Hç€â@ño
+‹ •Ïr£bÍP Ù
+d]Ðéic®VíDXè‡U'$@áÔP«g Gª=
+$Dãnή–/ÙÇ»‘ÔŠšy¢Qž³ƒK.i fè“K™gW%bEG¶Ê÷(±º°n¼ÚILÀQo¦—§™+°2‘ã*krégY5œô9ýHxædBcp”¥!$&õxÊ]VTLÐì–iý¦íJ"¹ôƒ¤Ýmíqÿ´L
+!= LuP‰ …æŠ+
+i•Eäðžw %Tí| ÿCŒÄþÇ©øsÇû/Á'­ðÖ\þÎÅöPê2|
+RÎ÷»ß»ØÞ•˜¼ =U
+€€ZþÿñÒTñPÒŠ :Ò«µc t¹tx!W9–S·KؾÈ/ÛíSU—”=±~<pJNk`°rÒU3ƒÐ¹ãÊaEšX92ô>ÜŸt£&ÁCÒzÆy2Ê„bè‚p>\×y,怜¤NøEÕáÓ
+@–8ú¡ó1ü‡
+{%ô¾ƒC×
+¥ð³Eb„¶–?GÜÝÑ»¯ÞÜ¿›°qs.²,×CtßòãªCØ•ùv&qWo©Û’!|w‰w%°§û…e¯~xøö݇k+ ¿Æ4Ò”œÉî]_nÙ¡_¶M×îúj¿½ô/:ø G+¦ý×ÿþpüGÄ
+e>/á‡UxÙx£pq21çÑËÿ(qnû?Ò¤Uendstream
endobj
-2486 0 obj <<
+2490 0 obj <<
/Type /Page
-/Contents 2487 0 R
-/Resources 2485 0 R
+/Contents 2491 0 R
+/Resources 2489 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2473 0 R
+/Parent 2477 0 R
>> endobj
-2488 0 obj <<
-/D [2486 0 R /XYZ 56.6929 794.5015 null]
+2492 0 obj <<
+/D [2490 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2489 0 obj <<
-/D [2486 0 R /XYZ 56.6929 750.8289 null]
+2493 0 obj <<
+/D [2490 0 R /XYZ 56.6929 750.8289 null]
>> endobj
-2490 0 obj <<
-/D [2486 0 R /XYZ 56.6929 162.6734 null]
+2494 0 obj <<
+/D [2490 0 R /XYZ 56.6929 162.6734 null]
>> endobj
-2491 0 obj <<
-/D [2486 0 R /XYZ 56.6929 86.4068 null]
+2495 0 obj <<
+/D [2490 0 R /XYZ 56.6929 86.4068 null]
>> endobj
-2485 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R >>
+2489 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2494 0 obj <<
+2498 0 obj <<
/Length 2389
/Filter /FlateDecode
>>
stream
xÚµZÝsÛ6÷_¡éËÉ3&äÍœëÔÉYjï®I‰²9‘DÕ¤Kçþø[|Š@ºiï&3.v¿]ì2ÁðL$G˜©|R¨qLød±9Á“;x÷ú„8šÌe}ªïç'}ÅŠ‰BJP1™¯z¼$ÂR’É|ù~zþîÝåÍÅÕ?O3Êñô{tšqŒ§?žßütþÆν;Utzþúrvš‘BbD\“ <½¸™Í._f³W·o¼¾ü×éÇù'—ó Y_{‚™Vëד÷ñd ›øá#¦$Ÿ|ŒˆRt²9É9C<gÌϬOf' {oÍÒœIÄ%-pP2!9b¹ \!* jð€ÍÁ>1`°Ü¶mµÈ–íê¡Ù|®¾êÍ„Œq$a†ú¦ÜTzXÓÒ@Eà×T=N§DN-7ƒíJ ;²PºñÌþÞÞÚß»j[=”]Ýlís×4k'6Dâœ:±¬
+vöuÛìÚº=´Š
-T Ÿ+y?XcTHÅ÷©Ò9ÈrüNÐâíUB½>˜DçI Uz¤ß "Ú`bLYìÀ.;=ÙÃ.ã…˜Î=ÑS¹~¬,M³Jf¤*sšÜåj¼@¤ >ôn½ìONT³Ý 2¿îèwú<Á#±áÓÄ@*Ἢ‚ĉ8r·Ê_¿ÍíÈÇF½†É<ZÏö¬eŒ` ‡÷GˆsÃÒÆyû°(=I½m«m[wi‡]1×Y²Ý¸+ö¨F\ÑSWœ§\‘"èâh\[DNH8?Hó£zª„b‘RŒr,D¬ÙlW-jêªÃS¬²Y¼ñ]YœPÛaXAC"ŸIA=¢P‘Áô:…)tÅ\¥*×XN!j(F4 DǪÅg’1ÔÞ}ÕÞ4ÍçƒT¿otëµ[û5PùôÌ{i o+B7Ͳ:KrQ ‚(ï@vI–8ã9túp^SÀUKVf¢Ï¡•=@A*”ôMã P 1ˆ|Ü úTÃn¨Œ¬~`îëìølI$
+T —+ETHaTHÅ÷©Ò9ÈrüNÐâíUB½>˜DçI Uz¤ß "Ú`bLYìÀ.;=ÙÃ.ã…˜Î=ÑS¹~¬,M³Jf¤*sšÜåj¼@¤ >ôn½ìONT³Ý 2¿îèwú<Á#±áÓÄ@*Ἢ‚ĉ8r·Ê_¿ÍíÈÇF½†É<ZÏö¬eŒ` ‡÷GˆsÃÒÆyû°(=I½m«m[wi‡]1×Y²Ý¸+ö¨F\ÑSWœ§\‘"èâh\[DNH8?Hó£zª„b‘RŒr,D¬ÙlW-jêªÃS¬²Y¼ñ]YœPÛaXAC"ŸIA=¢P‘Áô:…)tÅ\¥*×XN!j(F4 DǪÅg’1ÔÞ}ÕÞ4ÍçƒT¿otëµ[û5PùôÌ{i o+B7Ͳ:KrQ ‚(ï@vI–8ã9túp^SÀUKVf¢Ï¡•=@A*”ôMã P 1ˆ|Ü úTÃn¨Œ¬~`îëìølI$
aG"¥‹½;Ôþ!ßÙ†ô8·¾P\RìóÏ]®R°£Y4›Mè'|%m¶uv8÷ÂÙGöo>¨N)ÉcÑ’}o.–ª—›ÝºB ¬žøO I]C­ÜïñâO` rÁÆ#|Ÿj8Â*áÏ:†xT¤'JˆŒì Ân"‘WÛÅúq©í%ï/³ë¿´vøź5ŒüUôöÎ>›¢ˆ©ã¢Ž{1ýÇ)‡¨ÜÝ7ÆLÁ_;–ÍN_j˜cC Ü^µÓ:{™&ªêá}ùTùõÆ—ñôzvmg ³Ò8ÜD·lEìÕᘩ×k×Ûú¹Ù>U]µŒ{à*ï Þ=Ô[©Ì„qõèØ»­ôŠ
Ä ²ôäQ
¬ÊÅ}Êc—
1ÚnÒµ…Ç’tE^¶õÒ½úYcY®ëeï[’¹D´ ïkcÿáÉ_-«vñPªÔØßòålø*Hq$
-YÓQyžæX^t $•HÞõAkòÂÂî¡ðµlªqìײðèkÙ>ÉA-Û¿›ëÙÕÃײŽW,µ<ðAûŽÀ=þ™'Ð [ÇÑã,ÒwPÊe_ø¯Q˜¡\WtrL§@s¤Tb0"9&}­†›þ€­Õ*ŒäméÕ»Ñã¡¿oßK:ðý?Gú›w ®Èÿô§õýÿ"È¡µ—C7¤ ë¶Z¯”–äÅ¡êá#ü±îÿÒ¹ìendstream
+YÓQyžæX^t $•HÞõAkòÂÂî¡ðµlªqìײðèkÙ>ÉA-Û¿›ëÙÕÃײŽW,µ<ðAûŽÀ=þ™'Ð [ÇÑã,ÒwPÊe_ø¯Q˜¡\WtrL§@s¤Tb0"9&}­†›þ€­Õ*ŒäméÕ»Ñã¡¿oßK:ðý?Gú›w ®Èÿô§õýÿ"È¡µ—C7¤ ë¶Z¯”–äÅ¡êá#ü±îÿƒ¹æendstream
endobj
-2493 0 obj <<
+2497 0 obj <<
/Type /Page
-/Contents 2494 0 R
-/Resources 2492 0 R
+/Contents 2498 0 R
+/Resources 2496 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2473 0 R
+/Parent 2477 0 R
>> endobj
-2495 0 obj <<
-/D [2493 0 R /XYZ 85.0394 794.5015 null]
+2499 0 obj <<
+/D [2497 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-862 0 obj <<
-/D [2493 0 R /XYZ 85.0394 769.5949 null]
+866 0 obj <<
+/D [2497 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-2496 0 obj <<
-/D [2493 0 R /XYZ 85.0394 744.4041 null]
+2500 0 obj <<
+/D [2497 0 R /XYZ 85.0394 744.4041 null]
>> endobj
-2497 0 obj <<
-/D [2493 0 R /XYZ 85.0394 712.3006 null]
+2501 0 obj <<
+/D [2497 0 R /XYZ 85.0394 712.3006 null]
>> endobj
-2498 0 obj <<
-/D [2493 0 R /XYZ 85.0394 646.0353 null]
+2502 0 obj <<
+/D [2497 0 R /XYZ 85.0394 646.0353 null]
>> endobj
-2499 0 obj <<
-/D [2493 0 R /XYZ 85.0394 555.085 null]
+2503 0 obj <<
+/D [2497 0 R /XYZ 85.0394 555.085 null]
>> endobj
-2500 0 obj <<
-/D [2493 0 R /XYZ 85.0394 479.7864 null]
+2504 0 obj <<
+/D [2497 0 R /XYZ 85.0394 479.7864 null]
>> endobj
-2492 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R /F55 1336 0 R /F48 1253 0 R >>
+2496 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2503 0 obj <<
-/Length 1584
+2507 0 obj <<
+/Length 1585
/Filter /FlateDecode
>>
stream
xÚµX[s›F~ׯУ4›½³Û7dˉÛq-¥“Ž“,!‡ W 'î¯ïYvA m#wÚ83a³ß~ç~bøG†B"©©†š#‰.Ö<|€woÄÉPЕšÌ¯ÏY8ÔHK*‡óUK!¬Ηw£ ’h xtv=›MOƒwÓ?Îoß_]F“éå8 B)9Šnn¦×gǶÀŒGWÑõ‡èÒ>»k:ŠÞLgãÏó_ÓyK®«
-9`0Hc6J|fk¤ŒÙ‚'£èës!:’„ ÆCèF$Kž’lß:Dš*:ìy@¬ò£Ýã0EkÑg6KªÒú¤ú’ØÅ2¹ß><¤ùƒ½­‰!Ë4ÖZj.%LÂ4
+9`0Hc6J|fk¤ŒÙ‚'£èësÉ:’„ ÆCèF$Kž’lß:Dš*:ìy@¬ò£Ýã0EkÑg6KªÒú¤ú’ØÅ2¹ß><¤ùƒ½­‰!Ë4ÖZj.%LÂ4
a5âôctus9uº ð0 éËZpn‚ 0‡Ñý6Í–fId4{ÁUÚ§g3ûðöÖÞ¯6c¢FÅÚ>5{êó¸êj,Rüj-ü.ù¯³-Š5:Á˜PI$ö% VZ»_“çOÓÌñÊãuòªÇèYV|s6##8!0¸`¬³­á
UØ;ßF?'!’a¨úfßqCFÏC~J"Jå
i…,¾·ƒf·0­*iËâµ?ßF!VûáÚB Øä\hWöçA›Á½
-nÚ˜M´¢È^’PÏyñXB)Þ›Ž¡ï…J²z² ö÷;wýp¦ïBÔ£3÷Íô­Ô¾!Z#Ô˜Ó N펔:Æ5nÚoœpXƒ•M+¿ Øg‹yÄÐ~󈳇b“V_Ö\Ô¹N²< }
-Kh¸¯‹ÕÊôÉCXhs¡`|vá ˜€1ÃÏ—e6èY\–¾¡FC$«}೟Ãwz6ÉáQrÔa-âê(â*‹}r¨°Šîã½iWä¾ZÿÎöWŠæ7>ïWÀ»àk{컣á·7åôÃÃ< ȾV—G­TU¾,©R3zùQ83ÒTÏ>GrˆNŠ2ä扸ƒøxôfpTîMË›¢*EöœÃ}ðÛŸ“%ÕqoùMK¡ø|€÷t¯ý&â+¡Þ|v«fpõ}X‚Ì× O3ÀmúÏvŸØÀCL)êÿ"CC`³lHeWÔ F”A?äþ7˜Ðéendstream
+nÚ˜M´¢È^’PÏyñXB)Þ›Ž¡ï…
+Fj3Ù†{‡û»~8Ów!êÑ™ûfúVjß­êÌé$zÃ>ƒÔ1®qÓ~ã„ì¤hZù]À>[Ì» ö€ö›Gœ=›´ú²öà‚¤†Ìu’-häíSXBÃ}]¬V¦OÂB› ãû° lÀŒ ~v¸,³A·Èâ²ô 5"YíŸý¾Ó£°I?ˆ’£kWGWYìkì”C…UtïM»ºð ÷Õúw&°¿R´0¿ñy¿Þ_Ûcß ¿½)§~æAöµº<j¥ªòe L•šÑƒèÈ™‘¦z~ô9’CtR|!7ÿKÄÄÇ£7C€ƒ roZ~ÜU±(²äîƒßþœ,©Ž{ËoZ
+Ň༧£xí7_qõ>à³[5ƒ«ïÃ`¾yšn;Ðþè´ûÄbJQÿ
+›eCÊ(C¸: N0¢ zü!÷¿ô;Ðèendstream
endobj
-2502 0 obj <<
+2506 0 obj <<
/Type /Page
-/Contents 2503 0 R
-/Resources 2501 0 R
+/Contents 2507 0 R
+/Resources 2505 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2473 0 R
->> endobj
-2504 0 obj <<
-/D [2502 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-2505 0 obj <<
-/D [2502 0 R /XYZ 56.6929 692.8049 null]
->> endobj
-2506 0 obj <<
-/D [2502 0 R /XYZ 56.6929 544.1607 null]
->> endobj
-2507 0 obj <<
-/D [2502 0 R /XYZ 56.6929 446.1895 null]
+/Parent 2477 0 R
>> endobj
2508 0 obj <<
-/D [2502 0 R /XYZ 56.6929 379.4876 null]
+/D [2506 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2509 0 obj <<
-/D [2502 0 R /XYZ 56.6929 300.8306 null]
->> endobj
-866 0 obj <<
-/D [2502 0 R /XYZ 56.6929 259.3294 null]
+/D [2506 0 R /XYZ 56.6929 692.8049 null]
>> endobj
2510 0 obj <<
-/D [2502 0 R /XYZ 56.6929 221.6367 null]
+/D [2506 0 R /XYZ 56.6929 544.1607 null]
>> endobj
2511 0 obj <<
-/D [2502 0 R /XYZ 56.6929 188.5084 null]
+/D [2506 0 R /XYZ 56.6929 446.1895 null]
>> endobj
2512 0 obj <<
-/D [2502 0 R /XYZ 56.6929 118.8847 null]
+/D [2506 0 R /XYZ 56.6929 379.4876 null]
>> endobj
-2501 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F48 1253 0 R /F41 1233 0 R /F39 1173 0 R /F53 1328 0 R >>
-/ProcSet [ /PDF /Text ]
+2513 0 obj <<
+/D [2506 0 R /XYZ 56.6929 300.8306 null]
+>> endobj
+870 0 obj <<
+/D [2506 0 R /XYZ 56.6929 259.3294 null]
+>> endobj
+2514 0 obj <<
+/D [2506 0 R /XYZ 56.6929 221.6367 null]
>> endobj
2515 0 obj <<
+/D [2506 0 R /XYZ 56.6929 188.5084 null]
+>> endobj
+2516 0 obj <<
+/D [2506 0 R /XYZ 56.6929 118.8847 null]
+>> endobj
+2505 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R /F39 1178 0 R /F53 1333 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2519 0 obj <<
/Length 2924
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ¸ñÝ¿B3}¨<áðÉôɱu‰Ï‰íFNÛôîh‰–9¡HU¤âú~}X€(Ji§ãs ,€Å~ïRlBáME¨Hå$N%Q”©ÉrsF'k˜{Æ,ÎÌ!Í|¬wg?ý,âIJÒˆG“‡'o¯„Ð$a“‡Õ¯Ó‹ûûùíÕõ?Îg\Ñé;r>S”N?]Ü~¹øˆc÷ç)Ÿ^¼Ÿ/ÎgL%IH‘F‹èôêv±˜_Înæ_þ|÷éãÅ»ùÇóß~9›?tÄù`ThÊþuöëït²‚{ürF‰H5yJXšòÉæL*A””g‹³¿vz³féC”HˆJx<ÂÎ&Œ‘T)°D¥$\–\Í—Ÿ¯ï®ïnõmÌšž‹t\!qœDyU5M¾œ}Ë_Ÿvõ¦ÌóÒ.âÞ"àx”P ‹õšuÞ6ç3¡Ø–Yè¥hŸjŸsÖÅ÷¼Ò Ÿê}ÏÙ´Ä·§Ý9K¦õÑ2|,w¯Û¶Fø93«|Úý²j…Àã¾(W=üF)/óÆžPïô-&3Gø¬cšf;jÇoTÑE¾Ü»ƒôÌÃ0{ƒoYƒÏU®¨ò¾>?ÿlwâJ(»¢Z æ$’Š€ý „K9²ÿ˜eØ-}±”0!Ëî*Ûä#2á‘éŸà #ó¹Œ/z¤hðÙlóe¡o`.
-\×™¹GŽQzåPE"þk¦2ª™ÚXe7lµzžù>i™9”¢jòª)Zð®£.åZs)N¦U­Ÿ©Çz3l¬†?8G¿™¯ôåc°¢Y!îKQ–8ldÏ}cÜÌ=¾âÈ*Êöek7ÚWà‹œiG}œ
-9_t÷“42N[ÄÊ:"c5äë†E3÷ÖУÅÁ{ >ˆ¡Í3p<³(Q&Œ\ÚA“X±“·T`–]pÕ7óOR6îÀ>{‰êWX  ‚HÉÁÎóû6 µÏYk5ÌS xµb6.ÖjÝs¾üæ"Þ“ÓbÛ¬-‹²h_ÝRþ5d¸HtüSÎÛºÍQrì-P¥ŽÁýÀøl4‰†ŠèÄžáC‡«¬­w¯ˆÚZ/6Û2ßäU;0
-
-‡¨¬Ìâ¾Ûo¿@Aä*¾Ûí"ŸqB¸v- ÕèX4ÊÊp¬¶Ò1‘ ëzà‰I³0íÉN×aÜ&x¾ä&!蚶ûGH¹í%õ >H P‚Ì–­&rl*o—ÖÔ¦7¦™­QlM
-§wüÅá¢éöÈò ñ#°Þªd™+eлÜVÔßó]Ú k¢‚þšq}{õ—¾dñúTéÀçœ9šÛaEJ• {(:€äY ªØW¤›ãNnFõ¶§½„‡uÂM8,Cør¼QÊA},áË|íaò¨ˆþ¦sš²k„´°~ „IÊBÚ®«•Ö,à )œj(G
-ªÎ“G:¤‘#Ã,ƒÒÄá‘ï½æSW=ùiƒ®­ö®Z·õ9š(
-ö¨l"Evú#e‡sâ#%âÁÜŒÅ^A”r_äVÅ._š.ûÐï*ND
-Fq‚¬瀮ðäðqâÓµ8ì’!èàlËßëOØ:z÷á¸ûiÀÁW5×<sMÕ—]ѶyEŽý
-D(¢º1rQÚ}xþ¿!ÒÿFêÊ&áã<‡O„H™#J3ÉtHz÷[’CÚÿ€v«Iendstream
+xÚ¥]sÛ¸ñÝ¿B3}¨<áðÉôɱu‰Ï‰íFNÛôîh‰–9¡HU¤âú~}X€(Ji§ãs ,€Å~ïRlBáME¨Hå$N%Q”©ÉrsF'k˜{Æ,ÎÌ!Í|¬wg?ý,âIJÒˆG“‡'o¯„Ð$a“‡Õ¯Ó‹ûûùíÕõ?Îg\Ñé;r>S”N?]Ü~¹øˆc÷ç)Ÿ^¼Ÿ/ÎgL%IH‘F‹èôêv±˜_Înæ_þ|÷éãÅ»ùÇóß~9›?tÄù`ThÊþuöëït²‚{ürF‰H5yJXšòÉæL*A””g‹³¿vz³féC”HˆJx<ÂÎ&Œ‘T)°D¥$\–\Í—Ÿ¯ï®ïnõmÌšž‹t\!qœDyU5M¾œ}Ë_Ÿvõ¦ÌóÒ.âÞ"àx”P ‹õšuÞ6ç3¡Ø–Yè¥hŸjŸsÖÅ÷¼Ò Ÿê}ÏÙ´Ä·§Ý9K¦õÑ2|,w¯Û¶Fø93«|Úý²j…Àã¾(W=üF)/óÆžPïô-&3Gø¬cšf;jÇoTÑE¾Ü»ƒôÌÃ0{ƒoYƒÏU®¨ò¾>?ÿlwâJ(»¢Z æ$’Š€ý „K9²ÿ˜eØ-}±”0!Ëî*Ûä#2á‘éŸà #ó¹Œ/z¤hðÙlóe¡o`.
+"DÂOéFŽd‚AÈ Žü‚þŒ­†Ü g¶Ì¶Ùc ~)ÇÑ@E9Šž.ðÛ-·Ïë¸ÉcSãbctŠz=æ2
+„I(€vÍX €™Gk@0‡u%
+;Öþ*Û ÓÜKi±Ÿ³ïy€Ç‡}{œ0*›`Y cUm‰2ض!Æõ÷'ÉBC :AÈT^߆Mv]^U%$’éÁÇ:®–Q„§Ñ""‚ÊÈêÁS™­Ô€ÁBˆÓtuX#„…U„ “QHÙBû#A¥Ëþe(A•mÞà¤q­>v?i¹îp”v¡)>|ä>AÂ÷P±ti WZÈi]éNƒ·®Š?Bªl‹ÁÕ"ˆ•J}æ›ÅMÿaìÆ}zYëªûè£6 ¾uÍÿvw3?®2<sŽ~¤2Ö •qXFeÞä‰T'tH#G†Y¥‰Ã#ß{ͧ®zòÓ][í]µnës4Q
endobj
-2514 0 obj <<
+2518 0 obj <<
/Type /Page
-/Contents 2515 0 R
-/Resources 2513 0 R
+/Contents 2519 0 R
+/Resources 2517 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2473 0 R
+/Parent 2477 0 R
>> endobj
-2516 0 obj <<
-/D [2514 0 R /XYZ 85.0394 794.5015 null]
+2520 0 obj <<
+/D [2518 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2517 0 obj <<
-/D [2514 0 R /XYZ 85.0394 752.1413 null]
+2521 0 obj <<
+/D [2518 0 R /XYZ 85.0394 752.1413 null]
>> endobj
-2518 0 obj <<
-/D [2514 0 R /XYZ 85.0394 646.9327 null]
+2522 0 obj <<
+/D [2518 0 R /XYZ 85.0394 646.9327 null]
>> endobj
-2513 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F55 1336 0 R >>
+2517 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2521 0 obj <<
+2525 0 obj <<
/Length 3027
/Filter /FlateDecode
>>
stream
xÚ­ZYsÛ8~÷¯Ð›åŠÅà x<:ñÏÄvÖÖÔìÔd(‰²X¡H­HÙãýõÛnP¤DÉ©ÝÍT  F£Ñ
-†ß¾]Ý_Þþól¤Œ€)0AˆáÝÅýo_‰öí,VË›«§³¿Æ¿œ\åÚB£fÿ:ùó/1˜Á>~9žŽ#3x…“q¬ËßhÏøZ;J~òtòF`kÔNí;ßDžQ~
-mG©§´†ÔʇSK©3KçÉ&¯éÇxü•‡Kj7³Íá$ybÆ"~¤oÔy]¤õ2–ãX¦eñ’®ëtÆäÂÉM¨q7†ýÇG:·ó›…@,œ×`»*Œ`k±1´µl¹*i%^I…®„„—EzÝHñ,WE<v%$Øý%©‰ôšå9õ&)Á™ð*öP”ÕV¶nŠ<­¶R …,(az’9™½ÑHBt> Ü¡p{#'öøX¥V6FíêLódJ{
-òë"›.¨;Mª”z¼=Xòשׁ³â™È¼Y˜Tnò³&?˜wÅ”ÎÒbšâÕÄ!âÇÍœØx ¡ŽT¸
-¸Ù1*ð|!™‡ö²,_Rv Y}Ð#¾ñ¤‚ã¡ÍuØ#4\Ö#¬Þõ«uY—ÓrÏ-À’°›(>®\ÃÕ£]ûh¤B·+TW=ö ¾fÃóc€U²C/I¾I©KÁWŽ][;•R1~FÑpìè»bùI¨)6ËIÊÒ&iýšZ‚ÙŠu”1-áÖèØ cvqµujÀj‹â¡¦Ÿß…” @Oz4ö@ñÇWeUe“<¥»áŠFhÇQì| »µçÍ2-jKœÍãpöf_D–‹´ÇëÏDPF–R8žºê³ÿj3‚[)ׇã˜/´”ÇQÛæ:ŒÚ†Ë¢¶îAmìIeBÆÞVé^ƒ[QQ|\-ÇÔ£V'’ù =¤Vµn‹Y6…líY öEJRÀBJ9:{<ŠRžŽühgGû.E
-Ã<ËMU“à /~¨³ôÅoã/Ÿî¯1w<'ÒýÃQ2‘9ÈãÁýÒ ,×AÂýƒ›ë!{@F†­†6°AÛ^ÌÛ’°gØ)ÎÓ53Ûˆ©\4„N2Éò¬~ëŽ&/j{ø¼rR'¨¼–d¤ÙE;H&Ã$Ùà€·²1…+©…H³~[Õôņ»¼!xî-®#pw\î/ýNZû¡ 8yú’îyè8‘:®˜cêQ¬ãŸ…‚'6]ÍÈ?SÆˇ8K'›çg
-ÈðÓ*vøÈDà…Z¼×Ú\GŽÌqÙ#{Û« ”0ñ;K:¦ž%;µ‚ðŒ;K^äyùŠ.Xh®ë°¯8Sâw!Tný6PmÒ D4TlŸ¹Ò˜Ñ0œZAÙœ',˜³‘w{I#œ*! ‚YžÍR¦gõ‚È”9"­œ%aéMö…vAt­Ã¹(´&£(©3ÒÝ·´šÖÔµ>xÒÌUB’´ÅÎ$eLH6ò—òG:ÃP'}ÿÆ”ŠÄV^‘óä*™órd–Š}*²9µoå†Fš`g'nÚ¿˜G‘§5±OÒ>Ÿ°©Û؈¨ò%ƒ}} É×¢Û(¦‹’ ¿eY~Z
-,]󶚲,áÁ„wwãs®n‚áœ2ÅåÎÞÝé4*×ÙÒ–$Pù\;Ul­YdX­p¡gá
-#>-Ž¯›õ¦]óÝŒÕ]à ڇ 9ÌÁ ¤&ª‹¾ço{×0x
-=´gõë鲤®ž¾6½YÓ[¸žÝÎ^fŽTÛ"—áõÂî.$=´Ór¹ÚЙWÆÓÞÒdÍJ¡ ˜¥¨g\=O÷ u`¨£üѢܬéÇ,y«ìÃ-?庩ó4YQÏ.†VÅ|˲¨,´»º%5ë‰˵DAuðÃ-ßÒù]Ÿs¨M-³NÅò4DÕ*Ö„ͦrÑR ?3°µD:·CMû‚Ïw¼Jç2з°i]†õ8,)¸y–‚bÇS¡~'X·¹ë†Ëëoï¡x¥˹ÝÊnª}È„dx\¿†«GÁNžµ›Vº« §9±;Z¨Šf”j©,¨uÏXo…b–PnvIí„…¬6¨Æö"ZÃÍ"ø@×ï«xx1¯mð°ÃÖç²çÈÝ^Ô&ë&„JFû»Þ“^Žûy èÓ|3#Ðsx•ssʪÀ,ðBÝ’Q”uW˜{†¢üÛ
-¬‘E׈dpläþ[³áRÏÙæ
-§Ç|GÑ µåªÎJ–¸ ÕVR¯œØš¡zï%ª®8iYÆwp‰EùŠÍA;€“÷d½ó<Ûæ:l —µƒ‹>;О1ñϘAàAi¦«×põè×1_xq„]ù9ÆpÄÙöðV´ñt¸(g5ôºiGJj'Ì ÇÃô0@Tb¸“›¼òZ÷HöH&T²L2
-“§3ø—}?+<¥á÷uÿÀhendstream
+†ß¾]Ý_Þþól¤Œ€)0AˆáÝÅýo_‰öí,VË›«§³¿Æ¿œ\åÚB£fÿ:ùó/1˜Á>~9žŽ#3x…“q¬ËßhÏøZ;J~òtòF`kÔNí;ßDžQ~
+\ ÿ.‹ôº‘âX®ŠxìJH°û'JRé5ËsêMRƒ3áUì¡ )«­l9ÜyZm¥
+YPÂô$'r2{£‘„è|¸CáöFNìñ±J­:1lŒÚÕ™æÉ”ö4ä×E6]PwšT)õx{°äßYUgÅ3‘y³0©Üä3fM~0ïŠ-(¥Å4Å«‰CÄ›9±ñB©pÖ
+Ùڳ싔¤€…”rÞ-töx¥<ùÑÎŽö]Š†y–›ª&Á^ýPgé‹ßÆ_>?Ü_cîxN¤û‡=¢d"sǃû¤X®ƒ„û7×Cö€Œ ;[' ?l`ƒ¶½˜·%aÏ°Sœ§kf¶S¹hd’åYýÖM60^Ôöðyå¤NPy- ÈH³‹vL†I²Áoec
+WR ‘fý¶ªéŠ= wx1Bð8Ü[\Gàî¸,Ü_ú´öCpòô%ÝóÐq2"u\1ÇÔ£XÇ?  Nlºš‘¦Œ—q–N6ÏÏá§Uìð‘‰À µx'®µ¹Ž™ã²Gö¶W+(aâw–tL=Kvjá-v–¼Èóò]°Ð\×a_q¦ÄïB¨Üúm Ú¤ˆh¨Ø>s¥1£a8µ‚²9OX0g#ïö’F8UB³<›¥LÏê‘)sDZ9'JÂÒ›ì í %‚(èZ‡sQhMFQRg¤»oi5­©k} 𤙫„$i‹Iʘlä/åt†¡Nú6þ)6‰­¼"çÉU2çåÈ,ûT dsjßÊ 4ÁÎNÜ´1„#+NkbŸ¤}>aS5¶±;PåKûú,’¯E·QL%~˲ü´
+9ÝŒ…êp!UßÍðºÅ O?œR­BkatÊ•OVs)T5Xºæm5eYƒ ïîÆç\ÝÃ9eŠË½»ÓiT®³¥-I ò¹vªØZ³È°ZáBÏÂF }Z_7ëM»æ%º«» †´r˜‚HM T+}Ïßö®að,zhÏê×ÓeI]=<}mz³¦·p=»'œ½Ì©¶E6.Ãë…Ý]H>zh§årµ¡3®Œ§½¥Éš•B0KQϸz.žî)êÀPGù£E¹YÓYòVÙ#†[~.ÊuSæi²¢ž] ­Šù–eQ/XhwuKjÖ–k‰‚êà‡[¾¥ ò»>çP;›ZfœŠåiˆªU:­3›M墥þ~f`k5ˆtn‡šöŸïx•Îe oaÓº ëqXR
+p=ò,ÅŽ§BýN°nsÖ — ÖßÞ-B!ñJ?–s»•Ý:Tû Éð¸~ W‚<j7­tWANsbw´PÍ(ÕRYPëž9°Þ"
+Å>,¡Üì’Ú Ym&P-ìE´†›Eð®ßWñðb^Ûàa‡­Ïe%Î1»9¼¨MÖM•Œöw½'½)öóЧùfF çð*çæ”U'Xà…º%£(ë®0÷ Eù ¶X#‹®ÉàØÈý·fÃ¥ž³ÍNùŽ£jËU•,qA&ª­¤_9±5;Bõ:ßKT]qÒ²Œïà‹ò›ƒv
+òsŒá0ˆ²ìá­hã;;èpQÎjèuÓŽ”ÔN˜!A‡é/`$€¨Äp'!6yåµî‘ì‘L¨d™d
+¥ç°žpòßcZÈýÕ;µk›ë¦—Åôc?¦…êg@m<ßÍqý®wAí«(êjÈ ŽØ5`‡A‘sÇÖºÍEЋ?æ‘ÿFpN˜¡[ç„६#çÅÝjp­¾T{²¥ƒu$¶°Ž¼Hź{ñþuòüìBzRµŠm¥%†·µ«K¬7ŒlЂVRиK¶Þ™’Áþ¿õ|Âþÿø󶌕KåG_›ë0ú.‹¾Ûއ ‚ÀþàSžTq|\½†«G¿nbzΩ®‚ >í<t|šÁ¾6:™›_Ò¤ 3p•“Q;³~J7
+ñc{Î%4÷XÕ¨èe‰±¥3”½ ÷ܸ͓ܟld3ü–€õ4ábÊ[7O‚ór}4Í#oÛ§-\<n^y½C³ƒ©ŒîýCÑ ëþ{ží_/ù!äȇŠ
endobj
-2520 0 obj <<
+2524 0 obj <<
/Type /Page
-/Contents 2521 0 R
-/Resources 2519 0 R
+/Contents 2525 0 R
+/Resources 2523 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2525 0 R
+/Parent 2529 0 R
>> endobj
-2522 0 obj <<
-/D [2520 0 R /XYZ 56.6929 794.5015 null]
+2526 0 obj <<
+/D [2524 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2523 0 obj <<
-/D [2520 0 R /XYZ 56.6929 439.3142 null]
+2527 0 obj <<
+/D [2524 0 R /XYZ 56.6929 439.3142 null]
>> endobj
-2524 0 obj <<
-/D [2520 0 R /XYZ 56.6929 95.301 null]
+2528 0 obj <<
+/D [2524 0 R /XYZ 56.6929 95.301 null]
>> endobj
-2519 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F55 1336 0 R /F41 1233 0 R >>
+2523 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2528 0 obj <<
+2532 0 obj <<
/Length 2297
/Filter /FlateDecode
>>
stream
-xÚµYKsÛ8¾ûWè°º&Bð$€£bÉIb{-¥j·œh‰²Y#‘‘vÊùõÓxѤYžÝšä Ðìn|h4>Àd€á?(0Ó| 5G1˜¯ðàÆÎŽˆ×¥aWëÓìèã)“tJÓÁlÙ±¥VŠ f‹Ûdt}=¹_üçxHN>¡ã¡À8ù:ºü6úâú®5MFg“éñh%4(I£–âd|9NN†Ÿ'ÿ=›\ÿ˜ý~4™µauC'˜™˜þ<ºý ˜ÁïG1°6ø ŒˆÖt°>â‚!Á =«£éÑ¿[ƒQûi ŠVgÈ8R)Øx0¡QÊ(k#¼˜Q1˜AÐ2€}ÇDnO•`q9èÚÛñÚjíºå¤ã–`yÚw[Â?ãöã)¥]š"Ž£SÔnÅš‡Ü ä/N(³uŽö.'(ÅôPnu´Þ€*h†ê-¯¨¶ÝÆ¡êºÍ²,†FœB„{ *ŸÖù¦˜»Æ昨$t?u^6YST¥«–[_f«ûjS4ëý
-‰¨f…ŒjeÝ-ʺÎçCp²ÜTëUv—¯"!j‰$K¥qîV8krkš4?+#ÈÄ·Ê릥’Ÿ°¼NÁl¤Ú©Üeu~L’…k¹ôHÃleb§/\oÝ@ëÞO¦0P• }6ûý)ü›EÙ~ŠДC–„pµÛ
-"Ö^É­ôñá´ieæGšCεá˜s‚Ëšye®¯yÈo$+p—;`0ßØT0½UÇ~šüªJハًÂ{jV/ΔÙ#fÔ%dÇÈ¿..‡.ž¢TÁ&ô™Bí$O¾|Oº5³|w¶
-•5¡ßäËÜMµœ{¾fåS«¨$Uˆ¦i¨ú± r(
-ÒÍ鉳È1ã{p’S.B¥‰;dŠ#©©ê<ú6;¿º9ŒìÔåM™7.ŒéK ûÁ¤ÈŸjÓOëW¿1ž†å ¥% ”cÜ_«°¥˜‰Q;Jr ÇÆžÀR”¨Ý%÷#¥ÒIŽko¤.9_ÉISU«÷¤âKY=Ö°?¶¸C
-¼›A­f\"kaPa5œY GÉ  7‹aÇÂ.©”'(E枪·CÏãë1‰„N…O¶ŠDJÜ4—!3«w«€ŽJE0
-QÔůX„ìTœ‘m“åA“†84/Q›€ÅrÛ&k¥QÄ:‹P²Íí WèP“?VËe7O©@R0±í餕æOO¬²ºŽ)%õ¶éñA`Þ1ß6;9h6/ï‹2†v_­µ¸<hq¹ÊîcçˆKE[{Ž¯iSoï/Îíð¬õwñù
-wópÄú½ 59’Ù@EºƒöC+]\Èÿ ÷â J†ônžÃIñž<ÿ|8EŠ p jóG"¥‚ôáç„ÁÍY©þ™~;üqmž'œ¦‰EN$ÒŒªíÈÿh¥ëîǃÐ<nª¦šWî?[éæŸ z«V°Hpªûbwj½ÈŸ÷,,;•vúžâ[BÁê³ >hˆÔ ÛïF¸9hsÏAÐOÅÖÞóA{«ü9_í+Ê;iûËKå+)Ù¢Wœ! 
-¼OÆ“éÉÍÅõìâê2r)‹½F˜pR!E¿ÒYfÌÝœ¾NZZæB ?F6dwjÈ¿%¨í¸gǦ•ùϹ¡þ¥½yA³(ݯe F pú/ÊÅÖ˜a§pÿH¹N.ÂEÁÅÜË`wÙ“xH]9)ÌƵüd$÷“®§Úù[H³éÅ™“ÌìfÇ›½QgsGíÌÀ¸>\1Iâ'^› {ßµûíΚ…ÿÒÍ ª¸
-áK*R;¬}vî‡~Ùq 8999»šÎŽ¡\}™Bغ†ï×iQm™â0hÞ`³BP§aØTն…çMhAƒè7­tovTÊd| ÏTÅq±4õ×U’!yž¯VP5Âó ¦Éù×ÑÉУš¢N›R¾ÝãpêôÀ´>Ä
-t¨A5Ó‡œƒšZûÂ`§èkBÎKÓ˜gAÅ<N–uÑÏûÿ@dKDôoZ¸-&ÿ÷_÷^ÿ´
-è"oP†9b *¦Ê`Aà<Ú
-]0à›Ê<eìÄþXÔendstream
+xÚµYKsÛ8¾ûWè°º&Bð"GÅ’“ÄöZJÕn99Ðe³F"="í”óë§ñ¢I ²<»5ÉA  ÙÝøÐh|€É
+îª|Zç›bî›c¢’üÑýÔyÙdMQ•n¬Zn}™­î«MÑ<¬÷L!)%•
+wópÄú½ 59’Ù@S±ƒöC+]\Èÿ ÷â J†ônžÃIñž<ÿ|8EŠ p jóGBДôáç„ÁÍY©þ™~;üqmž'œ¦‰EN$ÒŒªíÈÿh¥ëîǃÐ<nª¦šWî?[éæŸ z«V°(åT÷7ÄîÕz‘?ïYXœîTÚé{Šwl «w΂ú 9 FPK€n¿áæ Í=A?[{Ïí­òç|µ¯(ï¤í//•¯¤d‹^q†€*ð>iO¦'7׳‹«ËÈ¥ü-öa>ÀIS™ö+eæÀÜÍé뤥eþ òcdCv§†ü[‚ÚŽ{vlZ™ÿ|‘ê_Ú›4‹ÒýZj
+g¡ÿ¢\lv
+÷Áur.
+.æ^»ËžL‡Ô•“Âl\ËOFr?èzªý˜¿Å4›^œ9ÉÌnv¬±Ùu6wÔÎ LëÓ$~âµ™°÷]»ßî|¡Yø/Ýœ@ Š§
+áKš
+;¬}vî‡~Ùq 8999»šÎŽ¡\}) l]Ã÷Ί봨¶ƒLq4o°Y!¨Ó0lªêG[áÂó¦ ´ ÈAô›Vº7;*e2>…gªâ¸Xšúë*É@‰<ÏW+¨áyÓäüëèdèÑ Í
endobj
-2527 0 obj <<
+2531 0 obj <<
/Type /Page
-/Contents 2528 0 R
-/Resources 2526 0 R
+/Contents 2532 0 R
+/Resources 2530 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2525 0 R
+/Parent 2529 0 R
>> endobj
-2529 0 obj <<
-/D [2527 0 R /XYZ 85.0394 794.5015 null]
+2533 0 obj <<
+/D [2531 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2530 0 obj <<
-/D [2527 0 R /XYZ 85.0394 590.9135 null]
+2534 0 obj <<
+/D [2531 0 R /XYZ 85.0394 590.9135 null]
>> endobj
-2531 0 obj <<
-/D [2527 0 R /XYZ 85.0394 530.3944 null]
+2535 0 obj <<
+/D [2531 0 R /XYZ 85.0394 530.3944 null]
>> endobj
-870 0 obj <<
-/D [2527 0 R /XYZ 85.0394 493.1893 null]
+874 0 obj <<
+/D [2531 0 R /XYZ 85.0394 493.1893 null]
>> endobj
-1469 0 obj <<
-/D [2527 0 R /XYZ 85.0394 457.3833 null]
+1463 0 obj <<
+/D [2531 0 R /XYZ 85.0394 457.3833 null]
>> endobj
-2532 0 obj <<
-/D [2527 0 R /XYZ 85.0394 426.1417 null]
+2536 0 obj <<
+/D [2531 0 R /XYZ 85.0394 426.1417 null]
>> endobj
-2533 0 obj <<
-/D [2527 0 R /XYZ 85.0394 362.7008 null]
+2537 0 obj <<
+/D [2531 0 R /XYZ 85.0394 362.7008 null]
>> endobj
-2534 0 obj <<
-/D [2527 0 R /XYZ 85.0394 257.3259 null]
+2538 0 obj <<
+/D [2531 0 R /XYZ 85.0394 257.3259 null]
>> endobj
-2535 0 obj <<
-/D [2527 0 R /XYZ 85.0394 142.9115 null]
+2539 0 obj <<
+/D [2531 0 R /XYZ 85.0394 142.9115 null]
>> endobj
-2526 0 obj <<
-/Font << /F37 1038 0 R /F14 976 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F39 1173 0 R /F53 1328 0 R /F55 1336 0 R >>
+2530 0 obj <<
+/Font << /F37 1042 0 R /F14 980 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F39 1178 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2538 0 obj <<
+2542 0 obj <<
/Length 3322
/Filter /FlateDecode
>>
@@ -12116,166 +12071,155 @@ stream
xÚ¥ËrÛ8òî¯PÕF®Š8x|Ìœ<¶âx<ãx#gwçu %Øb…"µ"óõÛnP¤Dɇ­”ƒÐ@7€~Sr$àŸ™(ˆR•Žâ4 Œf4_‰Ñ3Ì]ŸIÆ™x¤I맇³ïßëx”i¤¢ÑÃSg¯$I"G‹?Æ?qp;ˆñÕÝl6½œÜN»žÞOdš˜t|q?½»ºùÏùDÈ€*Äø׋»Ï¿ÐØýyªÆ×ÓÙù_?ŸMZ¶º¬K¡‘§ÿžýñ—-à?Ÿ‰@…Ñ tD ÓTVg¡Ñ µö#ÅÙììŸí†Y·tð*¤”ŽÔÀ](Õ¹‹D&MÍ(6ii¥Ý]Ü<Á‘âd\Vئã¬x®6y³\Ñp^Óp½¶óüO!Ô¹ÛÅ;L¢q³´%¡}š]Ì>\HÂ}É‹‚†-µÛÚ.hîñ•Fö)Û o´- [×4›â­~ÿ>”Þu˜± œ¹žhÂéO†A¬’˜Qªu“Wåá)&¸r4ÑQ„Z˜ÑDÊ 5F¹Eîˆî|¡ˆÆ9,×±¿,óù’ÀyV[‚î@pt{n‡æÎÐ#ãйuÂVuc³ÈR”˜ñŸÂ¸øÃcûAläÉS12
ž¬KÉŒ³²¸Ý½(va]€ÐAÊ°í;Ó#ƒ¬7ˬ!¨+ÐågÈ=3´ó¥q/ §jãÕj5ùc^äÍ«_Ú, r·À}HÇ•
n%„7½úðŽüžØ5šeAkgI´féx¯¶ÏËÎ:˜7RÑ‚lÛT+xµyV¯„SÛƯ¶„4y蜬+S:
-i`p`#eK¢PZÈ#&p&$2hrÀ¸{$§3¤3ÆtuFIj4ëÌûZçßì>_Ìh¨¥>ÉX‹tÈYOIAKC©âk³V·j’
-ºH
-x‘RvÉ]¬ã>¹År¬–o:å-ÅëzÀ+GA(’ô4s-Ö
-Õg¯ç˜UD9ˆª—ý²ÂÈ™£Á§(ú¸ÖëÈ°©¯Y±Ý-Fз¢Ö½…=Ö ©Öý—…mmîÄÑÁLõ÷wSAͧH9BÈ‘„RÍžìQ ˆÚ’¥R©dñ…!gB¦¿}hР&ãß;Âúðqö@hŽ´Ó»‡›‡ßhvÇLd{ûfu]Ís²EØgõ”Œ–•;鎅í?þy6ý„‡UÝ“ÕH1ÕhjÔR¤Ç=ÙìÑ£ ¿ãLJ]J»k h$ ¶:¨™pk8 CÉ$BÚr0¨ó&ÿjÙ1_‘ea÷ê| ´üÚÝœ‹Ø!˜ý©P<4&PRç“ŠßÅ:®ø-Ö.ƒí’„H&MÁûŸ$é‘HvU"0Ö²Oò3%è’ó_E)ædž­³ÇÂOuSbé.1½[d$ôz¡ã^ÔçÂÚ‰[¿¤4\µE¥1Ù¦æʧæÒy
-7
-Ú'{‹ËmÒ€õœÛ…¥g±2ÿ]Mcs…Œ•F¤ænñÞ:®›Š/¨Ož¢³ÀŒ×›ü+ou¯Lkéãw3®ÈK#ÊÂÝûPê–¹X‘ý8´¤Ý:îGœàÈkj_¬Ó\M~~½}ÛÀ‡ÄA$„OB4=oÉ¡)ÛÌÙoio9£N|© ¨·÷KÃyÝî‘Ôe|À)ÃzÆÂî
-Žc¨¶Õ¦±~E‰^<mö>ëtC`XžŽÿM¹|»¯yA‚{»&ãûÛËÙ?¤¤a¦FœÛÅ.‡ž ÆaÝú˼–òGê°Çc»Z;' ¦x±Ù±´E‚8å—ÜÒõ—Kï+Ãð ¹ì`Kµ+ÿìÉeD‰ŽX,ŸŠìùÀ8ýJ¢ä4[i€­®H¦åG‰ì³5s_%DÈµÐ¿¶ =Ó¤óö]ìݤCtß7 ^è
-è]ä]Lý¾µÃ
-¾€ãˆ¶¾ :ŠÇJF4¼úÆ—ÊÁbA׆]ò¯E‡¬ë7éÞxM‚Œ_Êê¥$2Ž•%ð‰¾ä®hñ§÷—4¬ŒN â4IS [.H
-{‡I³
-S¦ö[Ê[I315‰OŽ„7„úo|ƒoqN|‚'÷$·CæD¦ýr±È7vî~ãp`MÂ
+i`p`#eK¢PZÈ#&p&$2hrÀ¸{$§3¤3‘îêŒ ’ÔhÖ™/öµÎ¿Ù}¾$˜ÑPK}’±鳞’‚–†RÅ=Öf­nÕ$t‘
+·QçàÁAðb ZmkT'ŽÑa0h›ë<`8IC€ô
+=xÌŸÈÉ›ö íapÇ!´î}žÁ«/;* Bü­*- ÕùséØ —vRnÄï³ÛïjçÝ$Yp
++'Œ,HÍÝâ½uþ<4\7-^PŸ<Eg¯7ùWÞ.ê^™ÖÒÇïf\‘—F”…»÷¡Ô-s±"ûqhI»uÜ8Á‘×Ô¾X§¹šüüzû¶‰ƒHŸ.„hzÞ “CS¶™³ßÒ"ßrFøRPoï—†óºÝ##¨Ëø€S†õ,Œ…Ý/
+’±´ß¦`ó—}ÆÒ(H¤
+O3æ‘ëÝ“€¤:îsvS.P®Üõ„Ú †ƒ,à$PmMÔµ šœWe“å”—öVQ8@ f¥`ìeöÕöðÔ^Ž‡;â=äÏÜ £"n†Ø\åWøQ%Ü+]õÊÛt¥¼¹ë—bOæJ*N©å!S븴XN ¦oæJ¶|~) rOv’µk€·¾$¤A¨A{Ì}v:¢… è<Ëúºvá -Éã.^ZÏ‹£h™>®m9›ýBKˆ{.qZØ€±¬V„ÔVD…«U¡5•¦»ÇPm«Mcý Š½x$Úì}Öé†À°<ÿ›rù0v_'ò‚+öv)LÆ÷·—³HIÃL:9·‹]0=ŒÃºõ—y-åÔa ŽÇvµvN@Lñb³ci‹7p
+>Ê/¹¥ë;.—
+ÞW†árÙÁ:!—kWþÙ“Ë4ˆ±X>Ùóqû•DÉi¶<Ò
+hüy×ÀIEûêÿþÙî×raè$9b~UlXy¦ðÒ¤Q‡²Ã¿7;äý0M½7endstream
endobj
-2537 0 obj <<
+2541 0 obj <<
/Type /Page
-/Contents 2538 0 R
-/Resources 2536 0 R
+/Contents 2542 0 R
+/Resources 2540 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2525 0 R
+/Parent 2529 0 R
>> endobj
-2539 0 obj <<
-/D [2537 0 R /XYZ 56.6929 794.5015 null]
+2543 0 obj <<
+/D [2541 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2536 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F21 950 0 R /F55 1336 0 R >>
+2540 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2542 0 obj <<
+2546 0 obj <<
/Length 3245
/Filter /FlateDecode
>>
stream
xÚ¥Évã6òî¯ðÍôŒÅÆBp™99í^œ‰ÝKy3yI”Ù|M‘j.vœ¯Ÿª@‘%Ï{Ó}
…Úa~Îà??•ÏdœGIà+ÆÕùjsÆÎaíÓ'œ™Cš ±~Xœ½û(£óÄOBž/ÖZ±Ï☟/²ß¼ë¯_?ÜßÜþçr&ó~ð/gŠ1ïîúþ—ëŸöõ2Þõ§óËOb•
-z >%0‡e6û¶P8_ü|Hì`K‡4±¥l™$~`G[Þèm}ÉcO¯ÒVgx+y‰ã:}®jœVkg áZ.9çžp3tüˆÁn¡”oÈh€uBFËÊè'³å»J 09÷ãDÁíY”¶-öÙâ<ðã0R§ùê±&£í?âxÌÙ\·ÍåLŠÀkŸ4N2½N»¢Å‹ÅO´\áØ5„¶6bÆs"ñM¿âäåI—8ˉŽCYUå³®í­Ypéè¦8€™k²ó‡'·ë=û€, ´ÉO˜ˆ0üD)a–o¶î$"E;‰(4;À_U©¯` :ÅjÇîd
-Ïöà—§|õ„ÓUÚhœÑñ`Ë?ó¦ÍËGÓaᣪ+2BM¿®³9ér¥ÍÕ$‘Ñ÷}ìÈ&;Q… °V í¥?º_†(#ÍA]cg' àC"Æ”BpˆRÂÍN¡0N8x–Mõ¬òíQ·ÂWRE§ÝÂë¸[豬[ؾé¶uÕV«êÐ7)œf®Çšànä‚ÄdÙ#ßÀgxŒt€X²KÏiÑÑ"z„!ú£.u>ÚÀÙ¢ž) ³8Nݳ^~–Ýf©k-uû¢­{Fhe†~@Â9E(e´¸ÝQ>PPøaFiæýÎÃ@3îãÚk»vº­š&_DÉž¿Á/ÑúHf©=Úc·Ñe;„hü¢
-¼LU7G•XÅ‘¯ÞŒmC¬ãJÜcY%þ~,þŸÜ²ÿ‡[NÅÿÑ–?w¹ñ~ §Þ¦Êô?@„ôæÝ–\TÓ˜1Ë]Yj#™´6C…^ÕµÛÎøf›è³*ºÌº/³Fjøèˆ ‰¼ÌrÈ3òªU%óþ}© P´O@
-1(
-ê³I‹¼}%là˜•AŒq@yÍœ×HÕÈzD¿0·'°äéfž6Ò„»OÌnÍ”—MKWb·MÉé‚:4k°²ª~EÈ.¾q˜@t¬"êðë¸®'2‰Ä‡´I¹„Çê_¦Ÿ3 S!rqš¹k‚»Q&ajR&Ô˜½ùV¯òßÖ/3NRgÂkªÎª½VX°š#²[‚e‚½¡Â`÷%`n­AZçm½B$ÝàRV¹}ʪÅe²÷ç<£ÏÓ #!Qà‰p¹×;Ö;—WÄ~dŠ§±–÷6½ïƒ¸£(Ú¥¬ aàf¾w9¤ 60É Ïm¾.e¯ºƒÜÙ|29À‘vâAxÞôֲ #£•â?uX©ü˜±xJ?öŽ3“Ô˜2Vãã7ã[uõ“^™n4‚ð>±¼ƒaõ”š¸dMðP„Yãhƒj±MÁá%K'p»–¥-µ%$ŒKÚË1ÉKPŠ4³b¸œ0s’»qïÜeŠÆÊÍ!­3…˜ìNÕÊWÄ‚²¤[È&D©˜/9—ãðäj
-èI÷ˆýmG‹Í•gŠa
-£9óq·#LZÅo¸Ö ·ã°¬Û™¿YÀŸx¬¯q’¯]_ã±É¾Æˆ³÷TQ·V'0€0($ô þÆëëc³F GÍoýç¶ÈW¶ƒÐ>ÇÆETº!²«¤ tPé±¢J°Œa\Qãx¬jH#7ö7dJù_úêx7£PJòºÕ8³ÙJ첕„Q¶ÊÈÒ±]'˜`“¶6‡0Ý÷ƒn@ÂFg YÀm^iS!üa* ´-CC‚V܇œM$ –Ï !>â3p‡ L‚5Ú’Ú8 ‡Èƒ“˜åR̾ÝvË‚ÒzÄÙsélò?05`iÊ¥ M0ÏM^v½‘ŒŠ•1'ÖÒÁ?‚§¹ÂŸ.Ùƒ)¹(G¨ÂQ2ZM_—2~1qÚ ±Ž»€˺€fÊ@~ 9UŸª×º|lŸ3 eO3×cMp7îaÄ>‹D2fo/ó`.F1Õ•¿åÌB\+ƒ1Šì¡1„Ìô•œ6Jqè3Q6l]ÀFh6G† WÆp9hfÄ>á^•°êjÚ±-(íÄ&eåôÄœ¸t­ñmWo«FûäØá8®/Æ«*æi}`Їeõe1¥/”tá³®­Û×)}ù&k=Öo#máÊæÆÚ"úNVBýÂQ:ÖCWUŸp‰˜ü³ý¸Â‘Zæ‰k™ÈŽ*†½¤j]JHå0Ùä“ݦkZ$½¤-tŽ­+3ßu×cj¤‚œXè'ÉØqí^JÀiKçúå m?l9£#*×ø7Ю¡@‚­
-J†v+ì¤iq!|÷]¢#†%BP 52,!(¥‚­Í+Ãhëë_Ÿß¹ÿhÞ‡¯tÿå
-F‘«`
-mº¨û:Ê!"pÎ'9ë±&XG#î ŽYÃç—Qʘée÷øØ;'Ë™ß÷“{ÅŠ=€yÚ&c¤¸¸½»½'/öåëâöËý|Bíá
-í0 ñ£²ºH‘SŽzøT¦Bê;î.ợڽ ‚ïÛàÓiàý
-ÿîînnpßJwÐÏŸïîæsM¿Ç,ötö^Rìó+ˆ¢™òþäëÝKª¢fgÒž
-ÉŠnù±¬êþáºÐégv3¸ oS•íïnAý~ìÈvRúsÛ81ønNÁ`ïP¦x¤zT
-2Uû¼Ó—%¦¼=M [Õƒ ¾Úó)£Ët¹—1(ÈvËl¢Ît¹¾òƒé?Öû§ÿûŸvàDÇã#^K“ãsÇ”‘%WrŸu¥€ŠE4Áûí„uendstream
+z >%0‡e6û¶P8_ü|Hì`K‡4±¥l™$~`G[Þèm}ÉcO¯ÒVgx+y‰ã:}®jœVkg áZ.9çžp3tüˆÁn¡”oÈh€uBFËÊè'³å»¡`rîlj‚Û³(m[ì³ÅyàÇa¤NóÕcM0&FÛ%~Äñ˜³¹n›Ë™×>iœdzvE‹?‹Ÿh¹Â±kmmÄŒæDâ›~ÅÉË“.q–‡²ªÊg]Û[³àÒÑMq
+Å€òÖÒæ^WºÙQE½%B)ÁÓÁiöŠ+)ÂIæ„l|¶‡‡F[vT|·—Ü+Òž)ìÁ/Oùê §«´Ñ8£ãÁ–æM›—¦ÃÂGUWd„š~#\gs:ÓåJ›«I"£?îûØ‘Mv*4¢
+`­ ÚK0t¿ QFšƒºÆÎN@À‡DŒ)…ॄ› #B?`œpð,›êY7ä?Ú£n! „¯¤ŠN»…!Öq·ÐcY·°}Ó-l몭VÕ¡o?R*8Í\5ÁÝÈ7‰É0³G¾'Îðé
+ÌR{´Çn£ËvÑøEæg}‡a£Äñáã{œ¸ ú†Î·g,yKÊÛt«x™ªnŽ*±Š#_½Û†XÇ•¸Ç²JüýXü?¹eÿ·œŠÿ£-îrãý@O½M•é€: éÍ»-¹¨¦17b–»²ÔF2im†
+½ªk·ñÍ26ÑgUt™u_fÔðÑAy™ågäU ªJæýûRA hŸ€bP
+™Ð±›6Óu=! á"ˆpèòl„R.ðÁäð®EÈzfz4<:LHf¨RÆÞ5Â/ü œÐNÚ
+‚3拈'cÝpNNÜ{²©A`¼.´®º2C ‹é
+?0Ùª?”¯8ˆeI·MˆR1_r.ÇáÉÕ 4Г îûÛŽ›'*ÏÃFsæãnG˜´8Šßp;¬nÇaY·3³€1>ñX_ã$_»¾Æ!c“}gï©¢n­N`
+¾•î Ÿ?ßÝÍç>.š~Yìé콤ØçWE3åýÉ×»—TEÍÎ(¤=0» Zq"²!|(Ö5«=Ni1¥ÓÉÃúšaCoí¥ÍÞÙtz–Û|cK‘8ô>:Vì“x™›GUzÎ׸%çÓé}óÉŽåº*ŠêÅòÎCoi¬ŽGä¯
+'"˜=™¤Íþ0’1ÜòcYÕýÃu¡Ó-Îìf&pÞ¦*Û'":ÞÝ‚úýØ‘í¤ õÿæ¶pbðÝœ‚ÁÞ¡Lñ6Hõ ©dªöy§/KLy;zš¶ª|µçSF—1èr.cP64í–ÙDér}åÓ/~¬÷Oÿ÷>íþÀ+ˆ ŽÇG¼*$–&ÇçŽ)#K®ä>ë
+J‹h‚÷ÿU„mendstream
endobj
-2541 0 obj <<
+2545 0 obj <<
/Type /Page
-/Contents 2542 0 R
-/Resources 2540 0 R
+/Contents 2546 0 R
+/Resources 2544 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2525 0 R
+/Parent 2529 0 R
>> endobj
-2543 0 obj <<
-/D [2541 0 R /XYZ 85.0394 794.5015 null]
+2547 0 obj <<
+/D [2545 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2544 0 obj <<
-/D [2541 0 R /XYZ 85.0394 143.9886 null]
+2548 0 obj <<
+/D [2545 0 R /XYZ 85.0394 143.9886 null]
>> endobj
-2540 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F55 1336 0 R /F41 1233 0 R >>
+2544 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2547 0 obj <<
+2551 0 obj <<
/Length 2985
/Filter /FlateDecode
>>
stream
-xÚ¥Z_sÛ6÷§ÐÃÍXžF$Ø>9µšK“ørµ;×^ÓJ¢,N%Ñ);꧿]ì"%JÎ\“@Àb±Xüöh9ˆà¿˜D$™Êi I3˜®.¢Á̽½L3òD£6Õ›û‹×?èt‰,QÉà~ÞâeEd­ÜÏ~¾©¸Ñðæöînüýèýø×·ãÛ«‘̬Ɇן>ooÞýr5R&b ¢áÇëÛŸ¯?Ðا«L ¯ßŽï®~¿ÿñb|Äj‹.#2ýyñÛïÑ`'øñ"v<ÃHÈ,SƒÕEl´0±Ö~dyqwñïÀ°5ë–ö©"6V'ƒ‘Ž……ýû&E*%¥&‰V:(LÉ>…y*TØèôõÆ´(¥63 ™#™åMñºšÏë¢9TŠ±t,ÓA{ç#ùU€ª½­ÎNv¼+š®&‹†Í¢€ŽÍœ@4T­©}^”ÓMæ4òG±£ß¥_]Q;a&Ûɲ¬Ŭ;6ù«Z€XjæM±ñÓy³âÕÕHG~ o
-‚IEªt G—"3F¹“<—Ë%Ð¥Šd€¶\O—Û™Áý¢–ØAEà[Ü5Õ-ëªé2ÛÖž‘; ´uùÀ,ËŽ¢Ódøn~°.õöì0_{9ærŒÞR[=6eÅyM!'<sÔ=ì¤(ÖdQ(×+êGèÌŠy¾]6ôÃÝ´Ÿ•Š×Õ36âÈúâid„}É
-Í g×}
-Ò¯¯¨uW‹fŲ h­#RÇÂ%¤¼^²²=|ù–ækÔ.«õ0ñ‘Ž 3¸¯öSìë>G&òþn•ïÚ.q•û…G HÆ@ùXÕeSmvW`¼Cí¢z.ž@Ø4
-ØDžDžJD¬“ø䵨ΠÏS9䕽~M*ã‘W®áJžòåì ö&ÂÇYÙUpØI+%]évIÂJMÌ𑕉EÎ4ç´‚˜Žj^mh8§ßx¨v¼O“R±
-Žqt•œµAÛQ,8Åb§-þökeP nK
-ì£ç¸)9(ã^EC @a=‡bõ¡»"õ¡_"õaÞÅ^º­Q*²8¡œÖáËzhØØ??P†“¢\?ÐДî„q s.{„‰|M¿‹/°› Ð0Zo§Ó¢®©Â¤»zG\Án›ývÞ_fÚc¬-Ð>¶×;ôh§å+ZÕŽ¸„ÏwõwÔu‚<—uÑÍ,üŠ¿
-·]u 9ë6¹vé–“K¹âA…;ÇuÌëW\ÎÎi†s&Pcý°]놦(?‹Á·-—6f4:ÙÑ(—›Ž·`N¨f·óKÁ<.w—nãdx¹ªB÷ù’¥¹œ…±…ïU›>Wp¹*/ýÛcû7§“Ú ]wÛr6ééhfW䛚٭ªu³ð?ž‹âßÇûáî¢Ú2}:$n²\oÁ3mƒ– åÍ\ôâ?Wx °ä[Î93l©ïðµ§Hçk¥u^hV Š¹
-ƒ( 0€ãY”à‹¨´>¥ÄëíøvüÓ5>ÝÞoˆÉûñ¯wÌ A#âðið2ü.{"¡]šP²¬kh6ö¨Û,“L¤±,V«GLÕÜëXæw¾]î}§²)Ù™PÓæ4T7r0TÍiŒŸâ2ŒØ+!î¬#èg’…x¿†â›<Ï¿)ñ_Й…Ò<¼pÑ‹až9FP¶ etÒ…qÝ@p'“ã+<nÎÿîƒ;õmاsú!Ì™ÖI¡O©Ho^èýÉÂWÙp ņ¯N<Òk™«>ÿ}¡Mår-·4”JHÉ’/ªûez¸i
-ü¤Uç7õDÇ›v.ÒBY‘e¦»)ÞfÏb
-ù+÷?Vß:Ç4è„¢àÀZû‡˜6ÕiEª—uvÓ ¨£M{ÕÙ
-í„¢Ö<6å´Sƒ°?жàꌱ½2_>Tð…«Óêµ`—øåã¼z[TgÔë©^Tï¹M÷ê=Ü´_½íMOù­„Nmò"÷^ÀçUX1zßWUãÜ!Vx¢Ç+ãWÈ^T7õzÉ;§,ʼpûÜ‹C|ó\QüG±–…O4öéšç(“œŸ¦c~*2ô¨Ã„Þo}¾:Ñ"…ê焯üéàø4-² ?¢µÃ1ÊJëC•Sf·W«–ÆòìX(‰Añ¤Hp2üXÐ#–Œ £ÒýúÅáõy(½À²RØD¥Ý´ð~QôI ‘V¥~³š·˜%‘lt­X&-éðWŽMŠß‰é7$ Ô!ˆL+çpŒ_‘ Æ4ì¸
-Mg}{&ÿxw;âÀ ökíA\þþÃÏ7cSAј +:̸ûU N2J¥ÏbÎÜ8pU2¶‡êe[½qË9ŽBÁ7%:ç
-Ÿ=Ž¼M‡— dûçh–
-ÜÀ„ZP0åÿu;¦Þù#Xݽ‡Êþ4øƒOc¸¢ê–¦­2ã(‡Ã‚êÛ“e„ø:=yTàõ·ÿhŸÆ©ÐöÔߨ"m}
-•!M|üùŽ
+xÚ¥Z_sÛ6÷§ÐÃÍXžF$Ø>9µšK“ørµ;×^ÓJ¢,N%Ñ);꧿]ì"%JÎ\“@Àb±Xüöh9ˆà¿˜D$™Êi I3˜®.¢Á̽½L3òD£6Õ›û‹×?èt‰,QÉà~ÞâeEd­ÜÏ~¾©¸Ñðæöînüýèýø×·ãÛ«‘̬Ɇן>ooÞýr5R&b ¢áÇëÛŸ¯?Ðا«L ¯ßŽï®~¿ÿñb|Äj‹.#2ýyñÛïÑ`'øñ"v<ÃHÈ,SƒÕEl´0±Ö~dyqwñïÀ°5ë–ö©"6V'ƒ‘Ž……ýû&E*%¥&‰V:(LÉ>…y*TØèôõ‰nQJ)lf@2G2Ë›âu5Ÿ×Es¨ béX¦ƒöÎGòªU{[ œìxW45\M ›E›9h¨ZSû¼(§ šÌiäbG¿K¿º¢vÂL·“eY/ŠYw:lòWµ.
+õ¡
+ãÖJ¶[ ©fÂîÁ±pâÂÇàØ46)ð‚¼Š6Œn†\ÇwxÃr8­Ö£¾z̯.–Á*µ2”_KŸ Á¸;D9ãè*9kƒ¶£XpŠÅN[,üí×Ê @Ü–ØGÏqSrPƽŠ†€ÂzÅêCwEêC¿Dêü‹½,t[7$£TdqB9­Ã—õа±~  &E¹~ ¡)Ý ãæ\öùš~_a7 a´ÞN§E];S…IwõŽ¸‚Ý6ûí¼¿Ì´ÇX[ =|l¯wèÑNËW´ªq Ÿïêï¨ëy.뢛Yøn»ê@sÖmríÒ),'—rÅ!ƒ
+wŽë0˜×¯¸œÓ çL :Çúa»*Ö MQ~ƒo[.!lÌht²£Q.7o7ÀœPÍn7æ—‚y\î.ÝÆÉðrU…îó%Ks9 c ß«6}®àrU^:û·Çöo:N9&µA»ï¶ålÒÓÑÌ®È75³[Uëfá<ž÷ÃÝEµeútHÜd¹Þ‚;f
+Ú-,Ê›¹èÅ®ð`É·œsfØRßákO?Î×J ê¼Ð¬sQ`>
+B»4¡dY× Ñlì!P·Y&™HcÿX:­V˜ª¹×±Ìï|»ÜûNeS²(27 ¦Íi¨n6ä*`¨šÓ?Åe±W$BÜXGÐÏ$ ñ~ ÿÄ7yžSâ¿¡3 ¥yxá¢Ã,<sŒ lÊè¤ ãºàN&ÇW0xÜ6œÿÝwêÛÜ'}3°OçôC˜3­“BŸR‘Þ¼Ðû“…¯²áŠ =^x¤×2V}þûB›ÊåZ2ni(•’%-^T÷ËôpÓøI«Îoꉎ7í\¤…²"ËLwS¼Íž+Ä0òWî5~¬¾uŽiÐ E)Àµö…1mªÓŠ
+T/)êì¦AQG›ö*ª³)
+Ú E­!xlÊi§a mÁÕc{e¾|¨6à W§ÕkÁ.ñËÇyõ¶¨Î¨×S½¨Þs›îÕ{¸i¿zÛ›žò%Z ÚäE$ϫ°bô†?¯ªÆ¹C¬ðDWƯ*½¨nêõ’wN#X”yáö¹‡øæ¹¢øb- ŸhìÓ4ÎQ&9?MÇüTdèQ‡3'¼' ß&ú|u¢E
+ÕÏ _-ø#ÒÁ1ðiZd~Dk‡c” ”Ö‡*§Ìn¯þV-åÙ±PƒâI‘àdø± G,F¥!úõ‹Ãë;òPze¥°‰J»iáý¢è“"­Jýf'4n1K"ÙèZ±
+LZÒᯛ¿ÓoH¨C™V>Îá¿#ŒiØq50
endobj
-2546 0 obj <<
+2550 0 obj <<
/Type /Page
-/Contents 2547 0 R
-/Resources 2545 0 R
+/Contents 2551 0 R
+/Resources 2549 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2525 0 R
+/Parent 2529 0 R
>> endobj
-2548 0 obj <<
-/D [2546 0 R /XYZ 56.6929 794.5015 null]
+2552 0 obj <<
+/D [2550 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2549 0 obj <<
-/D [2546 0 R /XYZ 56.6929 364.4689 null]
+2553 0 obj <<
+/D [2550 0 R /XYZ 56.6929 364.4689 null]
>> endobj
-2550 0 obj <<
-/D [2546 0 R /XYZ 56.6929 119.0358 null]
+2554 0 obj <<
+/D [2550 0 R /XYZ 56.6929 119.0358 null]
>> endobj
-2545 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R /F14 976 0 R /F48 1253 0 R >>
+2549 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F14 980 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2553 0 obj <<
-/Length 1715
+2557 0 obj <<
+/Length 1716
/Filter /FlateDecode
>>
stream
xÚ¥X[sÚF~çW0Ó< ›½kÕ>96N'¶kœ¶3IX@(8î¯ïÙ‹„$/0m'3aWþöœ£s¾sY‘>†¤¯Â,æý(æH`"ú“U÷çð·w=â1Ã
4l¢Þ>öÞ\±¨£XRÙœ5d)„•"ýÇéçÁùýýèöòúϳ!xð ƃ緟Î?¸g÷g1œ¿φ$Ž920‰—·ãñèbø0úýîftöõñ}oôX›Õ4`flú«÷ù+îOá Þ÷0b±ý'Ø`‚iÕã‚!Á«ž,{ãÞoµÀÆ_íÑ+SH(|ÁUÈ"F’Qf}q£$«õR£I¾B¯0f¯¨$›{sEiã8î‰B‘ Î‰×ÙÙa1(iaV|à%½ögIãlÄÇÌXlŽN³¢Ð“áwý<×Y@“„e ïãГÍQ”º¨4j§ð Æt O­ÞÒG&±ð¼#Ú‰c©Šýá$›XbwdÈâE\@hA±Ô½G[ùz“îàB0Q”Ê Gµ?ki3\†,BJn±ãÑÈøüÃø.C*ᢇ"gç™þ‚Vðñdq“<
©XT6½½¾½tŠb¯oºJ³´(7I™oÜ£=Ó.tÙD»G“l›,ƒ>WˆJ)½øÅŠ0x¸ºp©`q@'ˆš
-]ú#Ží²ÉvàØ.=Û›0/ /`ªäLOÝ6õ\! Äj¥U?ë«—h7©f³mdX¦ŸÜb¤¾¾ç³}¹4öíØn&yV&вy'¡³ü©Q
-#-´ü£ÆÕ¨€u­B
-eðyAMŠ¨ñª¬@•-jFˆ&Û*Ïg0bxÇmÒ2çUÅ
-ýŽ‰No®Ã«WëÒץ̌ÝÍúS“¡êU}Êüoõ:‡Ø@0ŠbªN°¡:†
-eÙ0;T£Žª¬kÔK•¡ÕRy•[§ØÛ'&(4S«ôÏ°Wrp‘l‹êëAË~‚#ÄU=SŸœ%ŠD}ù³þmV“[ºÀaêk"<q}~œ‚•¶ì3«tæЉۺšçÖɲ6ýyhû…8¬WI9Y˜¤·"Ò| ô
+]ú#Ží²ÉvàØ.=Û›0/ /`ªäLOÝ6õ\! Äj¥U?ë«—h7©f³mdX¦ŸÜb¤¾¾ç³}¹4öíØn&yV&вy'¡³ü©Q
+Ù6-Ärým;Ÿ×1±–ö\1¹ì„Ϩ#>«PÖg£°ÏàÁ^ -§1ŠDú¸i5*`[ÛiŠŒ-ã>ÚÜí¥s‰£Á<ÝÁmÔ>»[ël<þà6ÎF¸ýÓ˜ þXT¸Î­a™ºÝSZ.œ˜û›‹ñO„¸ÇÅv½†iÛmÒÒ!¦z–l—&hVîž®¿O
+B~q½™B¿c¢Ó›ëðêÕºôu)3cw³þÔd¨:GUŸ2ÿ[½Î!6Œ¢˜ªlh Ž°¡BY6ÌÕ¨£*ëõRe¨FµT^åÖ)öö‰É
+ÍÆÔ*ý3ì•\$Û¢úzвŸàqUÏÔ'§A‰"Q_þ¬¿A›Õä–.p˜úšO\_…§`¥-ûÌ*9tⶮæ¹u²¬†MÚ~a#ëURN&é-…ˆ4=À¡d9‡2[.V9¢îx×—í1¯>y|x q
+.÷„áYt˜QÈêá¡ ÷sèOÇôU˜—úZ5c$¡-…÷›4+ e2?à¯âjDàvÛ¹ÜÖÝîÛÖ/¦u—Ý”…cá=w#ó91à\ÏÜÿû«åþë,‡±L)ö28Ö\AHe”q2¢kzý}ó¥íÿ
endobj
-2552 0 obj <<
+2556 0 obj <<
/Type /Page
-/Contents 2553 0 R
-/Resources 2551 0 R
+/Contents 2557 0 R
+/Resources 2555 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2525 0 R
+/Parent 2529 0 R
>> endobj
-2554 0 obj <<
-/D [2552 0 R /XYZ 85.0394 794.5015 null]
+2558 0 obj <<
+/D [2556 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2555 0 obj <<
-/D [2552 0 R /XYZ 85.0394 683.4656 null]
+2559 0 obj <<
+/D [2556 0 R /XYZ 85.0394 683.4656 null]
>> endobj
-2556 0 obj <<
-/D [2552 0 R /XYZ 85.0394 619.4692 null]
+2560 0 obj <<
+/D [2556 0 R /XYZ 85.0394 619.4692 null]
>> endobj
-874 0 obj <<
-/D [2552 0 R /XYZ 85.0394 579.8478 null]
+878 0 obj <<
+/D [2556 0 R /XYZ 85.0394 579.8478 null]
>> endobj
-2557 0 obj <<
-/D [2552 0 R /XYZ 85.0394 546.5386 null]
+2561 0 obj <<
+/D [2556 0 R /XYZ 85.0394 546.5386 null]
>> endobj
-2558 0 obj <<
-/D [2552 0 R /XYZ 85.0394 510.6781 null]
+2562 0 obj <<
+/D [2556 0 R /XYZ 85.0394 510.6781 null]
>> endobj
-2559 0 obj <<
-/D [2552 0 R /XYZ 85.0394 443.7598 null]
+2563 0 obj <<
+/D [2556 0 R /XYZ 85.0394 443.7598 null]
>> endobj
-2560 0 obj <<
-/D [2552 0 R /XYZ 85.0394 382.7282 null]
+2564 0 obj <<
+/D [2556 0 R /XYZ 85.0394 382.7282 null]
>> endobj
-2561 0 obj <<
-/D [2552 0 R /XYZ 85.0394 306.7766 null]
+2565 0 obj <<
+/D [2556 0 R /XYZ 85.0394 306.7766 null]
>> endobj
-2551 0 obj <<
-/Font << /F37 1038 0 R /F48 1253 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F39 1173 0 R /F53 1328 0 R /F55 1336 0 R >>
+2555 0 obj <<
+/Font << /F37 1042 0 R /F48 1258 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F39 1178 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2564 0 obj <<
+2568 0 obj <<
/Length 2420
/Filter /FlateDecode
>>
@@ -12287,1331 +12231,1400 @@ xÚµY[sÛ¶~÷¯ÐÛ‘§Š n¬ô¸qI¶“ä–(‹SŠÔ)»î¯? ,À‹D+™éI:S‹Åb±—o0Qø¤"Js=ŠuD
ÛFGã…ó!Hï¸ ¾–¦°nÝR éÁ3*ç:˜{xTè* ë$¿Ôì±ø»,CÀ›ÒF»=îRÂÆ{ÜÆ®µQ…x
ŸUý…~ÅîðgÕ&]½i$ jn‘oªMyÈWý…h§^‹NÒUÀZÅ‹Në% ½ ƒŽ* ÷›5 ¥°„XÇS@“*ЭHÏü¯…\œ-šHX–Û-¦4PóÌé ˜@Ÿz•C“ ¤PG^}  N­²í.Á½
  „×Æ{ÁQ@ÐÕú‘<Üsu¿û2yÀ6ïÆÊ6Ø–âmŸ-cl|diþ†×>.xÆ,Ù!WnÔ~µË)1L„?@
-QÃ%S@Mþl^üDÕ\ŒŽÀ1+Ìr™‚ gœ.‡)^Ê
-·;Äk$eÚpC. "[©-Š ãéý‹K,QEŒ1
-p‘Õ¯"‚’Dð¯ô‹-ÏëhàylNºEh`u|v³Àr²Yï…'½Í¦Ûð4q¨ÌcþpQµX í«Ã_Cvðú IìßãT£M7þÿì×þ}3Š‰H>|LÈ‹UPÊž“IuêBÿÂSÝÿÞIfendstream
+QÃ%S@Mþl^üDÕ\ŒŽÀ1+Ìr™‚ gœ.‡)^Ê
endobj
-2563 0 obj <<
+2567 0 obj <<
/Type /Page
-/Contents 2564 0 R
-/Resources 2562 0 R
+/Contents 2568 0 R
+/Resources 2566 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2572 0 R
+/Parent 2576 0 R
>> endobj
-2565 0 obj <<
-/D [2563 0 R /XYZ 56.6929 794.5015 null]
+2569 0 obj <<
+/D [2567 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2566 0 obj <<
-/D [2563 0 R /XYZ 56.6929 752.2803 null]
+2570 0 obj <<
+/D [2567 0 R /XYZ 56.6929 752.2803 null]
>> endobj
-2567 0 obj <<
-/D [2563 0 R /XYZ 56.6929 690.9123 null]
+2571 0 obj <<
+/D [2567 0 R /XYZ 56.6929 690.9123 null]
>> endobj
-878 0 obj <<
-/D [2563 0 R /XYZ 56.6929 653.1174 null]
+882 0 obj <<
+/D [2567 0 R /XYZ 56.6929 653.1174 null]
>> endobj
-1470 0 obj <<
-/D [2563 0 R /XYZ 56.6929 620.6102 null]
+1464 0 obj <<
+/D [2567 0 R /XYZ 56.6929 620.6102 null]
>> endobj
-2568 0 obj <<
-/D [2563 0 R /XYZ 56.6929 585.5517 null]
+2572 0 obj <<
+/D [2567 0 R /XYZ 56.6929 585.5517 null]
>> endobj
-2569 0 obj <<
-/D [2563 0 R /XYZ 56.6929 521.2619 null]
+2573 0 obj <<
+/D [2567 0 R /XYZ 56.6929 521.2619 null]
>> endobj
-2570 0 obj <<
-/D [2563 0 R /XYZ 56.6929 438.9484 null]
+2574 0 obj <<
+/D [2567 0 R /XYZ 56.6929 438.9484 null]
>> endobj
-2571 0 obj <<
-/D [2563 0 R /XYZ 56.6929 269.4372 null]
+2575 0 obj <<
+/D [2567 0 R /XYZ 56.6929 269.4372 null]
>> endobj
-2562 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F53 1328 0 R /F55 1336 0 R >>
+2566 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2575 0 obj <<
+2579 0 obj <<
/Length 2823
/Filter /FlateDecode
>>
stream
-xÚµZÝsã6Ï_á™{°3·ÖŠ¢¨Ù§´›mÓk²¹Ú;½›¶²MÇšµ%×’“õþõ -Ù²mç’Q €ÀO
-/PQÛ´‘®+
-Z½ÐÔ˜éÉöé)/žèÕXæEŠÝÃ4â8 /ø¬ÁuÆg–Ëøì¶ÛgIª¬ÏtVê#§Iˆ¢ïçMs\¶µ{qßG˸O•FhGä4‘ƃ§üYDû¸ÖÅhô3½
-݇]yA]4EhÌËÍ*«©ó¿ðwÿþ=õ”›6õÇïïG#:ïæÔéädFÓÓv¥‹š( 󯌛}ë_ÊŠC3Šýö±±N ûo •ò.ôä<ɼ¨õ†§UÓ¬@ wf<»rŽýsˆ žþru0wëgr¯2‰¬)Ó²
-=©DrÞ<ÇÕa_X©'¥m Y°ü cƒ…-D–T¡EV‹Ë` ¹_Òs f5
-)!lOÅ ‹”Äß#%ñ`Ï$ÛHê&³§'ü¬jÖKkV­»£LóÍÙÊíXÆ_…ŸŒýзg:>f2Ø»ëÀ^
-•
-2÷+ ç{a ©äœmŽéظ6ô”ª8nYÇÈ“6=@ƒ‘'y@±Èkr4 ‘Ûñ% š0/ßszbà•’zÒA5b’R]òzЪj×t(Tž"n¯@_¡7/ÿ¿U>‰JA|¡ò5¹NÃÊq\½ïÊixN¿®ò%išœ7ÏquØwXù`á%ÚòšŠöÔà5îRÐsAàÖTM.ZUA#·ãKzšPÀ ™^jª{ÒnádD˜…k2»Ÿ¤C.GZK^–Å“Þ¸˜Û˜ú†ôÄ)·*6Í­²]3®2;ðH
-Z£E x³pA}¢åd°R„9ˆ¨¸ÙØÝ£=gË7]qq ÷G¨ÍêfÎSÌ®:YÝ‚8ôÒ0¸pÜÝä:c—É1yçªIÊV7;»£´Â,`;k›ãê0®•VÂÚ±h[Ç¥-²j‘ê083 å gôŽH¶‡G*¦W 2ð}{tÙMz¤‚ó€jÃ:fæÜؤ{~ Šþ!í)a7Š×Ù&£#'$ïè™1ÛRg4'nª3WtDîVý”fZ«ÃÛB» FIVž§íó+jßÖ-!í©w`šeF¸r(ú5gLëB—¶ä¡ ÃÆHþL‘FŸ‘ÍWaDsÂÓFZ¾âÁFð(›'Û‘¡Ôó#,ðì¹3Í@‰¯ìÙ".Že¥qiAiJPº¼í¦‚4Îj‚÷„ðl9 ƱØheDá6B8¢Zr`?ç_Á«~Ôeò¯0ÛŽ±ûpI´µé‡Ý‡[:^ÉA³!Ï Šá Lé D|É€¿?Ä\‚¸p#‰Œ
-èzˆúèë5¾S½¾¦›$4 Nc\»‚…f¢ývÑKæƒ0^ÚÛí„c;DGÔé¢qÜÌÅïøÌ yÉí¡n~ptüUÓuH§ónÌ–Mñ”¡Ûó5¯7ª7|þ4§Þš…×@ØE{À°qëÔÉŽ¨fËβ %©£[ììïúFqd¯<Ló¥ÏÖЕ‡¡-l«ûÌÞ^€DÉq
-P­¼’ÛpA nËK&ËG=æV‚ÅÑ¿¸;…h»Mw§
-¯¾Ê|üåîa|â2Sœ¾ÌœèÀ̇|ù ›É0H—yºðÄ9/«òÒŽ|½É‹úÀ ÅÝݯtÔ3{<U•Ó<s,|e¹÷ï¾:ŸXþDÊ“0׳‹Ÿ=Ïé¥ó˜…ÏöPì©Ã0<«Ì²)kú5E¿ª–²Ç†¿ UŸìZ`j³5Ý%{§~©
+xÚµZÝsã6Ï_á™{°3·ÖŠ¢¨Ù§´›mÓk²¹Ú;½›¶²MÇšµ%×’“õþõ -Ù²mç’Q €ÀO
+&)¼T©À˜ì«WëzGÍ"[1qs-’®P›EÉœü´Ó1¡ : sPz© ¥òD‘ZøÊï~ ÁÇwF<¸éeŸFG*1ƒÞgµFCb5˜f6ÂÁDAY³±º»ò‚ºhŠÐ˜—›UVSçáïþþý{ê)7mê?ÞßFuÞÍ©ÓÉÉŒ¦§íJ5Q&æ_7ûÖ¿”)†f=úÿìc#b@öß@+ä]èÉy’yQë O«¦YîÌxvåûç#<7üåê`îÖ;Îä:_!þd >XS¦epÍu1ÕƤ`Ï©§ÚNçõæÓ§8ÏËå²|1¶‹h0A€‰xPšåœd¦@l±¿Ã'øÅÄ:û»k10>
+ÂAURSú/®5s­…m™9áèUnIµùÎP ë‹Û³ìzAâ–|\9ÛélÃFýî+¦Ñθ:fNqJ2RÔÂá¢Ünèe–í*ãbˆòSQn(­BÇRgkje F0ߪ,ê mk7$§Ï?¡®!êEëÏV}Ãä·mp_šWy^1<ûì°ÖÓÒÜÂ$Ä
+¦VƒHN=š~sPaZÁÀlÃY§ ¤,I\gëãÚ‚³Ñ¶p"Xë 2kÛV¬­_
+Jq ÕaÞ].)Îmq3]ng‡(ràûJI XÈîeeݶ­¬ [
++øŽm‘< ª
+?!ú/ oÏt|Ìd°w×½*dîW@Ï÷†ž³Í1׆žòBÇ-ëyÒ¦h0ò$#(yM.‚4r;¾¤Afàå{NO ¼RÒAO:è±FLRªK>CZUíš…ÊSBÄíè+ ôæ âåÿ·Ê'ñ@)ˆ/T¾&×iX9.ƒ«÷]9 ωâ×U¾$M“óæ9®û+,¼DÛ@^SÑþƒ¼¦Â]
+z.ÜšªÉE«*häv|IO
+4ÓKMuOúÂ-œŒ³pbMf÷“tÈå(C«`É˲xÒWS€bSßž8ÅáVŦ¹U¶kfÂUf 纬òºÜЃA»€}å3 ;s÷6'‘§`=Ūi“ë ò,—AÞèâZ~½Ñ3=ÕU…»ÑÈw‹Ö“ÈSxyÖPÇÕai ƒ©ðTŒˆnš:¤LMBÚ)ëáOEˆb1¨ìQ4˜ WF|òÂFt–ãþ¢¯\²àÃÅg𮿬—ù4gÅÕvÊ®À:`±6^pK„I™´Ñ†Qí¶·Ë'Ø%׋•y!é|u]¦F`õnDŠÎ";hðñÇ>H¤ÉAcµ­j¨¿À‚V”˽¯²ÚøÄÈ*+–v$ž%Y7uì†û˜ÀØdx?°ë×ÜTß&ìA5ø¤b
+d@~ã±oî"{¢ CTpPmØ@ÇÌœ›4#cÏÄAQãÏ?¤=%ìF@ñ:Ûdtä„ä=3f[êŒFàÄMu⊎HÃýѪŸÒLBkux`[h7Á(ÉÊÁó´}~EíÛº%¤=õL³ÌWE¿æŒi]èÒ–<taØÉŸ)Òè³ ²ù*Œc.PxÚHËW<x¢1Àˆeód;2”zÞa„ž=w¦(ñ•=[ÄÅq Ì¡4.-(M J7·ÝTÆYMðžž-Ç"Á8­Œ(ܦSç@TKìâçü+xÕºLþf;Ð!v.‰¶6ý°ûpKÇ+9h6"ä9A1|)}ˆ/ð÷'ƒ˜kB@pBn$‘Q]Q½c½Æwª××t„fÁiŒË`W°ÐL´ß.zÉ|ÆK{›¢=‚plG‚èˆz#]4‚›¹øŸ£!/¹=ÔÍŽŽ¿jºétÞÙ²)¾£‘2t{¾æõFõ†ÏŸæÔÃ[³ðà»h6n=:ÙÕlÙY¶!°$utëý]ß(Žì•‡i¾ôÙºò0´…muŸÙÛ (9Nª•—Cr.ˆ ÁmyÉdù¨ÇÜJ°8º‘àw§ío7 éî QÒWÍ[à8q‹ÐñÕü•;…n ̯ëVáÕW™¿Ü=ŒO\fŠÓ—™³¢]C
endobj
-2574 0 obj <<
+2578 0 obj <<
/Type /Page
-/Contents 2575 0 R
-/Resources 2573 0 R
+/Contents 2579 0 R
+/Resources 2577 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2572 0 R
+/Parent 2576 0 R
>> endobj
-2576 0 obj <<
-/D [2574 0 R /XYZ 85.0394 794.5015 null]
+2580 0 obj <<
+/D [2578 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2577 0 obj <<
-/D [2574 0 R /XYZ 85.0394 657.4255 null]
+2581 0 obj <<
+/D [2578 0 R /XYZ 85.0394 657.4255 null]
>> endobj
-2578 0 obj <<
-/D [2574 0 R /XYZ 85.0394 112.9597 null]
+2582 0 obj <<
+/D [2578 0 R /XYZ 85.0394 112.9597 null]
>> endobj
-2573 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R >>
+2577 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2581 0 obj <<
+2585 0 obj <<
/Length 2239
/Filter /FlateDecode
>>
stream
-xÚ¥YÝsâ8Ï_Á#©}Y–ö-“d²ìÍ’°W[736‰wÀæ°Élö¯¿–õmdï*U±ÚÝ­ŸZýe2ÀðG‘@BQ5ˆG&Ñ`±¾ÀƒgX»¿ –fäˆFmªó‹«O,(¤ƒù²ÅK",%ÌÓ/È`t ,ððv2›ÝÝŒfãûÉ¿&w—#")‰‡×w“Ûñï—#a bŒ‡¿^O~»þlæ/^ßßÍ.¿Í¹¸›{ÍÚÚÌ´Zÿ¹øò RØÄ/1%£ÁøQŠÖ<b(⌹™ÕÅì⟞akµy5„$Š(€ Cã8ŒA1!@sŒÆÒcFI3G¥1môF¯>EQ‹’$Uš5$7WW×WÓ«ñÕíU²Zõ! #è -ü@EGP‘¶ †(L::>nó¢†ã¡ñ0Ñ9¬6Ù"ÿŠ1]˜éuV'iRÛÕ×dµËÌB¹5Ï*«ÍZ¹<úFæÀ0Î_2ƒ o£G…B’à àn]õ9¢”6$å¦ÎËŠKÞŒ¤§†÷`ÄD§
-3p|Ù‡€±B˜ÂÐð *S0ø½ ?/j³{Zip¬¤è¨$‚˜kL,§ëc¢øQQÉ¢Î_ß%‰‚¹gZÓ¿¿)ßkù¾}E(bÄá8 mÄ)h)Ò7à­ñ£F. ò¢³G˜1R›¡9û¾tàL„· Ûà^¹´³×¶Ì4›ïÈÓW›àá\{÷ÒLo¬W¡öjFŸe“sVß]t L Î1ß»†øê¡õ•=ÕY„¤ðç„,xlcð5°e1Š%e íìîÎhqýyöàŒ#*!.4yZTU¶}ÏÞž³â+Ž°„ÄnÄ.Vùsñ¸—ÖrשöyÄQ¥œí}On eÕI×y‘Wõ6©ÝIL³ef ®XX$MŠ]„ B¸ûÒ€#%½5N?ÝŽ
-!ÈŒL^dÆûuMmÂ…¶ý²\…@Ã=k|+ÊM•Wýt€A2"ƒ8
-ðì¼ëD¶I–˜f¯Gn!>¼…3?ªÎº¿ªN¶õ1/)Ç‘ìóŸŸÅ¬®CFNbˆÞô€]íG;?z=ê\"³Ê^³ÕûãÌïaW¡KÕ5ÐìÏ<·.#õ«'œø1+ýÓþò#vvCU²ªƒé1R¸ôŸÏ{¸ÀMÝP½ÿd¯íHGb
-Þ´9k6¡+—ˆ ǵ™‚\^ƒ’Y‰Éæ`.™™šNgã{3gRð…餎·!dP
+xÚ¥YÝsâ8Ï_Á#©}Y–ö-“d²ìÍ’°W[736‰wÀæ°Élö¯¿–õmdï*U±ÚÝ­ŸZýe2ÀðG‘@BQ5ˆG&Ñ`±¾ÀƒgX»¿ –fäˆFmªó‹«O,(¤ƒù²ÅK",%ÌÓ/È`t ,ððv2›ÝÝŒfãûÉ¿&w—#")‰‡×w“Ûñï—#a bŒ‡¿^O~»þlæ/^ßßÍ.¿Í¹¸›{ÍÚÚÌ´Zÿ¹øò RØÄ/1%£ÁøQŠÖ<b(⌹™ÕÅì⟞akµy5„$Š(€ Cã8ŒA1!@sŒÆÒcFI3G¥1môF¯> Ö¢$If ÉÍÕãÕõÕôj|u{•¬V}`èH#:h ?PÑT¤mÁ‚!Ê
+›ÝÀÄD3»¼4ÏúÅ’.yñlæWY]gÛÊ•æ™i¾HjûÆ—|ñbxšñ¶5Õy7úL~
+à!co<˜$’1§–` RD8‰â<rˆ˜;m6‹áÂl9±˜Â _ö! A¬¦04üƒ
+Ä4ŠZ
+4ü¼¨Íîi¥Á±’¢£’V`®1±œ®‰âGE%‹:}—$
+æBœiMÿþ¦ |¯åûö¡ˆw†ã€´§ Q¤H߀·Æ¹0È‹ÎaÆHm†æìûÒ3Þ‚nƒ{åBÒÎ^Û2Ó l¾#O_m‚‡síÝK3½±^†Ú«}–=NÎMX}wUÐ508Ç|ïFેÖWöTg’Ÿ²dàQl°Á×À–Å(–”5´³»;£ÅõçÙC€3Œ¨@„@¸ÐäiQUÙbô={{Ί¯8Âþ»»XåÏÅ_à^ZË _¦ÚçcD•r¶÷q<¹5L”U']çE^ÕÛ¤v'1Í–™1¸ba‘ü5)vI" 4áîkHŽ”ôÖ8ýtc8Bv@ü8A”Gä$ÀLr+*»
+²*Nøÿü÷³úƒC -¿‘7!ÏîskÍ¡ÝÐYeÛÜ9È÷ãê¼Ý•ë$/ÞÏ1?Ë1מï5¨å{¿ƒgcåvÔ¡l¼;8¦?βý#×Yohó’t~Àq<)}JHÙ;©2™Ó:®6Á "¼Eyþ~lóç¿sjï¾qG!·Žåí>úÑƦ~´ áE¥
+´¾$ÃFq‰¦›ÒL»m^ÃÚ›¨“z×´l[ætåölϼYX%×fÙÊ{y…ÕeLý’Ôf>¯>èª ¼dðâÖÐx5/ù*5sšCefÛY± xÛ5p}—ÈvcàY”µ.l¹[¹Œê¢FIøÝôrÚ•¥A?«ö’ã—<µ'mEš[RA¯ö‰‰nsJN‰X$\¹¬Ûf+ËÝ—ÎYÒô`ä`±‘úI·#í¨ÍÅ8ìœÚ|ži8󷈎w0QSm'}y€ŠÒ­’SòÍ¡¼6p°¦tòÑ–÷¯K&ÑùÖk¸«™î‹*0p{Ìè(*p:‚+~–Õ \UÌ"ÔÙ…Rž‘¨_é´SÚUB ?©˜#
+(F{ñ%V,îj6sÝÛ¬ê]
+(O­6š…{2Þ,ƒpâXK—gàlQ€ÓQ5pÞØYŒ(†Rå¤HGÙ‰ÉeWäM¹Þ€/|ÊWy ÆÆ„îü¦ÙO—£ˆ‘á½57³òº®mš mÿ0
+„]Nä>ÉÖøáf
endobj
-2580 0 obj <<
+2584 0 obj <<
/Type /Page
-/Contents 2581 0 R
-/Resources 2579 0 R
+/Contents 2585 0 R
+/Resources 2583 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2572 0 R
->> endobj
-2582 0 obj <<
-/D [2580 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-2583 0 obj <<
-/D [2580 0 R /XYZ 56.6929 659.6547 null]
->> endobj
-2584 0 obj <<
-/D [2580 0 R /XYZ 56.6929 595.7578 null]
->> endobj
-882 0 obj <<
-/D [2580 0 R /XYZ 56.6929 556.2057 null]
->> endobj
-2585 0 obj <<
-/D [2580 0 R /XYZ 56.6929 519.369 null]
+/Parent 2576 0 R
>> endobj
2586 0 obj <<
-/D [2580 0 R /XYZ 56.6929 487.0966 null]
+/D [2584 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2587 0 obj <<
-/D [2580 0 R /XYZ 56.6929 420.2778 null]
+/D [2584 0 R /XYZ 56.6929 659.6547 null]
>> endobj
2588 0 obj <<
-/D [2580 0 R /XYZ 56.6929 287.6148 null]
+/D [2584 0 R /XYZ 56.6929 595.7578 null]
+>> endobj
+886 0 obj <<
+/D [2584 0 R /XYZ 56.6929 556.2057 null]
>> endobj
2589 0 obj <<
-/D [2580 0 R /XYZ 56.6929 199.8075 null]
+/D [2584 0 R /XYZ 56.6929 519.369 null]
>> endobj
-2579 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R /F39 1173 0 R /F53 1328 0 R >>
-/ProcSet [ /PDF /Text ]
+2590 0 obj <<
+/D [2584 0 R /XYZ 56.6929 487.0966 null]
>> endobj
-2592 0 obj <<
-/Length 3585
-/Filter /FlateDecode
->>
-stream
-xÚÅZM{㶾ûWèi{Ÿ¬P|’@rrÖn²Ù]ïvåm’&9ÐeñY‰TEj÷×wP¤DÉÛôPû@h0ÀÌ; qø#kWNR§™áÂŒfë >z€¾ï.Dà™D¦I—ëÛ»‹¿þM¥#Ç\"“ÑÝ¢3–eÜZ1º›ÿ2¾zÿþæöúÕO—iøø[v91œß^Ý~¼zC´÷—NŽ¯¾»™^N„•"&Á‘/áãëÛéôæådúê»Û¾»½¹üí›»V²®ô‚+ë_¿üÆGsXÄœ)gÍè~p&œ“£õ…6Š­T¤¬.¦oìôúW‡vCËŒÔÉhÌJ 7¼gœq{0Iµ`"qI»gR íYäÂ=›\.Ô%,1&u;š22 L);S
-.X¢Òþ”ïvÍf×\N”MÇU¹z–7˪Ή¸½vœÏ*ÿœ­yÚä5qf»¦ZgM1ËVôr:^geöÖû'\ÒÁâeÊYÊAîe˜—uÏ&uñPþ»*óðBWôT³Ä9ø_\N´”ã‚å -)´>|
-NçÕÖÇ¥í«Ã£ÓÍ*èBS¬óúäik€<­žÉÞ:L§O;2ùÓ^ œ¶cBšôÏ!Q*Êã ¦T<9+VËt,W?>ÁàÐ{‚í݈L´7çÄŒ¯ß`²ó¢NcuÏ4Ÿt"Hõ¦–„þ<±Ã(JEBä„ïbN姘¶£ã‰+R
-ì [áûQ –m ›ÇC–°’ĸgŒ~9T‹ƒ®£ôí”6A3W‡×}ˆ\^!ê!óçà#Ûä
-„·RôÝz±ªÏ‹$ª\xÞ×ÕjçŇè»
-½$Æ
-âõÏ9Qp=ŒÂØ«’˜»¯j:—=/µ¼|d^\BèÖ ”û§0?=Ú”MRö‹,?ÃßÛ·×13iõõ÷ß¿};R†NÑgߠň±äðg@R­ çÈ[™S}¡¿ÖæëØõ»{Im¨ÀñÖ*o–¾~ ý°¾ !ÇWÝ*BÜ%d§M7n‰ [bý–´ûaÃ~ØñW·>r 6…:¯ÜÒr–ªœÚ>«Á_¤aÐè{vì‰ç§(–
-ÅOùc@[LˆX: qXá°"î³×å: q-—‡¸|âRqÚ²À|à° ¦í¬p-×€t=€Ó–%Š»¾x-À 6à°åÎ÷ùCÂ\¿pø3
-<2“§è_¥­ó4¿Q~EáD"êË%#=N3mîoHÈôØe$* ù äL sªõ®>¨ÛÂéÅj³ÌÊ©,˜åö¿·Á“˜+ñÆÌÚgÂÊ.×iÌm¹<æþ4„¹’i£Ú­ú½¡HÚWžO"°ƒì ÕgEm¹dín lŒ;HËzÂþ_Ø{ÍÞ
-»Àn*Ú$qé¾>?°š\•„8Å‚È-óëékjAˆOù¦ b,pR¬à%‚'¡n EŸ1Ô¢Ñ0"ê.¯Ř꾗.ÂN,ãUÎ:+wþþ²­ùY-Ó‰Lé6»¦ÒØ)'ž2gµù#>ìÊ‘·ÆÛÔ½·†É‚‚V¦ï:Eÿ“žGÞÚÚ®·Ö2õŽ-Iv²4áQÃA`HïP÷ üÁûü ÙruÝš1Ñ­AË;mäN{ÿ’A§íŽNÙ:žÇ˜ÉšOk볘H°…ƒÐD§¤:*'4ú.\'q÷uPW|vv~†D§­ÓƶÏH<mèؤŒskŸ꣫{@×ÔênzsNÃr(OI Ó·éAÕ2îW)‰7 ÇF'êË\n"]7¦À1üA+ Ú^h´~~¢¹9uK.8Ī5Ž3óëÂ|žv­ˆs€IwÛ2ÚB2uTôÄHÇ å#i»j=©÷90ì.ä5ÚÉã\˜ùtlà°a3…Tä¬Åþãˆ?Τ_Gî¹pF`~,å3%ò.×ép¦åòáÌb°lšX•«ò_¨LÅê8„I8Ói¢Î‹×r Èׯ’ˆ¢Ò´/ }!’qyéËàb¼FL´jAO(HŠªø9 ýÍÖžЭɊø¥H5è@ÿåSÐçþS©t?qÐab AÂe«¦ƒÑs
-N{ÍÆB²(%KŒÇ—Ïù|øûkãAø)¹Š_r(°7Z+4é˱þŽÙ! }'!¸>Ùʌ͔®›¶ÀD>NóRTÃ~XÿO“? Ùøj%;8`y°ºöX¸n¿RQ­Û¢iÚwªx³¯`~•œˆXð#€y?¤òUk¿/:”P (Ü`Ń߳¶u¡uÖô ß¿BŽ·Ø­Vø<mÆ<e‰{¦Ôa:cÄÉÛðòèbR=­ÏÏyŽçë]Œ;¦¥éÏ÷~[”ñ °Uõ²Ú† ©wëu¶}:q-@WMñå2œÊÃn—¯>\ÓréVÁ¾ôÃ5ý¼¦)“i"žù pÏtæ{ÂÀäÏ¥xîJ
-ö1ßBPp\ýµøÝáÁZ¦cÉúµ¹Ú©è‰öc›åeôØPðõ¹¨võêi»Èø°U„ o“ÕuìÍ̓Z—Ãi¡¿XÄÆ}ÞMi¦P«»[æC¨§î¤Ö›v°Ö‰²°X½ÿ¸‡Vï7û%åú°Îý4[ÅÂzœÂÿÊg† diA)ëAÝB|p94¤.S C°¢ìUá1ŽaôÍO¬«g4N¼Õ‘‡cœú0W+UjHmø(bãÿüÑîþûd•µ'ü:
-ODw(ºgg,Øö±ìÿÐÀ ˆendstream
-endobj
2591 0 obj <<
-/Type /Page
-/Contents 2592 0 R
-/Resources 2590 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 2572 0 R
+/D [2584 0 R /XYZ 56.6929 420.2778 null]
+>> endobj
+2592 0 obj <<
+/D [2584 0 R /XYZ 56.6929 287.6148 null]
>> endobj
2593 0 obj <<
-/D [2591 0 R /XYZ 85.0394 794.5015 null]
+/D [2584 0 R /XYZ 56.6929 199.8075 null]
>> endobj
-2590 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F55 1336 0 R >>
+2583 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F39 1178 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2596 0 obj <<
-/Length 3487
+/Length 3585
/Filter /FlateDecode
>>
stream
-xڥ˒ã6îÞ_á[ÔU±">ôànía’™¤&ÉöÌNwj·6ÉAmÉmelÉ1åéq¾~”%Yr'µåƒ)!OBbÁO,â$LŒ4‹Ôè0ŽD¼Xín¢ÅÌ}w#gé‘–}¬¯n¾úV¥ šD&‹‡uVFY&ÅÏÁסˆÂ[ ¯ïîïß|³¼ûÝÝßݽ¹]ŠLŠ4xõþý›»×oÿs»”qø€EÁ?_ÝýôêG‚½¿52xõÝ›ûÛ_¾¿yóÐqÖç^D
-Ùúýæç_£E/ñýM*“Å‹gxˆBaŒ\ìnt¬ÂX+å!Û›û›u{³né¤4à…¤Jä„8¤ì‰#alL¼Hc&J*'Žòó¾:ÜŠ,(-¼[&‚|Ý–¶›’«ÓjËê†éOùöK|Ì‚ªe0¯&Rm^Õe‚Ó‘
-Þ™ÃseË™%«¦¶UQÒÊ‚wnèÿ‘wu\Võ=Ù¦©1äug
-š8–î­ÜpPÏÕvK#G þi›ý6_!ƒ~iÒ¥•øΨ (×ùqÛâƒô@¸
-¢~õ­}›‰C“ œvÔÅ©â@›â(ÔZgŒØLÑBLfÅ1:G-‘¡ß3÷ï‹ Û}¹ª~‰"Y_ò²þ 0‘jÁ+‹ÚÚrµD±ýr¹Mš† ø1ã?•uyÈ[§ùÉHÜ–ÕnòÖ t©@I d‚=3«Ò
-#X6äÐù*%â€Y€±v:ƒ°ÖO:.iÎY…¢ImKÚt𾱶zÜ–„DÄ,áõta$3©“0M"ɲøEJÝ–Ÿ[üŸ0< ‚3Þî~‰âˆÝ+ ïDž|làÞ[éÞ&‡üyn4Á—üàRË$zdµ|L4û¶jj{ØþPíòCµ=1L².\d‚'§ø&!…ç£õ3dò0(Nu¾«Vô€NÅc øyÛ09ô/<bŠÅq·§IàÝØØŸÓñ¡µ§dršœ <ÖM½Äƒ '¯8†@‹™ü
-™$î(éÔ“Ô©Išå
-¬ºŒ+0_Y{ôdNŒ´
-\¹‡xòøßzÞ-! tKpì)$©çꟉPõóÕÿÒ@öE£º}ÒDzÜÏè ½±9ß o¦®÷´„d1‹{Õ?æI.GšÙ"†”'ëpúNA˜PÅ©êQ=ÖÕgŒrsD£ÐDYÖ¿Xèk†ï”†P‘I5©iÙǺÔTGßaM‰u ‚Bnq}÷kbû
-â%göÝøª»KŠj=Nœ~^ sbƒó
-4èºØzXWÄæ±fõexG—™ä: ÖÃ;:0ó42C&Þöû¿ 1Ž”]üðí74&“œ¾Aê±ÙA¿²³Â•Y®$».ÛÒ¼h=ÒœÍ +Ã8ÊôÕí;¤Ëýb%ñ§îË¿,KŸ…t+ú“ÍÚ/†Œ»ðeZåú3.¡Ù7«Ílˆ’àu´Ž²ë!ª5¢:,¢šéäCé´+ÕSU_æÀ
-\Vœ]g­Ãšàm˜da†iÇ€¹/H¾JA1:f85|»yA/gt]±áO¢½¤Þ]zö2ÍÜÚãn.Ñìhx¾æÎOfadTòÂùõ°®œŸÇrç÷î¥*Þ+=¡…Ä×ì°&8œb¬Ð²!‹ÔCH£s!”4¦þºÄ&ý1 ¢¿R†¼ÃÕ@©8¯éª 4òéFó½fC·«¥¥WÒ3îH]¦×{B%sM‡‰l#
-c9è5¬Ûíñ$ŒÏÝÔçDÏ›ŠjëŒÔ|/C„R›Œ®aª»¥=VmþHzžù’Èß26«Òú˜ÑMJLw2‡šœÀ€TûÖ~I)·IB)#1j\N¦F2
-“D¨?ÕnQ ™ŽÀÃLK…"1#rÿ¸›!¨T9ZEª…ö"UxÛ6þEù¯pÀ%¶û8þsú{¬êüp¢q§Þ4&Š‡| [„m¾‡r OS²øcbíÛÙ貊±˜®EN)ó¨'%þœtT˜ Ó•&ý⛶äëTO—°!],ÝÁ5“;ÌÞþ™fØŪ”mûot‰Pñ‚;ªx§ˆ»ÌÝŽL'=;håûI0ûXö[ÍyÁPîLc‹šútüz%=óO‘aÂf¼QéLþ>¼A»F1ŽMý°³ò×oÃuîק>t[æ¾q¬„‘Eô¿©ž6ƒ«”.žv_ž Øš^Ruƒ §«Ñ«5½:,½öã-“Gú–ibËÁ§"ŒÒl´åO(0et°·å±h–t 8(ò6§Égº}ãî*Y­ñ—^ÜgÅâV+îô*îî"Ö:·m×CÑ
-ŒÝ6À kWÄ4ðØ}Q8tïŠSœ’#>Ÿ=]å
- ãzس/SéØÇ“NSß~NÕ¹9
-»üD§[0y´åú®|KôÖˆÐk‚ÉÁu7`ù3Ì8Mƒ¿ÐßcjŠ'{Þ³͈˜•º ÞV»ª½ò-†‰!|dòº&öæÑ#9=|?§‡×öëÔðb¿)-ìï÷º²>
+xÚÅZM{㶾ûWèi{Ÿ¬P|’@rrÖn²Ù]ïvåm’&9ÐeñY‰TEj÷×wP¤DÉÛôPû@h0ÀÌ; qø#kWNR§™áÂŒfë >z€¾ï.Dà™D¦I—ëÛ»‹¿þM¥#Ç\"“ÑÝ¢3–eÜZ1º›ÿ2¾zÿþæöúÕO—iøø[v91œß^Ý~¼zC´÷—NŽ¯¾»™^N„•"&Á‘/áãëÛéôæådúê»Û¾»½¹üí›»V²®ô‚+ë_¿üÆGsXÄœ)gÍè~p&œ“£õ…6Š­T¤¬.¦oìôúW‡vCËŒÔÉhÌJ 7¼gœq{0Iµ`"qI»gR íYäÂ=›\.Ô%,1&u;š22 L);S
+.X¢Òþ”ïvÍf×\N”MÇU¹z–7˪Ή¸½vœÏ*ÿœ­yÚä5qf»¦ZgM1ËVôr:^geöÖû'\ÒÁâeÊYÊAîe˜—uÏ&uñPþ»*óðBWôT³Ä9ø_\N´”ã‚å -)´>|
+“7‚‡#ï¬À’óóEžãùºš ‘“MÓþ|ßå%ªYNŽözJÏc¸§ç5 {gËb5§&"kpÒ­º ÀÈ—ÙºbðÄÍd©K%¸Ò©†RL*ý*ëðPÚ€ó‡µF?‡°ï¹ßü^ÔÁËÀªÎ,Ù‚²®VÔºve“ ×}¤—×Õgtl'ôŤ–‰Q_«/¦Óú™¼¾¼Mˆ3MÜÆy±Íg`œOG° þK¹$9+YËt,Z4MÊTj{¢½FhÜ…ÝÙTub| DëÆÓM>+#£ˆJ§àÅõ$o”P/'l-‰N°
+â©ê
+Õ2KÕ(³¢¼®Xw—.m†`.E÷
+ßJ€´lÙ<²„•$Æ=côûÈ¡Zt¥o§´Ášé¼:t¸ÎèCäò
+Q™?Ù&n› jë±€!u’ž¯å¯§ ¬Cv‹³w`>.4æ¤*\…“ľb:}äØáW㇠^קâÔ<rÛH¼Â:¼ú9[sïL
+‡•qŸ…¸.×iˆk¹<Äå×BˆÓ–æÃ
+¨â6é–~îQhTqÑo9ŠâZ 5÷‹r-껎÷
+ï Q_(é©pšiktCB¦Ç†,#TIÈ/X gJˆ˜S­wõAÝN/–P›eVLeÁ„,·ÿ½ žÄ\‰7fÖ>Vv¹NcnËå1÷§!Ì•LÕnÕï EÒ¾ò|d'X¨>+jË5 kw[ `cÜAZÖöÿ‚ÀÞkö×%”=j&tr>~øÐæ@TWÂVÉ•IbŒŠ‰RÝMè꟤üûT*0‘ªÓ82ÏøZ̃â=¶1¥ÎšPÁ ¯”yfJÆÀ¡|[^Çá÷ª*òízUžt`äd\…¾*„ÑÉÑElSØöÀpSÑ. ‰ H÷õiüÕäª$ Ä)Dn™_O_S£B|Ê7Mc“b}
+’¢*~ND³µçtk²"~)A :ÐyÄô9„ÿT*ÝOt˜èc„pYĪé`ôœB Ó^³±,JÉãÄñås>þ>ÁÚx~J®â—
+ìÖ
+MºÅÃr¬¿cvƒCßFÀI.‡Oö°"cA3¥ë¦-0‘Ó¼Õ°BFÅÿÓäOCö¾ZÉŽX¬®=®Û¯TT+Çã¶hšö*Þì+˜_%'"ü`žÅ©|ÕÚïÀ‹Î%T
+7Xñà÷¬m]h5ýÂ÷¯ã-v«>O›1OYâž)u˜Îq`ò6¼<º‡TOëóóEžãùzãŽiiúó½ßeüB lU½¬¶aCêÝzmŸN\ ÐUS|¹ ç@‡ò°[çeçë…×´ƒ\ºU°/ýpM?¯iÊdšˆg>(Ü3ùž00ùs)ž»’‚}Ì·Wç@-~wxF°–éX²~m.v*z¢ýØfy=6|}.ª]½zšDãÃ.2>l!ÃÛdu{³@ó`„–ÄåpZè/±qŸw“Gš)Ôêî–ùªÀ©;©õÀ¦¬u¢,,Vï?î¡ÕÆûÍ~I¹>¬s?ÍV±°§ð¿²À™…!(YZPÊzP7‡\ é†KçÔ¬({UxŒc}óëêouäáǧ>ÌUàJ•R>ŠØø?´»ÿ>ÂAeí ¿
endobj
2595 0 obj <<
/Type /Page
/Contents 2596 0 R
/Resources 2594 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2572 0 R
+/Parent 2576 0 R
>> endobj
2597 0 obj <<
-/D [2595 0 R /XYZ 56.6929 794.5015 null]
+/D [2595 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2594 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F21 950 0 R /F55 1336 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2600 0 obj <<
-/Length 3141
+/Length 3487
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ6òÝ¿Bo•g,HöžÒÖͤ×sr±;½»¶´DÙœH¤*Rv|¿þv± ”H¥io<c‚À»Øï]JÎüÉYj"¡³x–dqd„4³åöBÌ`íÍ…d˜…Z„PßÜ]¼ú^'³,ʬ²³»upV‰4•³»Õ/ó×ïß_ß|÷ö_— eÄü›èra„˜ÿãõÍO¯¤¹÷—™š¿~s}{¹©’
-ø™·b1seíÞê-½},^:nå-ªšž›ºz(ö4.>•MëÄ2Ng ¥ ÊἩ÷Û|³y¹”Rί`G’Ο I¢æ9=vDÆSYšÍË¢“u¢½:
-mL Iš¢K}` Òª>‰Üªh€™‹ØšùÛõ`'@îŠ}ªüÀ½4m±¥¥UíñTuKËä÷ê§rÅÛóýÓÆ€(¯¯€[¯œ¾/
-p8OÓõ3#ki½³ E¾
-úÊ+òbJW‹sZ–Í $‚Ð[ø•·
-O8#­ÌKKf):…Ç9nhÔÎ ¯ó¸ê8-Pç¡®niìøáÜ‹^Ýe
-ÿÂÅ"Ïêô/78áœp=˜.dó¢D2¡ô£×š§©¨È¤—9ΪΠ`JÝíà«bS V”bë°Sƒ':3Ö¾‹„3eu„”5"V‰ŸãƒæCoÞÝMËòÈ;úÀþ‡Åu*À‘_Àó|ºVù|v3Œ' -l¤¬ŒÏ!ÔtaÐA¹Âàn¤!U틤¶Ýœ("”QñëótuP#„ ´M‰(Ö)´"”¦æ <îî~¤<]©}5‰#ÊX´o$ÂL×ÞÒÇýL>¼Üîê}ë(+8IXw :=h;†
-—Ö7·aÄ• Oƒ©¡Vžè/
-_ÒQñzâ¢!\ùã«eAÃNâ0>•8L­`K\ÇA ðv˜}ž NlPBzYcÛÀÆê(Guõ¥ÌRç¶ðIE%Ž–yŽÞeoyŠÂV:Ï7MÍA)ä¨Yûs
- ·cðR1Rþ”°p_%÷qÖ3Ç' B¤žBº)›€;zW|B– šGÍÏ¥+¶âÌ]FdqvŒî+r‚dØ°ìô¶¡ñ3µèatϧPJg¢ðôeyìÂùö*pß0åªdx’Û…A½î`¢yßQë¿‘Bá´¢óNIoš8Ç®*¥a*ìümEì80YpF:ÚúÃrz[Öø].ê¾hŸ©Lëq$=×4©™{^-u=«‰o]Ãjÿº’ö4s™ Q
-’™ju>D…PÓ!ªƒræßžô®dd“8>Ò ô®ld ”k”ï÷eå{x-ä.`6Kæoü-ëí³—ºšäˆLt”êÏ4ó i~x ÇŽÃT+ï¾®“w‚o¬‘âûiGIº6v~s{ýí+ü§ñ=Á.±KÄŒ÷ñ8boÓ¹zÌiiøQ“æü—M£¬waU6ÿùÒ˜¹û¼…@-‡Ëá#bªéØ  ¡Ö¨>Ôr÷Û#H0ÃÞ‚F˼¢kK§m>cNÚÒ5œp}kÞ£1É”œÃ¦Ò‘ú¶Ž¦ÑéQ|ñ9ƨFÜ) ¹­C‹9nMO. ŒVàô€ÏkŽ î3Lïò}¾ÅÖvÄL,;c¦S‰Íˆ‡Ù|ڟծɗôg3Ó}c!‡Ž(ú¤üé&UQ&ÓxÂ7õÑË™i9»èRo¯yÓv)’ÈB¦öà  ÎX¦‡r¦ù4–LËHljÿ°ošN+È{(ËÎRÖA6ÈŒ´Œ”±CÒn‹¶9ªYVÅýáá¡ã¨£lúG ඟûÍGtæ' äöéÄ—éHƒ"œÅçaNñ |Yi™™¾w•ó:ÏR §¥ÿS>!±ûNëlV0 ñ3ðjnüÆÔ…ÖÜÂÄéz[¶=–ðW x^ŠÚÌñ¡/ô]5îb†®
+xڥ˒ã6îÞ_á[ÔU±">ôànía’™¤&ÉöÌNwj·6ÉAmÉmelÉ1åéq¾~”%Yr'µåƒ)!OBbÁO,â$LŒ4‹Ôè0ŽD¼Xín¢ÅÌ}w#gé‘–}¬¯n¾úV¥ šD&‹‡uVFY&ÅÏÁסˆÂ[ ¯ïîïß|³¼ûÝÝßݽ¹]ŠLŠ4xõþý›»×oÿs»”qø€EÁ?_ÝýôêG‚½¿52xõÝ›ûÛ_¾¿yóÐqÖç^D
+Ùúýæç_£E/ñýM*“Å‹gxˆBaŒ\ìnt¬ÂX+å!Û›û›u{³né¤4à…¤Jä„8¤ì‰#alL¼Hc&J*'Žòó¾:ÜŠ,(-¼[&‚|Ý–¶›’«ÓjËê†éOùöK|Ì‚ªe0¯&Rm^Õe‚Ó‘
+Þ™ÃseË™%«¦¶UQÒÊ‚wnèÿ‘wu\Võ=Ù¦©1äug
+š8–î­ÜpPÏÕvK#G þi›ý6_!ƒ~iÒ¥•øΨ (×ùqÛâƒô@¸
+¢~õ­}›‰C“ œvÔÅ©â@›â(ÔZgŒØLÑBLfÅ1:G-‘¡ß3÷ï‹ Û}¹ª~‰"Y_ò²þ 0‘jÁ+‹ÚÚrµD±ýr¹Mš† ø1ã?•uyÈ[§ùÉHÜ–ÕnòÖ t©@I d‚=3«Ò
+ˆàŒK~p©e
+=²Ú‡ >&š}[55=l¨vù¡Úž &Y.2Á“S|“ŽÂóÑú2y§:ßU+z@§â1Pü¼‡m˜ú1Åâ¸ÛÓŠ$ðnlìÏéøÐÚS29MÎë¦^âAÐ“× C ÅÀL~
+ƒG&Û1˜Ûøª¡!çƒ ) "ƒhà<¬hIÂñ†qÑøíê¦ò/»ü#Ûþî¸ÚÐÈ–µe ‰ø’g1À‰vÖGÄ& ³Ø¤×}DkÞGtXÎGü6é#„ŒSVÃߪ¶¥@;ð‘
+hÀÅVÅÁó¡¢ÊJA"̇
+M”eý‹…¾@`HðÞAi™T“Jà‘–}¬KMõwôÖ”X*(è¶×wï°&¶¨ ^rfÑhÿׯº»„¡¨Öã„Áéçµ€1'68¡@ƒ®‹­‡uElkV_†wt`p™I®³ÐaMð0¼£3O#3dâm?±ÿ ãHÙEÁß~Ca2É餛äð+;+\™eàJ²ë²í!Í‹Ö#ÍÙÌP°2Œ£L_ݾCºÜ V:`à¾ü˲ôYH·¢?Ù¬ýbȸ _¦U®?ãš}³Ú̆( ^Gë(»¢úXó!ªÃr!ª™N>”N»ÒøP=Uõe¬ÀeÅÙuÖ:¬ Þ†ùGf˜v ˜{ð‚ä«£c†S÷ë‘×ôrFgÑþ$ÚKêÝ¥g/ÓÌ­=îæÍŽ†çkîüdFF%/œ_ëÊùy,w~ï^J1 â½ÒCÐZH|Ák‚ÃÁ)Æ
+ )²H=„4:÷RAIcê¯{`@lÒØ"ú+eÈ;\ ”Šóš®
+J#Ÿn$0ßk6t»ZZz%ÝH1ãŽÔeºq½ç T2×t˜È6¢0–ƒ^Ãú¸ÝÎOÂøÜý@}ND𼩨¶ÎXAMÀWñ
+¦º[z
endobj
2599 0 obj <<
/Type /Page
/Contents 2600 0 R
/Resources 2598 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2572 0 R
+/Parent 2576 0 R
>> endobj
2601 0 obj <<
-/D [2599 0 R /XYZ 85.0394 794.5015 null]
+/D [2599 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2598 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F41 1233 0 R /F55 1336 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2604 0 obj <<
-/Length 2361
+/Length 3126
/Filter /FlateDecode
>>
stream
-xÚ¥ËrãÆñ®¯àŪ,Læ  |â®èµ¼»’"jËNl $‘%E ¥•¿>Ýó
-·”ÛâiSVeåp_VÙÖBÛÚ"7å²ržp¿*»9ÏvMÑ´4#KnYäö Pjº·s‹ÝËÖkTÓˆ1’©Q@ª7òXYæV¦¼¹
-FBÎvy¶-¢ùª˜¾6_íѪþÁ횊QJâXrwôϺrÌÖÛ­aXªD#Þ …f^-6«lª=$$(¸ŽÐŽ™ÙA¬9‡Ö‰$š*yÚë»Xǽ¾Å2^/,cJõ4@â$UŽ±&[o‡|¥ B•'§ùòH¾ºjH5±d}¾>Uñ&¯‹“qVÙï5¤2`<ž¯²Ò­¾”Û•…Œ_!°,Ÿ ·»*¾ÙE5¯sãã°ŠB¯éTŽ'v;Ïw :ŸÓŠèš‹£L Õ2† ’2*’±©¹tîex(,=AÇ x2†T$”"”ÂÙ^P•U^Î&0+oM„#TÕökø0 Äq;„M-­~Mæ°÷:d§bŠÉQ—”Œ0&ßrÉÖ —ôXÆ%
-¹$ÖšØiµÜÞëª2Ç ¦T¬’ÓܵXöz™@(¢TÌúüýrT‰YÖáEk¯loªMV½:ãU­Pà—‚a¾vèy±ÈvC#c?fš‚x‰~Ã2¬–ñXÆ2“ƒ“X3qš¤G
-ìj;æ²®î“tÊNE_ÙКdnÝ+–\NÀU(%°Ž ›7·÷X–n¾ÜÛ _cq¯v§°º /5‡Xåv7¯í‚-r{6MM%$Qq?œ;¾qx3,.ê'ïM1ßùöÀúÁºXzÁë)\ ºJ¨ÕÕ—Æ)§õ0€Ú¢…«/åÜhƒ™Wž³1)È… 7Ù5?ã1°®pÑd*”1IOz©ÎÙ=U磰@_û´£}6®¸µ°V~
-MOØ€æ챘[7Ôºu4
-F¥ –
-êSÉÆ×ao“¾÷ÅšÄ\y…DË!°ÃŒ{v8ÔlĘÁ.û­îw0ºƒä.È0S؈ÆE f¿µývÝÁžê»ˆYû ÙOÂVgGb1„Ú¿–Ø#”Ø¿ 'H+_l_û Ÿ³‡úÚu÷Ÿ£sÐ|šÂ¤šÈ~jtH8Ž K¹7ÃÜú¤ºfPqö ßÀBZPI ¿Ž’˜æ%ÿø…#o‚ƒþ®mO@r×D†JÊ =@.\ñ­æÞ{}ý̆}a³Q7mÝãb_gÒv$2z cµÓC[l¬,Ä…&Ã:(Dߟ½à­iñ?{F¾¢ØÃ!¹žÖÂ^Bîë¬užà‚ì €4k_¤ï¬YÛ‘4×Å!áý$
-³wÓì6Cç¶&vÚ¥u %‚A€¸0 …´w»P´ãñD2ù“È_˼—zí·V³éÔjkòivsªÁb‡Ýæè¬Ë"ífaFdû\ùîêúÒ’Iµ^h¶Ðüø¶ð®_vésVí²u(Ê¡ë‚@ðOÜ!úØ41Ÿî~|oo”TˆÀ}’.k“F°3M1ó~W}“/÷?Ýܽ­·+|…«
-癳WhD6.#½¯«
-b¹ÛûAL(‚¿bæ7ÚrøÿX¶ÿ]PßIÂÓ ÃÚ3…Â1Í^J8Hàý¿Öháendstream
+xÚ½ÙrÛFò]_Á·@U"<'Ž¼9±œrÅ1•ÊnŽ„$”I€!@ÉÞ¯ßîéž!@‚Lìlm©JÌôtÏôÝ Ê™€?9Ël,tnfinb+¤•ë 1{€µo.$ÃÌ=Ð|õÕíÅ‹×:åqž¨dv{?À•Å"Ëäìvù[ôòíÛë›Woþu9WVD_Å—s+DôÃË›Ÿ_~Oso/s½üæzq9—™’)
+Çúóâ·?Äl —øöBÄ:Ïìì^D,ó\ÍÖÆêØ­ýÌêbqñS@8Xu[§¸auÛL¥ìPjÀ)`l’Yjó8ÑJ;vü§m*ºv±½”YÄ/]ýÐTKß}¤gÿè!Wí¶î×À-EtûXw´ÒnúºmÅûzÓ…ïí«®ïâ#¾‰XXPªòXeVNKæC(º¦œ’º‡ÂkÎ:$™'qbmzž¤š 9欎¦c’ïªuû4`gÑïˆÃÌ”{÷Ö®éí}õ10«è'$Ò´ô\µÍCµe€²¯Ÿ*ÇÍYk‘Ï@cAQ”;ÀM»]«ÕÇK)et;Ò,z~¬P<©Š
+zlˆÆSÝîºÕÇy{ª½j
+L8lÛËÔxòE³Qsúîúß´‹R¶î¹twpçÖÒ…M0λÊÝ"÷›ÑKZ"
+0 •Íª(ýÒ3¨,í*h¢©ži
+aÒü¬²FÈa«>”Õ¦gr=Í5ßÔÄ©ÒŸd¾I ꛻СƒOG>ñ|Æû²?O‡þ<A>“ §:Ö)$e#÷Ü×bÄý¹±9óW‚Áâ‹3Xlž{ƒÅEr¦ˆõØ`qz`°øŠ‹O2X@Å«¥þkƒUcƒ}ÕÂEXËCÒÔ¯!‡ÄEò0ŸeÑÖd±Tž·é!Ôi«PN+·¤‰@BœiËú±…Ä¡]/«§Ã³½ÄVáž=\€š8Ý8ZA>/”o±©Êúw!i„ô²†Ü¡Ý±EЂ‹¬ð¤ã6Uסj%6zs?Ú ›j[ô¬=€èc×WkZZ¶žNÓö´Ì:õT/y{1aêÚB¬ÍC@|ÜzA¦
+mŠµŸ>hyìÛ$õ=£Ú°ÏÜlkPÑ8ØÌ>µú…ŠmåÌSmb¼SÞnàâ»ÆMåuÕCÎEYº‰ÖPÝ‘%ãŠßV}(Ö5ÕéŠìW—8œ§éÇö™‰õ´ìB‘/À'ÚÓ/J_{ϧƒÀPϺÀ›{ ïÏaÝ)ä6ì)®‹’3ünWBb×Õ>åe@ÆV¼÷f Åö'œ :
+2~}þ\jâ`#mS"6"IÆ'µ"”¦o%ð¸½ýžNðt¤öÕ$Ž(cÑþ»ŠÞwûq<þ¼ÃÈëõ¦ÝöAÝxä$a¾WèÑW˜!
endobj
2603 0 obj <<
/Type /Page
/Contents 2604 0 R
/Resources 2602 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2609 0 R
+/Parent 2576 0 R
>> endobj
2605 0 obj <<
-/D [2603 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-2606 0 obj <<
-/D [2603 0 R /XYZ 56.6929 430.5757 null]
->> endobj
-2607 0 obj <<
-/D [2603 0 R /XYZ 56.6929 152.6716 null]
->> endobj
-2608 0 obj <<
-/D [2603 0 R /XYZ 56.6929 84.6865 null]
+/D [2603 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2602 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F55 1336 0 R /F53 1328 0 R /F41 1233 0 R /F48 1253 0 R /F39 1173 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2612 0 obj <<
-/Length 2351
+2608 0 obj <<
+/Length 2663
/Filter /FlateDecode
>>
stream
-xÚ­Y[sÛ¶~÷¯Ð#=¢Ä—é“Ó(7­ãc¹§§“ä– ™ŠTEÊŽóëÏ @¤É™9g<c.Á%v±—ow):IàNrI^ˆIV"*'óõE2YÁ³_/¨å‰S<äz{ñÓ{žM
-R¤,Ü/{å$És:¹_|Š®no§7ï®ÿs3™DoÉe,“$úãêæÏ«ßqíö²`ÑÕ¯ÓÜ&I’¥š/M¢w7³Ùô—øßÓ»ë÷_~¹ÿíbzïõêN®•úçâÓ—d²€#üv‘^ärò 7 ¡EÁ&ë !9‘‚s·R_Ì.þå7<5¯†l!yNdβ€1PA¸HÙȲ ,Ϙ±†>ÚeLá˜Ñ¢é:5ŸÔ¶Z¾è£Áþ1—„KnXoʵÒË°/˜XAx&…áïbìù™± )´ÒßÛF!¥y?' ›—}Õ6¸Ö·mm…Á!()¤dVOIZÈÌH›½4í¦«ºCO¤`N6I9#ŒÉ4d9
-g` u±„$B&na¬*h Ä<WÀ)÷S<Çã€1÷oÓ$#²H%ˆÔïÍë²ëm$ì›çYa¹¾¸§Á_y*݆ªYU
-ì8fó;^¿ºcÕlv}¼l·ë²ì›Q’qz¸mûê¶í¶M\ѧÀŽœ¤ðoû€wjõ¤ê7ê7O}·”ÔeU«P8ÆRH»t•ï¦³_î®oï¯?Þø—Æ #AÑL‚å8¿àP<qjºTQ¤‰Qÿn
-ä
-ãô †ŠQ*óü¼fž+ Ú0®(Œ ë6Û¨ù>†î
-J8§ù+p1¨ã2½´ iÎOÁÖȬiJ Ðçõó\Gfk
-ñ6Òð^ÜY€Æzz­w–ø óX/jgÔÊ´)"ºm»®z¨2áfò¹48&R’¥ ³¶€r,zõ­××
-ÁRˆÈ”ŽÑâþÑ Y!£vcûƒÂ¢\7Ûj]n+ƒpz¹éU³0w}«¯iô ð~×¹'T@,^šr]ÍñÆãc@jet­Ý1ª°3¯ïÖ|#E—Ù¶ @­ µ'ã¤3h ·MÛÄÚ¸èbC?™·MW5+|¶Û,ÊÞ(¤– æ`ðÔ—……³Pmˆ¦ËPJÁÄ1Ï2ŒCͦÀWM
-ÃBfÊšyttÅ¢u¨Ð´­×åW›úë©#@uªéì"ÚÙ¼ÐÄ{[[¤èNBGè …<C®ÓPá¹ T´!ì…L?êEF(¡< A|V5ÏÐm ¾À=ÀÓH¹û!ŒZ„5ÊhïÑ$º^X¿óh½xs€ÄîÖOƒ´íÌ]h]¹rÚu»µre¹Åëƒ:ØÃéuÊú" øyÿ ¸ÎøÏqÿ=½ê?ßðkgJXÚYÍ<W@µ±û(ÑÍþHµ™êkæB=ìV+Lb¸5š¶™žÕrh–ÎÛlÀuÆfŽËØìۡȺ2ð{V¤c
-ˆÚfkN 9ù±ÁžSD~|ЭÚFR I>l$±y僎UDÏК"õU½Äú Ø`¡Ó9’äÑ_—Ê@ÿØî¼(·D;/WolK;’$|Øk؃x‚ÃÉ1ø¡òœ2W¯¹W^/Zå5ù\Õ5R–Ñì½àµtL弯ž,£=ˆ(²è¯GÕ8yU‡ž
-¥¶¦w@¬.¢j‰WÆÅÞIiâ¤ù:¼Z8*öÞúá¯l΂ç,ž»Ú‹óuPݦmvѧpÓÄáhÁÎôWd凉*ˆä™cT¶˜0ÿTìfÐQRÝOŠv^ÓGrÿ@h& ƒ*Ä°¹ å;94ê¯ÍC®Óù%¾ŸÊ÷³"}¾‹ åûHäõªiÝÆ…E@M|˜}@‡.к‰qé@ê£^hììÕvm[ û^ؼje tØê«¥¹n~̦î¡ód„g²Ýä{Å6ÆyäžùZ©o,@Jycpáò‘c¿fÞËnŠñ©ýjJ8Õ:U/c|‘zA+ 4ñ^Ó@‚cÊn@/üÔÔpê×·ÍbÜí
-Lùé] I`hòøà˜‘Äsk
-p1h°=œøéB÷Òà@°ÅÒÚ®éC-¨åôÙÃü°æsØæÆ8[Òžøír"’ãÖÅ‚î|¥ïåþÝLZ€e9ž®´XÝ€BUÿÙUþDæ-—¹1kîlð‘Åî9ˆýØÚ ¨»âöªUÙõN¾}v@‹Ã‰ùª¥§‚7¸‚[¬p‚\ÔJ÷z½½¤ÑIŒ6 0ÚßçÐ]ÉÞLP |ÅäƒÞÇæ-c>–ô²Í fó‚ ê¤^{Ák
-胃ã8 (‚UΘ]¯øJÝ™nX/ ÂÝpÀÝ@^5óz·PÝáË# ¢ Ÿõaýè.¼
-(I¨àçe{®€ð‘™$…þ¸8’á°5ïóÙáèåjXè+´H€Ö¾G¿L§øæÕï³'~¸9þíü¨?üäú“Ï|•C3ç$/|¸¼½¾y‡’
-+p¡ëv×oËÞ…öò¸>·ú£lve
-Æ4',„ÆíC
-ˆhê¾»÷ö;±H8ì'`Xþ‹9õ«—DÿÔˆ€ÄûþEoÿÓ¥È`\ÊO„O`˜âuJiÅiÊU÷¿ýëþ_& +¸endstream
+xÚ­Z[wÛ6~÷¯ÐKÏʧ–
+Žb²
+NA¶ywñOþ\ç ½w±“wù³w07qΧùsý
+~I>ÍÊMW»¢é¸dÍžœ³¦ýní¯jG8£MaG{è> ŒÅ/‘Š®m¬âÑùg]ìŠmöàιêÎû0ˆSÅ" ¦Ä0<P»»ú®²&ÂåÏyý·@Ls‘2£…rØÈ·ô”7œ\e€³Vp$ÜgÒ*°¿Œà|¥Ï ôåG]3VLðä…hîSpMOe]ó÷£®yŠeçš,ƒ®Ùgy¹.+òô&9}·x‡ƒ<’Ùš&Ѽø„³¢—”
+i
+°ô ‚AÒÕC–ÎÖ©Ú:½ÌÍ{[Ôo`Ö"9_ÃËŸ®±*}ürM/|‰Åw•[…Åm¼é¨¦9B„}øvUÑÕ¸NL[’& ˆ2ÃZÐsÃaò¶zðh
+0ÚÞ£òƒm¾ö.‚ÛG°uhR,ný¥vÆi,í4œ}*–Öܦ¸,Ë™kúb>À{D׶ÍæóP„EŠdé,›ýCY{9r ­õ¬Ï§u¯ô‚ô‡;‹3!@Ìàr¯)D×íÞ­±yÎæTx jÙèöõ ñ –Lhã!ÀlRJ}¬¼ú} ìóﮂÎüùtjðy¹XnhxOú>Õ¾ö¨|“¹ü=0#æ~LGÒ@kL^/äç>Õñ4ÐRy@ç'¶ù*€¹Lzšµ'
+° ÃtœŠ!ë6':þdǪÄ[…ÃRÖµ)㊈x6_7Vú$}Ét=ª¦óT(?bøO#™Œ¢xz¢
+…lðÏÅ}¾$7Ôºu4ÊÇQ½©öÛ­…àé0ƒv8©l`g6Ž ŒÕJ%ÓË[š*«ñîY›Ãp/_aQ4ö´ì¶f¸­×Þ9¹0žÁÜŒ‚9ÿšAdÅ•>ˆ´k-d(ÕRÒû‹lý_Ýç_Q±(&Å`
+¨jG×ió·Õ¾t¬3?
+’t”x<Žnp¿Íl@'zt¡ýM2o¼PosØŽ¾¨¯ˆòæ9Ðûq¼HÒtxÇ[¬ó2 Ï ¤a*‰Óá¡c]~×Ó„} …ò[nDl°Àb'/ôôun;x¼WåGú_žF€X}ýZït˜î µ¯_Rˆ)]
+ 58¸É醸¡£àÝWì¼_£5ÿâÖ¸»íl·OËݾå@bð‰dÑ(žwY X¸Å ”çíØ·eƒR­
+5ÖDrt;ófqw.=@ñ¡ØÝWM›Ú L—Jv¾û3zŸÑÌå 2[‡¦œÃ¡eàB –ˆxu¿Î4Œ°“ÀŒž=ûî@«†.bç~á2%á#±8$Ïc1B„ß„d_¿ËaÂçÓì¦zÄ‹gúåø„>פ)ãøQå|­á©ðÇ°$߀T7þ|Ð¾Ñ iÅÀ$&~=#$8Vè—üݶ¼mŽð] O@s ìHo’O‹¤o¿ƒ-½÷úú™qaÝ€ª»¶ŠvtÇË™Tn²AÇò6Tltm±!]˜ M蚤–rxÞ^ñöhñ‡èàr¯3zqØ$p‡iiì5¾¾Á\ïA ¿ âŠkïi‘X2‡âq׉Bï]×û]عÇHû.¡DÀò>ÒÞíBшñ“Éä¿L"F> ¬ÈC+ú"¼¸¸ kÍß/>¾ °èst‚ Öå ™¿?ÇímåëË«7Ä&uÜVøu¡n
endobj
-2611 0 obj <<
+2607 0 obj <<
/Type /Page
-/Contents 2612 0 R
-/Resources 2610 0 R
+/Contents 2608 0 R
+/Resources 2606 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2609 0 R
+/Parent 2612 0 R
>> endobj
-2613 0 obj <<
-/D [2611 0 R /XYZ 85.0394 794.5015 null]
+2609 0 obj <<
+/D [2607 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-886 0 obj <<
-/D [2611 0 R /XYZ 85.0394 769.5949 null]
+2610 0 obj <<
+/D [2607 0 R /XYZ 56.6929 349.1664 null]
>> endobj
-2614 0 obj <<
-/D [2611 0 R /XYZ 85.0394 744.5025 null]
+2611 0 obj <<
+/D [2607 0 R /XYZ 56.6929 83.3187 null]
+>> endobj
+2606 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F63 1385 0 R /F53 1333 0 R /F41 1238 0 R /F48 1258 0 R /F39 1178 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
2615 0 obj <<
-/D [2611 0 R /XYZ 85.0394 712.7073 null]
+/Length 2289
+/Filter /FlateDecode
+>>
+stream
+xÚ­YÝsÛ6÷_¡Gz&d‰/’˜>¥‰Ûss縖z½N’Z‚dN(R);Ê_ ,
+²öô˜Œ@GÇxpʶ|9wHMGá4J+8Í "32D‹Ù“A2)¢vc{iÑ ž›mµ.·•A8½ =Q³0o}«ŸYô¨ð}×¹/T@,öM¹®æøâñQ"Ú3ºÖŠCŒ’Öcfûn½ÁºÌöLxbM¨<9C Í©AkxmÚ&Ö®ÀEú˼mz€¸ªYá·ÝfQöF!ý±l0ƒ¯¾,,Ü1 µÑ†hz° !L³<Ç8Ô`
+ÜjRz43PÖ̃›ØRÕ:ThZ‹Öëò«MýõÎÔ :Õtvíl64ñÁÖ)ºóPí*ͳWâÀt(,“Á‰v x  _ÎN‘D0
+"ø’^žéT±!îæ€ô€L¡f³@-¶M´ßHÝ.ìÞyœ^¼9ÂàF÷èçáÙöã.(®\!íºÝZ¹‚ÜâóQÉpzñ-`ÐÊÅ+U3ä:ï;Ïeœ÷üªó|«7¬š˜Z´‹šy®Õ†Þ#àäl¨ÚTõÇÕr¡w«¦/¼ÍÎÛ ºÈ4çì›\l渌;)¡c
+[o´ÖÎ%þh¡»hp Øbim×ôc7ñGA9}ñ0Ö\cÛÜÇa3Ú'^Ä-øK¦‹Ýó
+ßýŠÃÞ\X€¥‰^®´XÝ€BUÿÚUþׇÜ[.wÖÜyðóŠ•ÄŠþlmÔ£]q²jUv½;ß~;  p†õUKÏopE¬pv\ÔJöz½½&ÑIŒ6 0Ú(;äÐ]c‰Æ n1ù åؼ¥ÔÇ’^¶yAm^РNêµ=>˱08º8€"XåŒÙõŠ¯Ôé†õRøäFñª™×»…êŽ7,ˆý¨/ë‡vî`N C‘%ÕØìŽGmo‡§Ín»i;ÕÙÆßÕÉt¬Nºôñ:I MdQä®N~¯“œ‹bX'q,«ˆœ&üÿ^3ÈK–¾ò»PÀt¾:&÷3£sNF’¤ÖK{¦Ó“ö£"‘@%<Úsá˜5éǧ²ã¡ËU¯3ÿÔb"Ñÿ‰Ñ>õ?{þÏÿð:ügç +Š3ƒ\šIœRÚ $cǪûêþ_°÷endstream
+endobj
+2614 0 obj <<
+/Type /Page
+/Contents 2615 0 R
+/Resources 2613 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 2612 0 R
>> endobj
2616 0 obj <<
-/D [2611 0 R /XYZ 85.0394 647.4522 null]
+/D [2614 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2617 0 obj <<
-/D [2611 0 R /XYZ 85.0394 576.1287 null]
+/D [2614 0 R /XYZ 85.0394 752.3087 null]
+>> endobj
+890 0 obj <<
+/D [2614 0 R /XYZ 85.0394 714.7159 null]
>> endobj
2618 0 obj <<
-/D [2611 0 R /XYZ 85.0394 501.8403 null]
+/D [2614 0 R /XYZ 85.0394 678.7396 null]
>> endobj
2619 0 obj <<
-/D [2611 0 R /XYZ 85.0394 83.5125 null]
+/D [2614 0 R /XYZ 85.0394 647.3277 null]
>> endobj
-2610 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R /F55 1336 0 R /F39 1173 0 R >>
-/ProcSet [ /PDF /Text ]
+2620 0 obj <<
+/D [2614 0 R /XYZ 85.0394 583.3288 null]
+>> endobj
+2621 0 obj <<
+/D [2614 0 R /XYZ 85.0394 513.2613 null]
>> endobj
2622 0 obj <<
-/Length 1956
+/D [2614 0 R /XYZ 85.0394 440.229 null]
+>> endobj
+2613 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2625 0 obj <<
+/Length 2210
/Filter /FlateDecode
>>
stream
-xÚ¥Y[sÛ6~ׯУ<!¸ƒè›ã¸­»­ã•¶3IhŠ²˜J¤—„â8¿~€ ’Ýñƒ
-‰¤¦zª4G1Ͷ<½‡g¿LˆÇÌh>D½YL^ÿÌÔT#-©œ.Vƒ½„“„L˳7ˆPt[àÙõù—oç¿^^üëâÝõÏgs¢ã³ó››Ëë·WŸÍ©À€0Ƴ?ί?œÿîÖnÎ4ÿry{öyñÛärÑi6Ôž`fÕúÏäãg<]Â!~›`Ät"¦0ÁˆhM§Û  ÎXXÙLn'ÿî6<m_²A0¢LÒ”L AZ:âCh$e-翾{op:`OçT"&`Ñâ®J“×en·OÉ·›\TeSÕ¦Ømý6 •#Æ%õûp†¸’´ã˜Æ@i™nóå<[çÙ?YU®ìËÍ$ÂR©} ¸n #¬±³éþF­VŸ(UnÔ>vCxü cz¿«SST¥GÂÊ&wãæ©4é7¶å½›™ªÚôçëYµº$ètºÜ>•ÕCS4û®ÁR‰dS!¤Ö1S8!`ì#vFŠ ƒÁ­™9‰x}‡Š2$ÿóõç0úÚ¾t#ãŽ
-õ»S¬%B€JvßeQ癩ê'+‘¤‚x¤ßuUlr«LñÐIûþ9Æ.ø C ÇrÌòÛËÛ‹÷W7‹«w×Ý[G]7âg{þ”@”1¢½ª-|›123ëÜ‚c¼‚‰ ³»q«eeöqù6-M‘5Z­ èI±‚hàÒËu~z¨ãˆ&²Ónß…íîÞ…ÉÌf+Ag §N÷ UÍ9%I9ÒœñéÜí(}HëƆ #t––~ÐRVWUm¬ådÙ8±Ó¼®ÏH2«êöÌTÍÒMe£Æ¾óX˜µC¥›[r*5nR”Ùf· îžüªsp-gW+÷rY ßõ ¿Eóg…}/_EÜS†¤ÜÓ÷:7ÙkÇC÷dÞ9\°:â(’"*eðþÂ'ÀöøyêsŒ=„ý]æ«t·“´Â›s’ D{7¾®Lþœ”%CV8xSj"þ¢ çqò¼·ŠƒŠA5¿qQºß&s§&w³ÖôÞ¶pp“3­)­;ï²µ¥M„\’(¤x§S].3ôOþQK`ð9\Ý:Xd7j0wE¹´›5±Ý‚ªÎ<Ò뚺Ã:umd:+Hˆœ|dåtgª-PniŽ&+ÚÙÝSÄ
-*ðiK QÇMÑ¡Z[|9°ƒ®FéÓ"("rd è°fc‘­ó²§¾ûz“ö<?÷Œon]òûRíê2øðúÂtY©1Íq2¹­G„?Cæ
-ĺÆD’á­¿/èö##…DÊظ}8F”!M0†ÑÁw*×z¢ÆmûûËŇ÷×Îkþ<#p«;ÿýƒûj|ì‹ùŸJ¨scNÛ„ÚWPßî˜Ôìšq*"cY:ß«ÑØo nP?MŽŽ}gЮ±è}wDþßßËû p…˜­”Q'§JØ»¨ JY‰ä‡!í¿¬êþ_Hcð£endstream
+xÚ¥Y[sÛ¶~÷¯Ð[å™Á…ÁórÆuœÖmcûÄêœÎ$y )Èb"‘ªHú’_ß]\(R‚dg:™‰p±»ØË· ˆ(üc£X™òt”¤‰)‹Gùê„ŽîáÛ/'ÌÑL<ѤOõóôäí{‘ŒR’J.GÓy—"T)6šÎ>&Œ“S`AÇWg.ÞMν8ÿýüúêýé„%LDã³››‹«w—NxLˆ)8»úóì»vsšòñÙ/·§_¦¿\L;ÍúÚ3*P­¿O>}¡£â·JDªâÑ#L(aiÊG«“($Ž„ð+Ë“Û“ÿu {_ÍÖ 5%\H0g#ÆHÇ|`8%Rpaìq{qauöÇí5žvñžé¾ÁÒÈÏʺÖù¤.îËïU©?Ó˜*ø½±[EÚÛªQi¬€…1üåÕ;+)ug«¢,êf“5ÕÆ.}Ôs½9ej¬Ë\Û¥YÙfË€bL*Â¥”Ž}Hˆ¤Š Gðñý¹åQ!ü"Fx3GMÅÀ€AJ)Å$M7´gN½þø²í.ËFoJÝX5nŸëF¯j;9¯ÊºÚ4E»Úʈˆ$w|@;Æ£¨ aV
+QYf+=›ä Ë«rŽ›‘´£"J õÐ-%4Nìv­>sžØ‘ùl‡ðù3¥ü¾¿Ué(aeé<V?—Mö䈑aQÞÛYSUË]©·§ Éç²Z×E½›]‚‘DI1Š©$1W²Á yŒ>§
+I“0è±0™±
+-þgmðøw¦çY»lˆæwN˜‚ªia®jôàœBõmA,eM ZJhÄ^ŽÆ©WÐ+æ¥ý[kpvÖh;3Žwž…c7ú©1ŽÄ`nó…%Êê€i™JHu:mÊYN¾éç€Z1…ˆK| cx¸Á0žæ®(gȬq$Ñ•Q£kfkÕż´>f
+IÀœ”³×ÛŽÃäYúǬ¶¼!"s]×óvIB) = â…x¥òÌàÛ‚D¸óÙµÊýuÁÏGp]?­—E^4OŒ1ÛÛa÷fKx2„ÚEõÖÚœÂ6òŠæâÚÔ¹ýÎÝuZhÊ ömúT¾ÑÞo:*”;Y슔’Ð4yA¤'
+ˆä;¾JÔŽÈ›MQºfÓTT´uvïû´vµÊ6_M‘Â~*,Ê­ƒýƒL’¬Ó£:bOe¬ã0Zö¥Ð7NBmR_7P'™L+×Q´Ü* œÇ©âCõÎQLƒBSÌÙ@mŒI¬ºûÈN[7„\ITÒ]ŒêÊ1ÅJeF®ŽÛ 02hš7ŃA,$€†¡ô»Ý~+‹]‰‡ñÓa²¶Âô·X&‚DrÜ]U.æ¾:»,îÕæÌÅS±*–Ùfùì[o3s°ÍÀÁØâ0‰x!¶zTGbËS™ØzØË<ð4DÇEz¢€H>l$b0èPd(ó
+I!&Æð…âÕ§:âAOe<ø´çAì@˜:.ÒD ÃD°¡Èÿ/°ƒp_š7¹|Âå}¼‹zæGŠÂ1è™iÐüØæJèCîê¼í`¾Õ ‡’3»µÖ¹7µ%0—*ø`W×Ë,wš™[«y½ÁæNÔÞݸJÆuºG+i
endobj
-2621 0 obj <<
+2624 0 obj <<
/Type /Page
-/Contents 2622 0 R
-/Resources 2620 0 R
+/Contents 2625 0 R
+/Resources 2623 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2609 0 R
->> endobj
-2623 0 obj <<
-/D [2621 0 R /XYZ 56.6929 794.5015 null]
->> endobj
-2624 0 obj <<
-/D [2621 0 R /XYZ 56.6929 751.9581 null]
->> endobj
-890 0 obj <<
-/D [2621 0 R /XYZ 56.6929 711.8652 null]
->> endobj
-2625 0 obj <<
-/D [2621 0 R /XYZ 56.6929 678.3488 null]
+/Parent 2612 0 R
>> endobj
2626 0 obj <<
-/D [2621 0 R /XYZ 56.6929 642.2811 null]
+/D [2624 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2627 0 obj <<
-/D [2621 0 R /XYZ 56.6929 574.684 null]
+/D [2624 0 R /XYZ 56.6929 752.2879 null]
>> endobj
2628 0 obj <<
-/D [2621 0 R /XYZ 56.6929 512.9737 null]
+/D [2624 0 R /XYZ 56.6929 690.9973 null]
+>> endobj
+894 0 obj <<
+/D [2624 0 R /XYZ 56.6929 653.2561 null]
>> endobj
2629 0 obj <<
-/D [2621 0 R /XYZ 56.6929 369.6295 null]
+/D [2624 0 R /XYZ 56.6929 620.7725 null]
>> endobj
2630 0 obj <<
-/D [2621 0 R /XYZ 56.6929 83.999 null]
+/D [2624 0 R /XYZ 56.6929 585.7377 null]
>> endobj
-2620 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R /F55 1336 0 R >>
-/ProcSet [ /PDF /Text ]
+2631 0 obj <<
+/D [2624 0 R /XYZ 56.6929 521.5252 null]
+>> endobj
+2632 0 obj <<
+/D [2624 0 R /XYZ 56.6929 463.1995 null]
>> endobj
2633 0 obj <<
-/Length 1920
+/D [2624 0 R /XYZ 56.6929 323.943 null]
+>> endobj
+2623 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2636 0 obj <<
+/Length 1904
/Filter /FlateDecode
>>
stream
-xÚÕY[sÛ¶~ׯУ4sˆƒ+ <:¶Úº'±ÝHvšæ)› /IÙUýY
-òOÞ&²žlÙâ`Wvyfï«ÓÞ×›4>´1宼ù™í«OÊ‹’2^BiÜ ùT]¡‹3ù2¸à꺂âÔÛÿ¯°öª¥~Ðã Æ_±5uJ7Ágžº¡8X T3†å÷T Žˆ#Èqu*P·RïÖ WTA´Eâu•çòÌùñSÉ 88ûA?¿UtrfçÿéÅëŸ_lÎVì¡ûˆ"Ø=´T'-ßV&þoÓúwù5Ùü5æ8uHŽ(Qä«Ð^J:Ù‡KÄ^ H`®úmÍÕl~ùþúnq}{Ó¾t¼“î7};Í8ÃiÐv šÓ4šlR?šOªM^‡ÙÁ0ì`êCÙtnlR¬šy;ëš=Ö4{hê1J&×µ|ŠK%÷XôÐÖ> «?“à%uÉÅø9à4ÃR´ÚÙ|Qká’O^ãÜRiF¶Å”Ö iÝ
-r(4áÓ€w®;zaG X¨GŒ}ï•€]份lÁ5I–¤¡ñž@£? 
-r€¤\}=Êà4¦nûëÛ
-)'÷ëÚêKj«*L_ÂMcC´ÎžÒ†&Ì;èÍmDçµc(š÷óŸâ¥ƒbÎvº“D¯ „ªÇ°h/Böz;ÚG-¨ÇkO:ƒ`rEIy˜¦›)!D»Åˆ2Þ!OOi¢ÃȪËdYÃÚ™)•Hãç8­ìðýÆþFñ*\§µ–Gõj˜Ë0=aÐoitÜåQwOëúI£Êìª$M-uÛ_ˆîÈRaÕüæÍï²Ö·l†¶(kª…†ØéÞ¾ß „…
-™BœH #¥ØöÖΘN~3 @‹ÎÌu_º±Oý€(_’J_xÁYÚ
+xÚÕYKsÛ6¾ëWèHÍTž$xTl¥u›Ø©­´&9Ð"d³¡H•¤âª¿¾‹)’¢ìÄÑtÚÑŒ‹}|XìK2Æð#c)f!!G1^®Gx|c߈£™ÖDÓ6ÕËÅèÅ+ŒCúÔ/V-^a)Éx¿÷foßÎ/Ï/~›L©ÀÞK4™
+Œ½7³Ëw³×¶ïí$¤ÞìûùÍdJB ¦é|ì]ÎÞÌϧg?ÌÏ~úýêr>ù¸øq4_4šµµ'˜iµþ½ÿˆÇ1ñã#J1~€ŒHÒñzÄC‚3V÷¤£›ÑÏ ÃÖ¨™:„ Êýñˆ™†!à €`p‚ç{È(‚¬¦Ò}À˜¦*‹Öªo/¡1FÂq›ëì†j@8m '4DŒ0Ú•¾¸W°.,ðŒÐ’^¾²=Õ½ëXæ™Vòn[DU’gvÔªm ªÜöÝÖîÕò“ŠaUÞÅÊöfyeÉÊZ&z¾Š¿ƒŽ½¤²$±ZEÛ´*¹FäÅ+ÞÆqX3âkóµþ/Tµ|¡ui@<ž2Ÿ")aM§„ PjÈÀ„•eÖÁ„2Ì/ä(
+@"Iͦ–Ýõ|ñîúÒ:ô/@Ö›½~.]ÏßKÀc Bð3Ñh:5øQIRPðT«R1!ÒSÕ¶ÈJ+-ÊìSýe0ƒVYEÕÖš¥ƒ'±Ä½ªÂðÉ Gö ,_û«J-+×\;–àÅCRªatju;ðÜÌçvòìõÍÕ€C |ÀKø#ßÙ©-¤þÎ3Õ6üXØvmð Øõ:¾¼¸<·LB§F¼N²¤¬ÀóÂv]«•![:ÞDÙ6JÔ%¾DÔ÷ýGÝ„Á‹eˆÙ»ÅW×O#p‘UªÈ”[Ñ›]Y©µ[«³<+ó¢J¶ë½XØðܧŽ§ˆPðac9ÄRˆ«àg6P3x@­v—.æ è"ò—ÕŒºË“¯7IªŒ
+0»×šóùÍÙõÅÛÅÅÕåW•êK_¿¼À§AscДæ¢É\¹Gp¯ÜeUô—ítÕ
+L½_M
endobj
-2632 0 obj <<
+2635 0 obj <<
/Type /Page
-/Contents 2633 0 R
-/Resources 2631 0 R
+/Contents 2636 0 R
+/Resources 2634 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2609 0 R
->> endobj
-2634 0 obj <<
-/D [2632 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-2635 0 obj <<
-/D [2632 0 R /XYZ 85.0394 752.0294 null]
->> endobj
-2636 0 obj <<
-/D [2632 0 R /XYZ 85.0394 688.0859 null]
->> endobj
-894 0 obj <<
-/D [2632 0 R /XYZ 85.0394 648.5014 null]
+/Parent 2612 0 R
>> endobj
2637 0 obj <<
-/D [2632 0 R /XYZ 85.0394 615.2083 null]
+/D [2635 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2638 0 obj <<
-/D [2632 0 R /XYZ 85.0394 579.3639 null]
+/D [2635 0 R /XYZ 85.0394 684.7381 null]
>> endobj
2639 0 obj <<
-/D [2632 0 R /XYZ 85.0394 512.4986 null]
+/D [2635 0 R /XYZ 85.0394 622.0142 null]
>> endobj
2640 0 obj <<
-/D [2632 0 R /XYZ 85.0394 361.0478 null]
+/D [2635 0 R /XYZ 85.0394 559.2902 null]
+>> endobj
+898 0 obj <<
+/D [2635 0 R /XYZ 85.0394 520.5531 null]
>> endobj
2641 0 obj <<
-/D [2632 0 R /XYZ 85.0394 218.5873 null]
+/D [2635 0 R /XYZ 85.0394 487.6322 null]
>> endobj
-2631 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F39 1173 0 R /F41 1233 0 R /F53 1328 0 R >>
-/ProcSet [ /PDF /Text ]
+2642 0 obj <<
+/D [2635 0 R /XYZ 85.0394 452.16 null]
>> endobj
-2644 0 obj <<
-/Length 3302
-/Filter /FlateDecode
->>
-stream
-xÚÝ[[sã¶~÷¯ð[虂+ ´ÓgãM7Í:ÛÚm2Mò@K”ʼn$:"µÎö×÷
-š]RøŸ]ª”¤†›ËÌH¢(S—óͽ|„{_]0O3 D³>Õ÷Ÿ¿Ù¥!&åéåý²·–&Tkvy¿ø!ù‚0A®` šÜ^¿»ùröúÏ7¯ÿòÏooo®f,cœ%×ïßßÜ~ùöû«Wè˜ÒäÝõí߯¿Á¹÷W†'×_ÝÜ]ýtÿõÅÍ}ËYŸ{F…eë—‹~¢— ØÄ×”£Õå3\PŒᗛ ©QRˆ0³¾¸»øk»`ï®{4& ©4Q\¦ N´‚½GeÆHÆe’‘TjÓÊŒ³˜Ì••Ùln7úù¥z”Œ.@ôÔ‘Ì×y]ŠÃ¤D3./û¯<b,Eãƒ×Á èwÀÙÝS1/—Q-ͪÀ2ã†ÕòàÞ¿ªm*Œ&oý½mÕà ¶«ýH)/¯pæGÎåÛ[û/^—~YX¿)ä
-D¶úŠ
-Üö@@<K‰1Fú[--÷ëµÓR÷ùæ0ÌLÀëTÑE±Ì÷ë†ìUdy)Ákq°úÌrYnGÞ’2fÌ?[v&yJ˜5W QŠ·Ë¯«y>ƽ`àZk‹²KŒf}nÝr§Ø5D
-ØÍ·‹ÈÂÌ¡²þÊ[Ð蟜¤* *qöUÈ>µ[†ÒÝ|çz¨U@³ÊøùJm€x²¨Q`ïyƒPz÷=Î Œæ•û]ÔýÉe±CÚ¦Âék¼¬vþþ‹-‚TJU³BŠr; €WN ¸Ò¾™UK¼ãD¢ì. ÀØ´ÃÙ曢¶ôNjDJZB@àúPÝcZ( dZm×Þc‰Ùñ;ðŽäd'ŸWå|Õ¿ïDækå=cØ·½h7
-\OÀUš,Šuñ˜7eµÅ;·wøÙ¨î.õ»sžÁþT~Qq¼Îu¨°W=Á¤ˆ
-· ÂÃ!#"£j‡
-Eë:Ôµ])Õ­êÖñb
-ÊIiÚÓqSüÚLá–Åk)ÿ¦(–!í…¬oæ»üyìt÷K‰TdØ<Qhw4ã0ñ4$obýF„lÍp %‚ªôS-ÍWCŒ@r¨!øõØj"˜
-qYµ±c‹ÁMÈ.žöþ&bǽN‡ëo©ä °*ÀðS%Œßµ 0‹™³ÝÆð­Á÷QÞÕ©3!l–PÖøÞEUø‘kºØÁ<ß×>N
-‘ õè0uÈ·Þ(Š¥ï|™Gó~».B£§ôF²ØožêQ;™WÛ¦Ø6u4æõZZtvc/ÆíÆHГäç™ â¥rÌnÜ›¢v“Z_­ÌYv/1¢å(ªV&3T—ûÓíÈ‚’©ÚA§’¥![²,×M¨½Dðé¶ñ#—LÚÍáÏC¹ÍwQç<@ „ÍÖíe©ã`—?• ÚîF÷LÙÜ2²E.I&ï#wDX¦­HLô}yv®¨ Õ¡<詳²ÙFDâžÚýAºVcM’¡(ám8ð †ò@–)OÊ¥—#Mm–uP>ÜÂFb"¿Ô$õþÁNàêF¶ÎÁŽçùÊi×öó8T.•‡Y´Kt€‹js#ä&Óg)#„ ?ZÿÚ º…¶Â·2±1Ølw€³ë"\ðÉäЃ„³üUùYâU&sñ=LÀÙhô6 ÓV&ãWŸj<‚µT.†ýaÚ(1Ñ)6°„Ñ'ø
-D¾âŒÈÌð:Å‘&%”µ¡Ã˜ 43¬xãö–ÁÊŒ6€4KžK׌Ñ<¸#Öy8±ÌËõ¾ó\Ì ô™Q9ˆ¬mGÃrSíh™îoÀ¾a„ó™„<
-ÁÇûÇåâÌãr›† ý"<Ê <¦„‰L‰GЧf´ð•c…ïLd”Hš‰ã¶ê'A&x?c“Îidö¨&¨2·¿+ýžä«M¿ùŠ¥ß¾º.£Îå^±Äy]{íŽG„ˆÞz]Kðà;á­×uòʾcî*7Á½×=j´z][ÍõZ—"xÝÁ“±Æ»"ZSé»O ;#FªO»~ªœÛ¼À¯+óÿŸt³L@5¥È¤aö©Æ ³¥r†Yîí‚F­”ŽÒn‹´”šiæZªwƒÀÁ)Ñ$1`ï;›†îʦÀΩϲí:¹Âå7nrЈ„ð“µ?ý=ö¨ Aæ´kyÍÀfì·pÇKÚæ¨2òô’ ØvHÊ:¶¸qÖ†‹YÌZÏX€vƒålö9Hsn;U7
-4Ç< 6ïË€>O>â†ûJÈÄâ‹áá„Ûô£„ö­;,¼Œ;}uT‹Ò Á¶ÁÛØÛãÉ—·ww7¯}ÇrïoöV§
-c  ²ö3õ¾lðSO‹ƒ''£j)¶»`.ß7¬dÝ„õvêÁÿæ~±â)ßå_¬žïÊ'Œ2•|»ÅÉ&0è>.‰}µ¡Ù~™
-_\‰ðÊgº]±$„¹Mwø³«=8µY8î{¤þ+ÄÞcÍj_ûhºÌtò`A4)eãÁü®©ãÔÇZfû ð-öÏ"fC/ƒê~÷_Gt9Ðz¤Dç™"ðp˜²òfiz숬[€þ˜÷[¾endstream
-endobj
2643 0 obj <<
-/Type /Page
-/Contents 2644 0 R
-/Resources 2642 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 2609 0 R
+/D [2635 0 R /XYZ 85.0394 386.5142 null]
+>> endobj
+2644 0 obj <<
+/D [2635 0 R /XYZ 85.0394 236.5364 null]
>> endobj
2645 0 obj <<
-/D [2643 0 R /XYZ 56.6929 794.5015 null]
+/D [2635 0 R /XYZ 85.0394 95.5488 null]
>> endobj
-2642 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R >>
+2634 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F39 1178 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2648 0 obj <<
-/Length 2271
+/Length 2943
/Filter /FlateDecode
>>
stream
-xÚ­Yßoã¸~Ï_a` Ôj–¿E>fï5‡Ý\.v¶ìíƒ"Ó¶p²”Jr²é_C‘’%›¶S\‘ ©Ñp8ü曡CFþÈH „™æ£Hs$0£dsG+x÷Óñ:“ViÒ×ú8¿øç'4Ò’ÊÑ|Ù³¥VŠŒæ‹oã«ûûéÝÍío—*ðø#ºœŒÇ_®î¯>»¹ûKMÇW?Mg0dšIP"ÜêI<¾»ú2½¹ü>ÿùb:ïüéûL0³ÎüçâÛw<Z€ë?_`Ä´£W`D´¦£Í ÎX;“]Ì.~í öÞ6Ÿ†b ˜BBÑ(JzA d.G‘ÐH2Êš äñÆ,&ÉÚ$ü·ÈÝ|Fû±ãH*La-«_¯Ó
-¢éñ¢0^Ê‹Ú
-jœÄÛʸ¹8s‚Y^5^š¤öÚÛ<3•—Sÿáb»yöSõÚ[hÜi¤¤Èk“×Dži9¾­ýYUô\ÏÞÙ !H AÝÿà<×ñ‹q’s„‰ó4_¹AºtOçŶ~Þú—E¹‰½ÜÄ
-ˆá$<ûZÇáÙi5ð¬ðÔ Óa‘–@ Eùv
-1ÆXÿŒ&I±yN3sä"¥¡:QªÎ4Þ˜ŸkÇúZ'ŽªÕjŽêß!†Úö“%“£ˆbqÚ±N+àÙ°d`1`{àÚìÙ$éòÍÝï^×Ò§tƒ¦ý‡g⋪Žšiæàx'ç›4·gÜ|šf‹$öåŽ:âj|wZËMíÚ(X Î6EU{B
-»£y˜ÎîÜÇ_/Á…ñÕçÇé,€wHD
-á‘ïÿ!ŽiÖ¦‡KÕz[æmòz@kïÛo •z[ wH†m»)Ý}®ôj¯¦£( .SCãÒBÇP `oÒ²ôkZ N뮎ëgÓ©ûøêóì—À}H„Ö» XQ®‹ßÝ8]¤lSÔ{ÝØczÐ#@€jû#Ç6 ˜‰Àò MyÇ@!ƒiEÚªÿñöîÆÙÓ~W (3p³‚Ûzá;Âû[VÓ<ñaýç[¨E‡Ë©•Rö)í ® nEŠXð÷{õ8ÿ×/Ç#ê@v›C%ÌÇÇì Úä?ùë"¯Š²N·›Ýªp‚\RoyÁ˜»âÚßÁ/'cm]aÜv£¢Ñ¹óéðGÏG½ö™Fi䤡›aŠ«LùbÊP„ðäÞòâ¹J«}ª‘5D#<‚m*M…­0'°g¡á "ÀV©·i áû6áß[IvRâ;56ø]W#!H{á³ÐOW“eš™ÀBB[ÕÅëvv»+½x{C3OÛÕ$3/&{¿ÙéY³&_¥¹™ä&ÞcvùÝõ`L2¸H6ì[¾MVæ&à€`€2Õ¦ê2‹W¡«G<Rdåüì†>$ÏÛ*dP#¥"½oðù¬ÁgH¾=†ô®ñêìU4 XÆóÃ&þ1©Šä¿îþ¨öí×ç2¼Êr$©ØEµ9EøUTˆýS| ,åvݞ݇ (Õäö_Ç6pðíÙ À¼ #‚Ês/ôµ“~–ÐÐúò®>$1T©c)ºù#ÿJ§íÿÿ„;ÒûËÿfÜý}¦Ô‘ë8öïÒ¤uÊ:Nd´ïz÷ÉCßÿl#Øendstream
+xÚÝZ[sÛÆ~ׯà[¨s»÷K;}P9u©J­¶ž&y€HPDB2AZq}ÏÞpã¤Ï´SkÆX,vÏžó+H&þÈDH$ 5e8˜ˆÉ|s'ðìë hf‘hÖ¦úòþâo˜šd$•“ûek-°Ödr¿øaú%" ]Âxz{usýÕìõ_®_û¯¿Þ^_Έ"”L¯îî®o¿zûþrFz Æxzsuû÷«ïüÜÝ¥¡Ó«¯¯ß]þtÿÍÅõ}ÍY›{‚™eëÃÅ?áÉñÍFÌh1y†Œˆ1t²¹à‚!Á‹3ë‹wß× ¶žºWSÒàB#A¹¹0¤ Ói™¤"Å1RX©Zf”¤d©¬Ìf«þA¥DØ(9i/v´e$JlI[[*‚°Ò½-ïvÅv諒_å~p¨²Ç0¬›M¶ûäo²íÂò_‹=:ÒI8¸ÂizJ8 шl‘͇AÑŒì×H¦¿_R0­ý¾?y˦\iÌšãûѼ~Tnן. !ÓA¹H¥‘áš ¦M5,™šÊ‰æã‘h€ÙœØ2%¶ì#ÁpoËj>滪(·AËæ)0×;˜,âK`Ä®¶Í6ùb6_åó_þ]nã m&4³d$Ð?í.‰ž–»ló`JîIw£€Õˆ"•SÀÏG
+`ˆQeÆ·ŒD‰-Ûg—üYwË®ò éu™-ŠícONŽnô#ÆtÆNny¶èÿ\vÛlíoŠ ¹qiµ¯†…J"ZŸ0÷6ÕˆP#•êÜã@²pe†<æ묪úŒ‰4¡|œ±H”`Œv¶#ÖÑ«.gïžòy±üÔ¢gæüµ6 ¼1‚§oómä[ÙÕ¬’òÅ« 1JùÛ[ûÐDXÖ?€¡ ªBhi‘BÆUѦVEMåTQ$Ta¡BM8ÙcK¤¨6ãlE¢[mE@˜W6ÎwغËwËr.€q6}*«ýÌÚ‚¿õøgœOÁQå»bÿÉ?p^¦²¹†6Ó»²ªŠ‡u ´‡¨<Uæ-%Ẩ’ÈÃÃÁ­––‡õÚiëØoQ*ñú#x‘/³ÃzCò*±<çA±wWŸY.ÁÈv‘†*zÇÔ²3N%"6u!@+­—_—ólˆ{F BÔÖ–dMÚܺåN±kg&²k}w"BÄ„j¯¼ñI‘*ªÄÙT(½´G†ÀE¹÷›7¨}­š…¢ç+µ€Ç“E
+±n.¦ Üá¸îYÝîó_÷c¸%éZªéïi/Ô`m3ßeÏC{€pˆ¦íR" .AèX€J‹j*‘ÊAåMªëAãµ1a…!ƒ…g­¦JðÖE ¤‰Â`‡¹-Œˆ£E;¶hé<„LãéÆN”·º®ï/¦o ˜%N@
+fÎï‚Ä´©YgŒÙŒ¡¨ü¾‹2#×€±ƒyv¨BÌdL! µi×fÛ` ùÒy ~- û°]ç±éûe‹Ãæ©´™y¹ÝçÛÐOëÇ¿V;B³Æ†ìÍ° šâô<bÒ=ɇlÈí”´!iý¶0gÙlbXÍQR­„!b°î.÷çÛ9A\Ô ‚N9‘1s²,Wû2S{ëÁ§ë&Œ\biç/ÅÖ~Ôp:§ŠA¦
+9L @ÚglÚ7Š¼6Õ0òj*‡¼M
+yIÉÍXpˆJ¨òGùŠD ¾º¨ÃPÙÞe¬)q0±Ý.Û—±7ÔÒÁ©Æ%LV«ò`Û[vlb_pn%“%–0OmVá¬ò°[Ýr7M¿Ôö±g\vB,àC‚oõAxã¦_µ Æ "Ï‹àÍ íf/ùü÷¼õË«÷3|*?åS ÅPèŸøTÞ"Áu r°¾IÁœšªk$¬!ÅWœŒ2iŽ™êÿ`|ïpõÚÑ×v¨ã¾‚‹ÿLI_YÓŽŸÄýgÊúÕ×öG}È¿ÞþŒÎÎüŒnL¿‰|‰¦Ä™HÍQl‹`>TϘˆcźéùç¤Rª«˜lüp.9LnW>ÆT†1•ÊÂÛL5}GÆœ›½$Sçií½û`ÂX⃠£µ§µ¡7^{Z×;/azè®~c4xÚ£Ö{ßÓÚš®ÕÌdÑÓvÞLµâÒóchŒáZÙÈó2ØÏ•y›øraþSïØ›ÇÃ’?ŸÄ“l÷o›ŸYs…˜Ö4mGT /ËÈ”eœHyìMìoä$MðþBòÈendstream
endobj
2647 0 obj <<
/Type /Page
/Contents 2648 0 R
/Resources 2646 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2609 0 R
+/Parent 2612 0 R
>> endobj
2649 0 obj <<
-/D [2647 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-2650 0 obj <<
-/D [2647 0 R /XYZ 85.0394 393.5547 null]
+/D [2647 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2651 0 obj <<
-/D [2647 0 R /XYZ 85.0394 333.114 null]
+2646 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
2652 0 obj <<
-/D [2647 0 R /XYZ 85.0394 272.6734 null]
->> endobj
-898 0 obj <<
-/D [2647 0 R /XYZ 85.0394 235.5228 null]
+/Length 2564
+/Filter /FlateDecode
+>>
+stream
+xÚÕZKsã6¾ûWè°UKUEÞŽ[N&;㙵4Ij“h‰±V"’Šãüúm¼(R†¨Éf/[>
+f2la¨Â =úgæ'ËŸ²:kýdͪ.žlpJEò¡tƒmP°‚–elØ•ß‚Kí¶`´¯@F Œ=[:¹‘ã®HÂÞ¾
+ÜfF·඙§ÎuØ£sèÁgíöÐøèz
+fÆwž6 ó‰‹kå¿6‹‚fUŸ¾\WåßÛžœÉ´J®=R ºfê$t:;†Ç
+
+Rö¨~ˆñˆ
+Éõ»OóEü*ŽÂ‘
+@ï_Å1Í‚k87mu×ã
+Q)×ê¯ìÊ .RÄÀ¿oØëOËo?<\¶èÛâ`™{„,^ IÞû³¿©Ê¦ªÛâ°?÷ï@êæ"N‰;ÿò¿&ÿ SŠÆ½›aÚ¥ÌæˆLOUL!¡hÑý?à±7endstream
+endobj
+2651 0 obj <<
+/Type /Page
+/Contents 2652 0 R
+/Resources 2650 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 2612 0 R
>> endobj
2653 0 obj <<
-/D [2647 0 R /XYZ 85.0394 203.2986 null]
+/D [2651 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2654 0 obj <<
-/D [2647 0 R /XYZ 85.0394 168.5232 null]
+/D [2651 0 R /XYZ 85.0394 225.6507 null]
>> endobj
2655 0 obj <<
-/D [2647 0 R /XYZ 85.0394 105.1607 null]
+/D [2651 0 R /XYZ 85.0394 155.4035 null]
>> endobj
-2646 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F55 1336 0 R /F41 1233 0 R /F39 1173 0 R /F53 1328 0 R >>
+2656 0 obj <<
+/D [2651 0 R /XYZ 85.0394 85.1564 null]
+>> endobj
+2650 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2658 0 obj <<
-/Length 2963
+2659 0 obj <<
+/Length 2707
/Filter /FlateDecode
>>
stream
-xÚÝZKoÛH¾ûW˜ÃJ€Ùa¿›ÀbÇvÏ$Ž7r0ÌÌ–(‰ˆDjDÒŽ÷×oõ‹âKT€Ì^69°Ý,VWW×ã«jáIÿñ„ $"MdÄ1Ÿ,vád ïÞ_`Gx¢ IõöñâÍ;*'Š“ÇUƒ—B¡Rxò¸ü}úa†fÀ"œÞ_}¼½™„FTL¯nïoî~ƒ¿yT@†ÓW÷_®>ع‡YD¦Wïoç³?¾¸}¬åiÊŒCª…ùëâ÷?ÃÉDÿù"D4R|ò„G™ì.§ˆ3JýÌöb~ñïšaã­ùtP8D„
-2 ‚'£ˆsÒÒ „-ÜÜί?ß=<Þ}º×»1ßN"@OÌÐfñ.Y:*Ò ¢ 1J ÖTi1 (ÓØ>nò]œfv| ìhþZ”ÉÎŽÿyxs?‡¶ErxN3ɦ—0!Ãé>>”öU¾²Ïrã½½»¿±£È>–iQÒ§ªLs·êê0Ãjš»Õîæ×ÈŽÞå;Øå†"Ñ[›~7A­:½©l•v±eªmÀ? z
-ªý¥='Æ1
-9©ÊzuSZ­áW;H³´Lã­ýc—q÷¶`6‰;Ó•6 =ø«JiR Z© o‚“¢)™e?êŒ$Æb" Ô(©Ø ¶DA“Êûo?ˆÕTzÝ€u— EVãKz¢%›z0”·—üR8ó¾{xfÞ¶NÏɳWbºê8È&/J;ÚÅ‹Mš¹éÔ¹È"ÞÇO[7™¯ê%° Â9Š”ÄÎ"¬:ÂcíÇÜ>èKŒå’z6â$ﱋvUYÅÛzëßÛªHŸtÊ
-¸‚´ Aí£VФ:m5ÕQð!+]²¶‚þ’CVÐZ²iâoìÿÈ
- §3AdÜ
-T#Và©Œà +8çMÁ58
-z¨C>öñò) Æ…0ݱÂOSy3iG?å>…ÇE'I{Ui\lUe1ô¡ëÂaâAdLgœ3P·I5b€žÊàíYL2ÐyhÅ6À1ùØpÐ
-Ð)×…îUëxé³!uïìñ±Ó٭ ´â˜z,m×(]"2j¶â:Œt¿¸fcÏ)6ê{¹
-1
-Ì ÖwAQÄÛ’]»Z¢
-FTo™É®„ýB(Ä¡oé>ƒN|k¸ìïtÜÃÌöô‹økbgâåsœ•6 Â Ó ‚ç_ºß:¢ë‡/…»
-
+xÚÝZ[oÛÊ~÷¯‡Ê€¹á^¹Š‰í>çÄq#§=@’š¢$©Ë÷×wöF“ÔRJÑÓ—&\ígfgg¿¹ÐxÂ<㉘ij(fˆ‡˜ÏÒÝY8[ÃÚû3liGô©ÞÞŸ½~G£YŒbAÄì~Õã%Q(%žÝ/¿Ìß"ÌÐ9°ç·o>\_„ÆTÌßÜÝ]ß^Ýü¿yT@†óon?¿ùÍÌÝÇdþæýõâüÛý/g×÷>}qH•2œ}ùΖ ú/g!¢±ä³ïð#D8ŽÉlwÆ8EœQêf¶g‹³¿w {«úU¯ pˆÄc‚g°GÊ`±o#"#ÒYá<À!l±HvÙRm øTÀ$Ó4·° æ!éYUQÖ4”šÊ¼® ô•ÈŒnŠ&«Š¬1¿–å.É 3VäfTgÕSVY 1F1çÄIˆai ‹ç¢Ü×y=6;Å(’‚Α`‰˜ùÌ„AoÂÁ6DÆbôYh2ìñ£Žª·oü°on$ºQj¶Â_8aЇsxÅ#-‹U¾VùÖz VpqÊ,mÇwéáK9’‚sKºÌÚu°Íž²íϳ½>É6+Öy‘Eç¶|ÌvõM»8E‚
+6 ºƒ²/Áº£Üy€{
+žÏB‡&€€þ<1+‹ºj¬¡\Ïp ;3þòðêvl&,$Gl~Q8ß'àÐz©\™g³±ŒÞÞÜ^™QlK8à*h›¼´RWÕ9–óÒJ»Y\"3zWVf°+5Ef!Âîf€y±*«]b˜ª°ážZ5€\¸ˆb§>½»¬Í®½è†Ì“bÙÍqäb–+lTûç&ÓrbPà©|4Nοçͦl³’hå×í.+šúÂsŠÀ•‘°ç3yŠì£Ð9Ñ÷|»5üm+Úî7t_%íÖê
+©HäQMÆHê.æ…›!'£ƒêk«,üly‘7y²µ‰@Ò$ã#0¸`Æ+åjðG›UyV££Ù9©úæd6´3“ðãñ¿OåR¨ÃøßQ)¹‹ Å1–ÇE:"Ⱦá #Š‡"?×Ö¿o» [khˆöÖŠùjtC6em3±€ÄpKgïHšì“‡­,W|ÐÊ9Šeä₱ÂHy¬.rçê¤=®#Ê#²˜dãîEb¡Âì£mÚdÛmýGºmëü)CS^@Á‘CŸð‚>Õ´tT/Šû¼à¨ÈÎ Eú¼` ²ïâïìÿÈ ¸D8¢§¼ GuÄ •VÜæúbë«ú sªßWS‚DÅÇõë¨<
+ìE#$8”” •ÓxR´XJ9UŒ}QHî²ìDå1·é@Ì‘ZµHóp^…E­³‰þë6¨]ø|  ƒ–«,¤ë” ÃÑD@¦âHÁæ÷ª°/ÏF99uë|Lýn6I£F̸m™,óbí-ÕÁîÕ¤Û½zš¼h³Ú¾h¥}/«GC¬ bqµé˜o’Úl×í`§›¤X«$…RÈXšÚ w­«ú¹¾Þ€É÷ÍT›™R§ÿLÌc_ÖuþàÍ$ Q†Â_H LIŽºŒ½Ü[÷PŠÚ§ñêÉfÔ¤1ã…Ç}"%
+#þˆC ϘC®Ò¹­ÍD2—šØçC]nÛÆÎî“f£Ün]HŒ!¹"ÇÁ¥G4-ŽHCËÒ-ɘS¹?„ÕÂÑQå:¢Cí†À`Mè@»…nñÄöÕ`™d»²øKm)ÕÌÐèP(»ÀÍ<­Æ¡àÁS-ŒáZp‹æWꕵöw­Q•¤êº)]!âÉÑ1A8ôtŽ‘Ø!åC¸z˜£¦GþçZ\]}£Á]~(]ðNêQxv¦R)±1•IŸS›X×6öº“êYyÂ÷zTGœÏQiï»>é}£®ßûŽé×s¿½þ×WP'C0«!‹
+gF4í!€~¡l\ÔÖMR¤Š½tu^Pçë 5Ì©BÓŒöUþ”4–ô1{®Í¨W[Ç¡Þ=LÖYÚ/Knë‰pW"ÙòV­€³î(—±Àñî×ËÅ+Œ»Ú¸lìV}ͨwq̦ú…GpØÆw)J‹¹iñÅè¦d»}ó<î&›íÕ™c‘7CV…}¥&oŽ)’
+X•éˆ<"GÆ”"ÂC‘ŸÚq«Ä%YF‹+ë"kãY­+ÐÕ…É‘òŠU/ßÙÓ5÷5àçÿÒ7hÚ®¤ÅTž²kêˆ]•¶ëúÀ®qŸéˆ<"ûvBÄi8ù'Ùµë€X‚ÔE†­Åþm鉙£2 £ð¥Z7ˬª|ÑkÐ4>$(1BANRêÈ!9*}H;_aHzû}½bŽˆø¸^ŽÈ£× z„PŽ1À¦bù‡ó¶ÒýJ:7}K6ßGëæÚ:Ygf¸|I0ä¥4Y×êC¡ÂK—+kR»f~$/MÎqýEÇTtÝl%ËS´ ¾Gø2a0ëØèÌgŠüY.ЗÕò¤3äS4LblÔY$êU1 –]ç`˜.:»´ùñ3ÕžB°ûMæ’0Ø¡ûÒÝF0ºû{³¸;&QGbpr( qýÔ_
+D`y¨âÕõÛÏï‡.¤Øëaß:­ò÷9/|}"F•rΧþš×ék¸¥hó·Éêà$ÚÉXõgèq°ëMc#ÒPWœÌ˜»ÏŽ¬“ˆE‚ÕÊÑj5D:Š âµ.mÑø`H}HÇ,:ü*:.Bºê-¨સæ¿B<ÌLA-$™™I–OIÑ(…Ýÿçr¾|¿µD—wŸkûw7–@§j­Þgi®ZÙÒ÷©…b ;í¦Ê8Hmá1:êØo.€ÕÂ}=P0ÀTcªÉªé–2[¨AÑîtÈgf7ŠVéofö.-3a‚=SµDwúò…sï Šbá¸WdhoVf&·Ls+­-lç–1›'ŒSöþ.úØÖí¢×óU»pilz1Ïu†Ý¹6Ã>îÓÕK+åe·K4õW3OÔŸºx>ì>ûü×Qóò'CL}““=q/ §”²òBìßÞêþo21Îtendstream
endobj
-2657 0 obj <<
+2658 0 obj <<
/Type /Page
-/Contents 2658 0 R
-/Resources 2656 0 R
+/Contents 2659 0 R
+/Resources 2657 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2662 0 R
->> endobj
-2659 0 obj <<
-/D [2657 0 R /XYZ 56.6929 794.5015 null]
+/Parent 2666 0 R
>> endobj
2660 0 obj <<
-/D [2657 0 R /XYZ 56.6929 752.0246 null]
+/D [2658 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+902 0 obj <<
+/D [2658 0 R /XYZ 56.6929 769.5949 null]
>> endobj
2661 0 obj <<
-/D [2657 0 R /XYZ 56.6929 645.3699 null]
+/D [2658 0 R /XYZ 56.6929 747.8192 null]
>> endobj
-2656 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F55 1336 0 R /F53 1328 0 R /F62 1379 0 R >>
-/XObject << /Im2 1368 0 R >>
-/ProcSet [ /PDF /Text ]
+2662 0 obj <<
+/D [2658 0 R /XYZ 56.6929 711.7108 null]
+>> endobj
+2663 0 obj <<
+/D [2658 0 R /XYZ 56.6929 643.9803 null]
>> endobj
-2665 0 obj <<
-/Length 2763
-/Filter /FlateDecode
->>
-stream
-xÚÅZÝoÜ6÷_!લ*?E÷ä6¹ Eëó5öÝmä]Ú«X+mWÚ8þïo†CÉ’V»i/-Š
-ÀüöþPÒÌ[åxž'ó:àl³s«âgÆ„ ,I©òÖ·ù‚Ì€»üqŸ–c‘)âW(X+.ã²ØmNrãj…ó@€­×Ž,V>Õ­6ÏMë¶Dpyý.¡Ùw ·4D“„sö.\L8±qm8ª*Ÿç û´A;)–!`°&ù¡libUWh‡Ã~Áa>È h¾†Æd‰ ̼¬{ý˜ŽqwÙsoVÁ)vm½»ój=']
-ÄX½s/‡çxl ¹€Ë.öuµuUK”Þ?`ñ±ªÑ¿ž*šnkšn»:¥bqØП1¾x ­ðÄÃö¯Ä q?wÏM½B1ñ‡k;§6@U·þ xOSãC%oi.\:,®Úª„ãmþ©ØÒ±41”¿é®a¾Þœ—p±Ä‡~•EÛ–³Aä¯Õ¡œOÈY
-o€¼êFŽ#S0EàtŽfºàñù2•Ã„cdÂ¥1!aVùÖ­Ù0/I•ÎÑÞ5Žò Ån䨷A¢Î…p<t!
-½¥`&ÉTf&îãýK˜aº‚¢ ³EÕ:2£÷)œB•ü Nò¸²람†eå K•Ì€§…ʽ|)¸_VJ!…&¸ª
-!ïAÎ;w_ûõÀƒÆù¹{÷æJ` W3Ù¡ãK‚É')bŽ¹ÃGÚÃ)ÿüfe¢2õ{b¢Ûq
-½)ˆ8V}½i±•Ú?½)ldú'€·ç3ØMÙì¥Óv3ì–°› ØÍ`6 3E Wùp¨VÝ6?í†FèNÞ~j˜„P‰°½—‡™T}Šå\êfs`˜¯6{ËÞ¡¡ÃIÄÔŸ¡€IÀ,»½-ú <ÔGÎäÝŠs Øf]»¦úª¥iWA9[9úhÜê0@ 8å1#üÞÖMØAøªù;":ÖYaZ埰*ä7c$H©Ìˆ`
-{œ@xÆžÙl,«y ËJ«;’ϬÀúÎyk£Ö.¨ï¯BiËðkS<l:ñ>úF–r°äfÁ„£DºÍ^àE¯Œ½zðzÕÓUs*a^} t¡2UI©žd›?Ç»p0xMp2ªc0嵆ߨÓx†:+yƒp„±P‰úe#(cÔ1ƧDÀ#©U’AU?“-0[ ¨N§‹žjX<ÇéBÌöΈ#G™ÊK¦ôy¹:¢¹F#z"Ø{×
-Ä Ð,"ä„·€ÎˆÛ)`–û»Òµÿð½Û‡âŽÄîÞ#×Æ£ìÒ}
-€%Â2Ž
-õSóßÓPv[N¡gnEÂŒü,zV'Bddƒ«9ôÌ
-2mÑlñÓÐûL¯÷õŽF9Öx F®+À'0ÆÇ®;{ Gx[¹]Kßá‘ËÆ/2àl=›·M"¤êÀì]Q­ÏAY6yÁþôÌ–y(¿Æ²­I„Ñû[æŸþüÀ—/ÚU‡gžaÞÑéXc‚¿J¦ølTöˆö•4ô¼Ú=ÀA&Šo«þÝÏ;TyëÊgðC¢QF‡÷dܼuy¸†7:™žj‰Rˆ
-–o‰ B™à£–ˆxö/±ˆË!a2sÔiÈ Ç#^§°ôJ{ìµÐF(nÕç½Vf"4Ȳk¬ð+£®f'L‹"
-endobj
2664 0 obj <<
-/Type /Page
-/Contents 2665 0 R
-/Resources 2663 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 2662 0 R
+/D [2658 0 R /XYZ 56.6929 558.2262 null]
>> endobj
-2666 0 obj <<
-/D [2664 0 R /XYZ 85.0394 794.5015 null]
+2665 0 obj <<
+/D [2658 0 R /XYZ 56.6929 450.5864 null]
>> endobj
-2663 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F63 1382 0 R /F21 950 0 R /F55 1336 0 R /F53 1328 0 R /F41 1233 0 R >>
-/XObject << /Im3 1530 0 R /Im2 1368 0 R >>
+2657 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2669 0 obj <<
-/Length 1824
+/Length 2542
/Filter /FlateDecode
>>
stream
-xÚ½XßoÛ8~÷_¡G¨þ‰{rÛ$ë¢ur‰ƒ;`w‹ŽukK^IN7û×ßP¤dÉV’=DÔp4Î73i`ø#HjªƒXs$0Áj7ÁÁÌ]Oˆ×‰Z¥¨¯õq9¹¸bq ‘–TËuÏ–BX),Ó_È48\̾]~Ž¾Ü<Ü-f_oïæ‹å4""–"œÝÞ^.>Ïÿ=¨Àð èc~›-f_ìvªi8»¾¼Ÿþ¾ü2¹\vÎõ7@0³žý9ùõw¤°/Œ˜V"ø/­i°›pÁàŒµ’íä~òÏÎ`o¶ùt, œ*$™Œð 1,È,ËT5¾,†èÆH1ýº)÷S~è?ŠABkDRÄDÌ;´( AZjáR1¢±+B XÓ¸ë_6¾¦FBrbáÃ<n4fÓHÒð®ù¿€ÿ$œwc^Ÿâ£$Ò€Mƒ)tãLð'Ä@ÎY£Ô7›?Ƥ\Ìw,ø\Àƒþ6½á¨o¹Ù¦¤½¤$”T`=¦IÅT³‰å&«¦',öuVän¼›ªÚ½å…<÷<T&µ©©`Ë~ª³’o_ühígòÚ”ÆÙ’a]8éÇùâ³i÷HÍ”áðyJEh¶ÅÞ”•  Í†)p7ÉS(ƒX…»Äª¿¸ë—}–fWL‰ðV¼fQºçj“äO­0ËÝ3qõ¡>”‘­I*cí S ¹Ôˆ*­‚~FýTŽ2H>©¡\£c•ý\ýôÓJ(}L{ÒOû¶aHAfÄø~~ =é¾—ümþ
-ý—6­ÜÈf‰}®Š¼v lÝ7õÆëæÉÎT¦|6å?¼¯¤ç+£1Š©â¾RË<]ìˆRP’Ò+];÷ÈfqU›$=ËA”  ì ¨¨§ ¯õµZDÎi£Óò€üòp{º¬ŽÖ„¼½l«4²ì 1`ÀšÂpÝ«¢ üÊ8ÚIÜ£‘A}&©{·EnŸ8L¦1_•d(Ž¹z'T=­7BÕjùPY*~üàœÁòòîÛ©#„ ¤tZ#® Â' Ê$TãЗ͡vN¤Å÷üí RHÀ¹‚((Oæ;³éǼ:lëaÌ+“§YþäñÉ_ü,¬Rz…®òìâŸÍ8óJ‡<5¿aLsã2ý´e`Û° Ì¹øéfq5¿~¸›Ù˜/ç7‹÷Û†ÝÕy½ pB[u•hk;1Å8ÂDR¯½ÁºútpÝX³ÐJ¶–¥0w”²º(Ü`Uìö[ó—›­½05ÕªÌÛoòVZ'ÙÖm<-Àx<Æ–ö­¦3V›¾•ýÑ·8÷®}Eg8QÅ6¹û”öœ¥ÆWSÖK”fûÀ½œˆKÂüöZmí³t—åYUC8
-ëY{ß󶎿%ù!ÙŽ—H… ¶Ý ü§ñ0O_E NX´îf9„1«›<£Ç òAQSÄ o=8ì’ê1»(èÍiý†nA·–Wn¿>%¬dW¤~Î}âÞÖ™ÝÑ#°pŸøˆÕn¸2U Àˆ çk7ã–­NÖuXÒðñeŒ—0´7¦å{‰E³öœùÁå‡Öˆœ>}ö¸zª« ,¨x˜XO”ÿSJ({'ô>Ú~¨Y˜›Æ;å²ß*o’gã$+8î5Á€10ø.«*aûå8`TR¤±Ôï#SŸò,,Ôð,¸Q™Ú Ì_ûm¶Êj{ˆ´ïME€‚ƒ®Ì\D¨HÒø¤ž<g÷Z^U'e}RYXb).ÞC…!®x›Ðƒ¼i•ÁÀQ1ð e^Í¿Ž\Ý<é1®¡„½ÍŒ}­†Ž€rΙ±Ó²«^˜zuÑì AÛ\Ÿ¢„Ó,ÜâÞt Ó:÷à„ál ׋›¥ftTvÖíÐåì«ÇFàºFy'H=­7‚Ôj5AzNÊ‹ò»@ùpí³ôÔŠáÜ-¸~Û“NëÜ•á! D˜dC_ÆÃÕ˹(KÏ¢už‚€
+xÚÅYÝoã6Ï_! '5—ŸúÀ=e»HѦ¹Û,ŠÍÄÚ•%¯%mvÿû›áŠdËÞÒ¢SäœÎüf8‡?e†q•ë(Í53\˜hµ½àÑŒ½½žfˆ–cª—·/Þ¨4ÊYžÈ$º½­•1že"º]ÿ_Þܼ¾~uõßÅR¿d‹¥á<þùòúýåOÔw³Èe|ùöõ;øT¹J€Hh¤Kx|}ùóëW‹ßo¼x};ð3æYp…Ì|ºøõw­õ/8Syf¢GøàL乌¶Ú(f´R¡§ºxwñ¯aÁѨ›:§m2f¤N¢%4r#’yMqÆ H¾L•%ó|Дsš
+T¨©å}ñ&Q#J!X–àÌ‘ìš}w¨ !9Ë´‰Æ;ñˆfø’ãݤa™Lû©l;[ÓaÝ7{j|êí¾´-}4~4ð÷â™
+¡™\Hq°¹T,Çã$"0
+“·ýTe×U³NäŽÕ"Ÿ¸*.)Š:´,5&ª Šà`t–z‚óPØää)À)`ïqL›à’ÂD/¤äŒYÂòÝÖóÑl=GÁ„°=6!r½¥ä)¤¹Yz`>ξ\25À&Z]2®Î’MaWÿ­,kTž¨þæ4Kiˆß¹TçӬʥYÝLš•3¸”‡Ó^—{»êð>wu
+3”ŠÆÛ'Yj†»I’e$Äxòö~Ø
+4ƒ:°YW„×Æá¡1)—]R0–t( +»¨¡ìòXV-N…hPÆ}}ŠŽíÆó²¶äΗá뇛÷-¾ð ™©dg‚‰,éƲžáPVå&l²ÂÒwÖi¥¶^|wÚ8_†ŸMù° ì}vWYÂàr·ÜÈ)ûûÀøÝb_Rü{
+ôô¾Qω1.8Bp•C‘´H¶…¸óƒÕx#£8]…@™¦=t·Â–“Ñ3GY–{ yš¤:>ùÚ"Àƒ!0|ãmLu.Õ$xž®SbiäÔ ÚY¾†´c¾f_Ð&Œ½³]_ºLAžH›%Kñ˜<| K GÉSfX|WÙŽü¾w{œü–x¿w¹kë²¼§;€!ÊTì n `ÔXû€»>-§\©¯¦§õ–
endobj
2668 0 obj <<
/Type /Page
/Contents 2669 0 R
/Resources 2667 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2662 0 R
+/Parent 2666 0 R
>> endobj
2670 0 obj <<
-/D [2668 0 R /XYZ 56.6929 794.5015 null]
+/D [2668 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2671 0 obj <<
-/D [2668 0 R /XYZ 56.6929 644.329 null]
->> endobj
-2672 0 obj <<
-/D [2668 0 R /XYZ 56.6929 498.5963 null]
+2667 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F53 1333 0 R /F41 1238 0 R /F60 1366 0 R /F61 1369 0 R >>
+/XObject << /Im2 1355 0 R /Im3 1524 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
2673 0 obj <<
-/D [2668 0 R /XYZ 56.6929 378.8143 null]
+/Length 2389
+/Filter /FlateDecode
+>>
+stream
+xÚµYÝsÛ¸÷_Á·R3ƒ æžœÆIu“8i¢\;sw´Ùl$R'’þøﻋiR¢ä^ÓŽgL\ì7v€xÀà‰Š”&Ð&ŽÆ“`µ½`Á-|{Á=ͼ#š©Þ,/^¿“:0‘QBËõ€W±4åÁ2ÿ5|ñ8š ^_~¼z;› i¤
+/?¾º~»ø'¼' ¨€„±ðãåõ·Ë4÷yfDxùþêëì÷åÏWË^Ÿ¡ÎœITæ‹_gAªÿ|Á"iÒ$x€qcD°½ˆ%±”ÝÌæâëÅß{†ƒ¯né”b‘FJ*€n‘d ÿOÄÊÔy"Ë‚9ç*’é9f´3?ì—Œ™ÍS%Æ$Á\%"J9—}.ŠL’ŒRª#¡Sè$È)ŠÒ5úØQš(Q1GB΢DŠ¸#ŧÙ\ñp ÿExu‘TE¢(£¢Ø$E<b±1’ˆcgì³ÜÄëÅVo+°(åχœQŠ 2 Á‰e %Ø.µ"•ËÙ\Æ*üP”3ÎÂöñY 6?/,P©·²Ì¶6÷TC2‰’DkOÕÖ¶&ÖÍ¥Á÷™`¡Ýc憥Ýüe ìiVÙ.»)6EóDï[»ºËÊ¢Þâ«›Š¦ó}µ£Q¶ÙÐ`_U *~q‚ ã jì@OÂâ¾ØØ[§‘JC;“,|\Ù]C嵐2á³8[‘‘ñÐ\BjÈXx+oŠ2ÿ%LÀ?>á“|Ây—Î àœÑc¬[N*ì*˜YèUËÊœµmºUÕœ æ`±Ž5¶xek03†ò±·uÕîWßt¸)¶ESÏ@ Ô‘”›ð[¹F?tòÚ2kìæ ²€…¯`J'à—¢¦Å[›•žks—5ÝÈNxH(Ø,UÞæy;áÜžLpOR횢*‰gU‚
+Î:¡!ë8Óu´ 0K+rÜw §0áÃ-'²J`ÌMürÖÊTt¹]x–$ ÅÍ!Ò°*iö 飈DÄS"@Åpn®Ücz¿Â$ýü ddÌ|··’,7<J”™QX ÆǬ™ë¢Äƒ;!3\bßU[ñ<?›9-(«†f`7U˜ôz¼i`Ò%/,º±ô¾·MV”.m‘ÃÕ:Î6¶²¸-Îîh3Ð¥GtXEce"‘š4Vðì
+ʽ2Ð$çϽíǺÖ\˜(MµqJr: x¤A'(ÜJ8®Û‚O †ŽÈmªûC¿((4±QÁ€Õ‘¼ŽæXžÈÓØÒØXÞ e©!ÈáŠ%îí¾vû_Êv{C‰Æ¨fáÀ>ÍQ;«®ÚrÞ5CªÓ¾é©œs~9rŽŽ´‚T9+²#š9rÖ\¡Æ"ÿKÿÜ´ÅÆ©Ö¯þ”MàîŒTg<ØQ9>ú)‡5›E:ìDs•­îì| âP;. C&°ƒÏª×SMè'Fýê«4j¬à‡*óʳ&£Ñz?ãPª·¤z"Ç)­t¬&U?§@œR•E‰UoU·ÚÇl}ð-·ë¬Ýø<¸/ì¢ó£ðu 4‘ 9Hÿ_€d­¢™?Q ý‚S
+×-á p8Çó[
+&ûO=„<4Zû/%4SK¼5^˜}³¸~K#CœÚý š»ÝT;(7?´\ª%: ·’?Ñ ê…ϽݺÎO\<%b |"¿í&‹’ž=ÖmÓî{&›Õ–°å©†=̨ÊÑÿC»¤= 
+ÚÍ í»jsG5;]¼¿¾üðu¢˜0D±°Q.Ѓp¹+Tmè‰&0v¦–ÉÓÝ–¢5üXßU­ë§NÞø•˜V4r…
+ž«ªlHÀ†ÖPu‚/ˆ€k»‡¶ô“×uØ$hªEÚÁå}™¯&,Ðý >z¢gÕŽ5Â,®›å'Û—„„
+endobj
+2672 0 obj <<
+/Type /Page
+/Contents 2673 0 R
+/Resources 2671 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 2666 0 R
>> endobj
2674 0 obj <<
-/D [2668 0 R /XYZ 56.6929 270.9876 null]
+/D [2672 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2675 0 obj <<
-/D [2668 0 R /XYZ 56.6929 194.069 null]
->> endobj
-902 0 obj <<
-/D [2668 0 R /XYZ 56.6929 153.7758 null]
+/D [2672 0 R /XYZ 56.6929 404.0791 null]
>> endobj
2676 0 obj <<
-/D [2668 0 R /XYZ 56.6929 116.6136 null]
+/D [2672 0 R /XYZ 56.6929 253.9299 null]
>> endobj
2677 0 obj <<
-/D [2668 0 R /XYZ 56.6929 84.0158 null]
+/D [2672 0 R /XYZ 56.6929 130.862 null]
>> endobj
-2667 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F62 1379 0 R /F21 950 0 R /F39 1173 0 R /F41 1233 0 R /F48 1253 0 R >>
-/XObject << /Im3 1530 0 R >>
+2671 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F61 1369 0 R /F41 1238 0 R /F21 954 0 R /F63 1385 0 R /F53 1333 0 R /F39 1178 0 R /F48 1258 0 R >>
+/XObject << /Im2 1355 0 R /Im3 1524 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2680 0 obj <<
-/Length 2175
+/Length 1417
/Filter /FlateDecode
>>
stream
-xÚ¥ÙrÛÈñ]_Á·PUvœûF[ò®\kYåªT´z#kР¥òñéžîÁAA¶’->ÌÕÓÓ÷Ê™€Ÿœeq(tÍÒ<
-c!ãÙj{$f÷pöË‘d˜ÀC¨÷WG?}Ôé,óD%³«»®,Y&gWÅõ|qqqz~röã@Åbþ><b!æŸç_¿ÑÞÅq®æ‹_N—°T‘N
-©ªÌÖÁõ~W™Íî¬Z¤ï§±Ü”„“Fø Þahst ŽÃ,‘»qrºüpyvquöå¼»Õ£3°…PP¿K’Rƒ;¹
-“\¦L‘ƒjȤڵ¥Éª®ZÛm×w4þ]W æ¹q‹ß…P>(«Ñõ~kª`w,³¹5…¹õ`wõn"…³ÀÈ ÌX厶O¿ŽrÆßÐÂ2\ds³oë­iË•Ùlžé|ŵ¶ Ûç éÉ <.÷ºq›è<J2/¯§µ­øµ©î' ÚšÂÒv[ÓX<örE `㙊… ïÃw°Lõ4•àÞ*Œã…ãÍÉmö08Aq¤Àª•ç Þ¢<™_­-
-Hª9‘»ªÝXО5«5ÍLQ”mYW´ 7vc»w ;DØ€Æp²²SÏ —*uÖ‡·eevLš‚i
-'ã2û/pü•ìÌjU†#ÕlWáÕfÂø u.ådÝ£ò%`$,؇(;žïIïZB”–ðîH4}"žÃéðHñ$û£s‘%ÌDBÐ?FB’)ºI qå\!%W
-!FÐ)&
-s~íãÌ4M9Æ’hœB)Œ(•ÒìÄgk·8_Òd»oËMÙ>¿ÅB~P»ª4 )þJí:DñzíÚA9O@×Aqãg'Ýìž&ÿ¡!¨ÇËÍxù<Qû‚<CeŠêz½5«Ÿo¾Y”®ý¹±«m'ÒŒÔ:„$ãkþ…oS/ä hˆïÊÀö“E>mÝp1!â0B¿…—ë`ªˆWl±Uâ¤Vnm½o_}Gv± ÷(ÑD’8fÐ}ñð:Vè„Rh‡±îÞ‚$¼+mó*Öìëå±î L×ÛÂ>N!ÂJ´C¤,s¥¤ÙQwZC“¸™Ž:àÕ"ÓÿÓÅ?¬”ãPËȇ=,˜°@Ý7®m€JÔ%iØiö·Û²¥½.:à‹¸û•ý 7)êþ ¹ÊUXÑ2æÂbž©=WÂp|ùñm(©“ñˆ–T89R¨"…ÞžKÏÃȯ֎™P1Íó©"=9È êÞ‡ñÖÅ>{ãõþÞ¶~ôwn§ÞòÃ4P†3LÙhân±u©Èõk°²ØoPÁŸp•å¯ŽŠ
-Æ¡ËU{X%ÃœNlòu.;Ñ2ÀñÚ´fl·|²©›ö@Y{²Õë„“u»C's…³Ój<ü~w_ Ø=Ñ9—Î=>ï|Xg#«/U¬¡pŒ³®pü¾ŠÁð|žY›G¦ÆEnªµk<ñ¼Ñp±…!Z„J&:«H¡&í\,R=Ó*’`:UKÛNäw[x„þÆw¸dwóa(tè)êár^€¶Ä€áz8qpäOØø|¾ø|JSçl)âµ'Cy2&º’å—Åœº·“‰¢§Ú;b0õJ¢ JŸ†ëþ£±ùæsüH÷‰“<ÍÞ¤z­³µÝQ.ÓÔ*áXØÛý=?W¨Ï8Ê}šÍ
-7 pÞ^dE1Ý¡¡¦ŠhV`ð·”
-´è?ðÈ(Bj²W¢y÷ÍÒ°¯›a¦Op#÷>èñ“P3Òš--Ãö™lt“?_Äâ0 O}`‡z¿ŠO”î¢+pþòÇ÷þO¨­t–©þ»º:ˆZçÒ…r•©<$½ûLÿ’öÿPÌ[‡endstream
+xÚÅW[oÛ6~÷¯Ð£ T/¢.Nãv Z'‹]`@ÛÆ¢cu2•Ir3ï×ïð&K±Òۀ€EžëÇC`ø‘ å³,
+’,Blö<ÀÚÛ q<¡g
+û\ëÉ/oXd(‹i¬·=Y)ÂiJ‚uþq:¿½],/¯~Ÿ…”ãéš…ãéûùòÃü¥ÝÎ2:¿]¬f!áỈpÍãérþ~q^ß|¸[ÎßÝÞ]-׳ÏëëÉbÝ)×7€`¦5ûsòñ3r°ãz‚ËR<Á#’e4ØO"Îó”r²šüÖ ì­š­cá,E<¥ÉˆG( Açtàž¡˜Qf\²Z,¬åów«mø1ëù!Q”ÑÌ°ß½y žÉðÌc–Ò{„QÅ)lÓܯFjq }qÑÿ+Žÿ€¸b:Ub/óp³“›?6•Ú~§ðGΗÿ®”|¾\«|óœV>Õ3’Ne“
+CþnWÎ
+ Ã(‹âF>~ ðÅÕòÒ+s1Ë÷…*š¶mU[ÒÜJ{ºÚHKz/ÔA”#î qŠh §X Ç2Hš°c
+!ÏâˆÅ¶’>¬½¹‘ù,_®T+k%[«ÉêØ´rßØÉëJ5U݇ýéܱ(¦NNÄP’ʼn5ÊB‹¡\m@¾T‡Z‰ò±.T«÷ë ,F§‘Ù°®qõÀµ”a«Þˆ,£Û'J;êuøíÈm°“BÙïî°*´¾¹¸/ó¶ª÷cžÅÞ£ÜâQUMÑ<Ç”€AuG)$oÂÙ0òÆ£ˆ‰怀a_„Á‡ˆŒ fÇõ‚ƒŒ)°ÜË#(•D¾
+½wF³É³²ér±z}wu»¾ºYv»^L©—TÄ9£(ÎHâ42\.íÚ‹ Ta+;rµµ_ñÍX˜ú¸ú¸‹ï‡ßTVz¥B’¢,M­9×^>‹2'¿±a…éI:‡¶Ú‹¶Øˆ²<Úõ;¬•¹%ÜG¼GR¸
+#Ïe><Í ŠÌÝIB¹eíÝB…°&¤»”¼-½[ë‚NÔ¾N§ûi/šÖ¶„aÿúêyú{Éùá[-ŸIÀAã [=÷èçm/ÁJX¹´ü)í.MÂðtûÙÝnì»ÝÞ ø/{\/áYg{é¯k3Y®ì Ï{h‹²h/½rGúi:ÒrâÎ¥ÿù|zïG biJOÛAÿ©÷ ñJiÃIBž«Þ½•Ïuÿ$Ö)Æendstream
endobj
2679 0 obj <<
/Type /Page
/Contents 2680 0 R
/Resources 2678 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2662 0 R
+/Parent 2666 0 R
>> endobj
2681 0 obj <<
/D [2679 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2682 0 obj <<
-/D [2679 0 R /XYZ 85.0394 749.3357 null]
+/D [2679 0 R /XYZ 85.0394 751.9132 null]
>> endobj
2683 0 obj <<
-/D [2679 0 R /XYZ 85.0394 691.1408 null]
+/D [2679 0 R /XYZ 85.0394 674.8216 null]
+>> endobj
+906 0 obj <<
+/D [2679 0 R /XYZ 85.0394 634.4081 null]
>> endobj
2684 0 obj <<
-/D [2679 0 R /XYZ 85.0394 521.9242 null]
+/D [2679 0 R /XYZ 85.0394 597.1931 null]
>> endobj
2685 0 obj <<
-/D [2679 0 R /XYZ 85.0394 460.7643 null]
->> endobj
-906 0 obj <<
-/D [2679 0 R /XYZ 85.0394 423.114 null]
+/D [2679 0 R /XYZ 85.0394 564.5425 null]
>> endobj
2686 0 obj <<
-/D [2679 0 R /XYZ 85.0394 387.2272 null]
+/D [2679 0 R /XYZ 85.0394 496.4842 null]
>> endobj
2687 0 obj <<
-/D [2679 0 R /XYZ 85.0394 355.6754 null]
+/D [2679 0 R /XYZ 85.0394 434.3126 null]
>> endobj
2688 0 obj <<
-/D [2679 0 R /XYZ 85.0394 291.5937 null]
+/D [2679 0 R /XYZ 85.0394 259.4673 null]
>> endobj
2689 0 obj <<
-/D [2679 0 R /XYZ 85.0394 209.4884 null]
+/D [2679 0 R /XYZ 85.0394 194.3308 null]
+>> endobj
+910 0 obj <<
+/D [2679 0 R /XYZ 85.0394 153.9173 null]
+>> endobj
+2690 0 obj <<
+/D [2679 0 R /XYZ 85.0394 116.8171 null]
+>> endobj
+2691 0 obj <<
+/D [2679 0 R /XYZ 85.0394 84.0518 null]
>> endobj
2678 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F53 1328 0 R /F22 973 0 R /F39 1173 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F39 1178 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2692 0 obj <<
-/Length 4060
+2694 0 obj <<
+/Length 3962
/Filter /FlateDecode
>>
stream
-xÚ¥]“Û¶ñý~ŽUžX4>’ț㯺I\7>OÚ&y HÞ‰c‰TDê.J&ÿ½»ØHJÔÙ™ÎÀ‹ýäµ€?ym’(±Ê^§6ŽŒæºØ^‰ë;è{s%yÌÒZŽG}ssõìµN¯md•\ßÜŽæÊ"‘eòú¦üiñM$“è L!ï>||ÿòù“4^ܼz²T*ÖÉâùû÷¯Þ½|ûohƒa¤‹ïŸ¿ûøü;‚½bÕâù›Wžüró«W7­1êRhÄé׫Ÿ~×%ìàW"Ò63×Б´V]o¯b£#kí!›«Wÿ
-Žzݧ³¤"R:Q3´PjŽÆF‰VÚÑâf]á&ž½Žåh¨´@¢ÔÂü8fù’†Lf“qÇ&ã!í®¯Û†¨³Í?U1ž4Q@“$æ/šî°+󾚙:†]ÄÊO½"³Eµk÷=MŸ—e‹åj—ÕêpwW7wÔ¬›Ûv¿Ítúvvƒ:Êb‘ø–s;”‘5FñG\/uœDÂdéõRÉH)™<NE-¬ñk|7OE˜,>¥b/ê~MµÜA 쬯îª=YîÛªé ÒÞRù{åºZ†îéãu}·ößvUßQ­¼]eÓzBÃQ”>ÛT÷Õ$@µx{²ÀSlfáS"Õ& –žx¸­ºã“ª»|µ©J"¥8!á+û¼éò‚ˆ ­\tõ]“÷bŽ`EΫŠÊCW•Tƒ£ve~€5}] QÏš+/M¾­ n¼ûÀS8Vì`£©ÖxšÝ0÷É7Þ¾ñøÓ&åˆM»–-p´ÈZ´®, ÖwÜ[V]±¯WwÔ •?¼~•t¡²ØÑ}»æO‹Ÿè%ø'//õøÙBÍ äMyÚgµœn”NÓ¡›Å›–ŽÐ~ì:^16´"tÓ¬
-Üã­`×òÜ$³Âx•“ÐIÁr¢×3aR¿ ºÃ¬ä]×tJØt“qG¦™ž!öŽ¶±Ü,H,WN›d„'¿}Ï#Ë’U~G
-# Áùz›_Ï` ò“e^Ð~™™FGZ¦^Àô¡ÿY¬ê#Šó8GD6Í<~+ÞÆ.A¶"iá“iäB&-Õ¤´RÅÖ*#c­RëŸsŒÁ%Æ‹a:ƒ›Î"“‰ j°bîóšW_å]•Ä´0/­"ì v‡I³ÅÇŽñ¥ è L¤?M?ÃDI*ä)¥*`\Ö]a{~ÇqÄR›4J3m¦D]UEîœ!•Iïä«éN c¬:°ß-‚ðz€4Jq¬àÔ`v¶DBߦnx‘“ÎÖð›*ߨ¯~C¢Åà@߬ýjÛüH½+žê¾îj#ð,3 Úš¡C¿;°Ñ ´vº~’\?7tï“nœ›£ð
-á<Δ¹Qíhn¤ …ÙŠ1S"CÑÅE£íL¯u”@¯Õ!0㵊ÈؾD>§)s/ù4¼mÁžn
-RagxB…×$‰ÔéT+\¤†PYðeú éD‘œe‚tâ)£½4Ce›ÿVo[†Ö[çüE8QœÈ
-?ªΦڪ∙Û5u[Öf‘¯Ü=¿“²„É£“yÂØd¡…äÑúTqC Ñ6eÇ„þïðhîþa¸½ðgÇotNø Ðú¿ÂY®¥O.|K!ÎÞ>¹+ë¾›hWãõ´+һ쒠GQûû|ãœRÔcÊá ŽJí§÷$BwÄ=kèøY“Œ‡•ý
-4/kG¾0ÇïŒ}È*Üw6uÛ¦Y´SªúZXÆ…å¹(zuB´º¤ß×øté¯(•ª î/\«‘œ=Káí˜O&#Éé
-N;ä ½1Ã6±…âUp7œð§DCã“ÿ8r‡Ž7?•„‰Žào©Î·ÔPãÐWMîË|HáÙÉê\®.Tì™çlû¡6ç(g‘!q–E¥x‚5ˆ¥½>º¯Ý{¥=ß9¨çødBh;¢À (¯¹ßxÕ—Øʽk’‹+¹Ó<²KÐ|ì8Áµ¶Q›“\èô,uê Mp5§Ò
-÷¡ýêþ™ù9îÿ§É^Šendstream
+xÚ¥]sÛ6òÝ¿Âo¥§C|$úæÆi›k“æbwzwi(‘¶8‘HU¤ìª½þ÷ÛÅ.øeÊñÌgL`,‹ý†Äyâ<6¡±Òž'V‡q$âóÕö,:¿ƒ±ïÏÏYøI‹á¬ooÎ^~§’sZ#ÍùÍí
+kåùöLÇ*ŒµR²9»>ûg‡p0ê–βBD¡TFÎðBŠs!BÇrČ؆FIå˜q}¬ê]S6Ó£(&©Qç‰Ò¡FÏm-€Ñ2âNÐ&B k€Â‘¥ÅÜùYHUÕvyÖ ¼ÿ¸È?ùÖU׺£Æ鳨ÇÝ͸{Äó½üˆíw–2 …N%‹{~\o³Õ7Ÿ>Ç*Ûß4Åj_´´lD°
+å·\ÑÀÕ»k‚þÂú„Àý…Hƒâ÷CÑ´ fŒ9/~‹"Yú$(+þðÝ+H¡Ìx猺È&¥Øß{4©! 2Ÿa$Ç7kwa‚l³©¸M„5õÁ5VźªÝ7ç©nø.ݤ8ÈòÜQ ˜8X·­ïýÀ­ƒÔ[Þ˜>ÖïóP¶k”p×ÙfÕH;R¯È˶¬îxëu1XŠgŒÆƒ<Ü!NŠ‚Kò ,åwmoÛ°=¸ ¬²ŠuÕfeõhZCd
+z²z8D_”9 -Ñ` Ÿp¥ G» Þ¾»|ûššnž“%˜PߎȞŒ‘A"k{ýóå3”:éäd&èÁ¦òŠ¸ÈgîG 
+
+ï…kj¼ (ûì]üèî‚Ð/IŸuõJ¥=êbO¾ p—¼G^,w¼]ã}ÆÚz7À™›{`8CÚ}¶"›îÐÜÖûmÆ4Kø%¹œ¸fñZãõ˜¹'¬yÓÙ[Öõlh†·Y^LÔ›î±C²Û”Þð­¥S&„ôžl´’¼°s7/üÜK&ñ¶¸š»djÝÅzþ’éD'.YB*ô,ýC ¥GÍL¨÷mçæJÜÌÛWwßwîþ°;º?¶‹sT
+Óllx£O[(D «-n­¼VÞü>öüiðê°'â«èB¨GZ÷‹‰p·ø°C»W0ú¢ZíÞD@?ÛÜÕ{0[êÞÖmcDÁ…
+~x{ùjÁI“>:êÛ«ØQ‘ër…v\&-N‡© v]"¢YP°!Dnx8ü\¹¤€uKæš™ŒoL=BÎgHÝ^Ù<àêÔÞð¡ÜlhfUùœœºà,µÀµæÐí˜::ÒHSl
+§#b#ÛÁN#ìö%9t„˜Ý†¾…£#M;H‡é3íƒ<-*^Õ&²¶H_æžzž‘¨hH ¿«÷s–¦¬š6F¿À´2!)[4«xš6Å+tÜg:
+ ÖŽ
+ ."SÝf‡MKã”m`Ëéat§>ËÁâVC><ƒÎöÐRñ{Æi¬6àœî‹Ù|îW
+z¸,5#ÄšV<):T¦KÀ»ä¸+šI§}/F_Ž3Æñdc\^TN ÷qî1 †é’s÷(8CåèiïÓÜ£T¨D÷oƒGE®2pŽÊ„6IõàÝgÀRÐ^…¯Å°dœ¹KK­Ä—¡1pÖ2±.ðyL1¸ {U>ŽhSi§Ñˆ4ر…ðyÍ»/³¦0š6†ä¥vJ„C…ÃÁ^á#IüÒ0½t
+ý†/MþqŠŸ"€ãØÒ˜/ –î)kê3»½Á€"°¯Øy6kH°æ Œó³ÎSJuÚû?é6 ÚJÒqóÅ\ô§Â8±òYÁŸìßÀ}¤×ôTºÆHlä83Áñ߇˘—5VÄ&Lµ–s¿0“7zøwöG@äw$ÌL&‰4œø
+³ÍÚæŒÅ¤“ #ú§Ohwba„àä$ªÅÜ- ï4¦ ¿ŸŠ…Ç¿CXPAxîRãÐ(#z¦Í ˆ eԕ»úWi¹\b¼ÎªKâwèoŒ+JÖX—fžÉX„25“€ŸÒ°®º<ÎQœ„Bybò¼Âµº…f(74)ϯìö„Ü]ˆ vYÉ
+_®± ~d…o³+Våí±^Ø´6`}©aÁ¤H/Á®ë¸Ú¼èƒ]lƒ]¬U@ïMÅh×åì‹ç
+b/Cõô.xˆîÍ5Žº§
+JÕÝ£}}ðÜ# zÉ|ù™™úí“W’!ÁFW`•  +ù›ÑgSƒ¡X€v¶Ôç’1´8ù†×°y*x`&¥÷‹Í¼{Œ’äQ~-mê£ ¡ü{’ðŽJt¥¢yX)s³êÁ)Ü!È"š(Œ¤JÇ÷‡EGœ Ž3}CNA¡»¨Õ0µFaÜ?5£œJ÷8ëËwêŽ`§G
endobj
-2691 0 obj <<
+2693 0 obj <<
/Type /Page
-/Contents 2692 0 R
-/Resources 2690 0 R
+/Contents 2694 0 R
+/Resources 2692 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2662 0 R
+/Parent 2666 0 R
>> endobj
-2693 0 obj <<
-/D [2691 0 R /XYZ 56.6929 794.5015 null]
+2695 0 obj <<
+/D [2693 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2690 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F41 1233 0 R /F21 950 0 R /F53 1328 0 R >>
+2696 0 obj <<
+/D [2693 0 R /XYZ 56.6929 749.2922 null]
+>> endobj
+2697 0 obj <<
+/D [2693 0 R /XYZ 56.6929 666.7399 null]
+>> endobj
+2692 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2696 0 obj <<
-/Length 3185
+2700 0 obj <<
+/Length 3285
/Filter /FlateDecode
>>
stream
-xÚ­ZÝsÛ6÷_¡·“g*>IàÞÜ©›Iç⦱3½™4´DÙ¼èé¤î_»X
- Ò|zsûñýW—¥žÞ]_~¾ûéâú.‰•‹.¸B™~¿øô™O°ƒŸ.8SΚÉ7xáL8''ë m3Z©Ø³º¸½ø%1ÌFýÔ1Ue™±²Ñ…!˜3F”a+”T^ooÞ¼£]ÿøó‡wW¸ó;Ü—ŸÝk’Of²„7P/NÛ´û§EÕÕRf”Z3)M 3pw)ì´®-¬­fó´ï¨¹ôCÛ5±0*cQfœ–ͪÞTëÑ¥ é´
-„Û1n»j³¨<÷E¶*ØO¯«ù#õηë5P’ ìëiÕÔ¡w»¡gýG5ïVÏøâ ³¦ÞU³ñRMf¢pÌ
-0FR7ʳ„¥L«i¦·[Øˆï «·ôFâú!1]âN|ïbÝlš¶ÛU]ó5Ì{Úm݆w¡Û=Ö»–dÜä´np„ÚÁhA,`|i§ûy×l7­ß;I£Jˆéñ£ÿ¿ï›¶ñLŸÎëù—–¨PYøìãàvÓÕ›./†ÿEÂ.4zÜcÝÖ4œslë.qZ4$fàQu„
-4ÞGh¥]?}°«Þ.²PÁ5ÛíÞ7æhÔB‡Þù–ü§%Ò߸á>
-Ï?ëKA´Û0°£çz›" &I8y|Aš?ëc>Å€O$ÄÈ.¬Wh"“Õjû­³l…lÔtÕýÊo<nú“Ï+o$è÷.÷N–ÆÚÆ­MÍ’BŒáBOõ¼ùsIŽc'Å’ö ”Öª)4p
-ÐŽØuÝ´m³y
-<²‡l´`§U[Í”2/ jNuQntµW«€î‹Å®nÛ³hZ‚Ž„´çåIT#å–eÁ¬Ób(Q@SYrBSYŠÌúe–-Kqh} IŽ2ØG›AQ ç÷ÂÊà{Q#À$˜ÕJôª€½‡P¿÷ª´ŽïòX9 «ÀÅ ^‡ Š'R¡ H…zH­dZ¸WÁ¨(Ë!ŠÂ2E…ÊPºƒÂ°YmhA`Ô —Fšù#s7Ô{ÿL}áìK=`­Çph&dÉŒ+^ G}ýæ…ã^8Ò
-G°êK;N»s*›a¬¯\=z¤hŸÓ;Šˆ¹ pL°k³í‡BOˆsl7±fô›l÷ ’æ¨ò‚/¼Úæa“jÉÓ0!
-f$€Ùy˜È¨ÎÀD¤Š™–ÇVDò4Ã
-¡õyÕˆh(8x -)n“Þü¡;å=8[T¦÷m|é«W$ÞæçsαŒÄl$~»#x¡(2ž;rU†`ɬäe&$¡Â'¡ÞŽÁ—±£Q_̀匶‡Ÿ^à¼ú¸˜‚ Y”¯@ þœ*Ïࣰ@Õ0O½,j(XÖáHçâùÊ
-/ß i¶ôLðíûª¥ƒ˜£»¾œU@¨ÀÇgÕ0Ly‹àî9è†Ë¾á£ÀëŠÂÉóá“SŸDåÁkUÅÄꛧÈ”Z—"Qˆq@Rê@@¾¼<Y½xùÝÙ½ ¥Ê¨Ã
-¥à¨cvxì-˜úJk%åëK©LoM;*œÇa›ýÛ› b0ÄP<e{iá Ü ¶Ï¨ÎØ>RùÛn¬xKÖÙô¨u©ÏK¨FDìVÁaKZ;”¡·{<gb£W5ö6ëÐíž+©-!UÒ9#^óÛ׌þ>̇í/$ñ`r×úZ­ö£
-¥Ÿ“.U5'pÏ€ ¥bp¯êjwbW¡ôrLU÷`’“~€Y©ôy?È©NûA¢ÂE¿ÔÏÇ÷7ó]‚
-]0ˆ&3SÒȘf…•æ¼žÕÈÂà 0µ¹²Ã…é^I©þjFånIciUHÉlÑ>ªe¼‹r†»ÿŸ–ÇãͤS¯*·oÔòXÁW2Ùÿ¼±«Â7
-ãÏ_©ø{ t¥:_Â-èkHÔlÆò †X)–¾ìî ‹?†@Õ¬íA½uûrLH8
-…;¥:=}y,û
+xÚ¥ZÝsÛ6÷_á·“gj–ø$qoîÅí¤sqs±3½¹¶”HE¼ˆ¤*RIœ¿þØJ”âÎ.–Àb?~»X™]§ðÇ®s•¤ÂÈëÌÈD¥L]¯š«ôúÌýtňçÖ3ÝÆ\?<]}ÿ£È®Mb4××Oëh­<Ióœ]?•¿-îÞ¾½xõúß7·\¥‹’›[•¦‹7wïïþ‰´·7†/î~º„W.…&¦-ŸNïß¾º»Éäâéþ槟¯îŸ‚X±è,V¦?¯~û#½.á?_¥‰0¹ºþ /iÂŒá×Í•T"QROÙ^=^ý+,ͺOçT¡Dž¨œg3ºà|NÊ$ZpátñÃ31Õ‹²Z‡íð=|Ç¢ï¤eOívöƒ¶?ìÊb¨ˆ1Þ@ÚCAŒ‡¾êqí÷¯ÞÚA¶:$ôU["…ÖrÔý ËÕŸ‡ªú)ÿ°©ÐMå—تö´H»­ú>°>#µÀõˆÜuHÝ"ùC ãó÷4åƒ=Òõ­Iæ<‹±Ä(ÅÝaêÖz‚Yð)Þ#™‘à?oêÕ™WE_!ñéôÙçz»ÅѲB&ÐV &R±xÚrel.t’1““vo?̀Ʉ‹`€n7Ô‰ÓÁ§¶Õ,ÑFˆÙVÙv¢p°U׶ÕÊî› 6…Ò‰ÉólªÎ§MÝc¤5Å3œ"à¹C•®«}±Üíó¦jqTs18í°[ã3xŒ< (ãve…’¥ ‘ ²ÇsÍ)8˜ÎŒ×ùn^çR*o–¾ò;¢Ï€"‹N×íiÔš¥s`ËÛÑzúfÝÑ̨Ï~ÊJŠ €€À’u#–º
+à¸B‰f"{¡6Ržs¯a^"ÕìØ…öš>šaÐ_êæеnˆ\ÐÁ¢BÅVžk
+Uë
+—<åS½ª¬ ïwŽêý>™(ÞR€iT
+Òkz~¬ž—Ö[%rBuÄ;¹£ ™4ˆyÉœ·Â˜$“
+Š„SHëq›ª¯p:^Ò}X©¬©ÖÇ5ŠXP¡Ìün§ýøù b`• È5'Э%QWX/;·ÖßS•¾{ëÁ€!É«Õ¿ÔxŸ‚ï;¢Õôi±ì1“À\T‰Á •0Â+B¨Ô+ÂRã3Û÷æÐÓ2KâhªöZãÄ€õ±aÿ:”ÿFŒ5‹G5‹!¹áé°žýaµªfIaïݧÄBå Œ–“Õþ ÷2A†D3þ°v@WOâ].žœw4;icæ„ë¢ÞÎÖ ÷póƒ°ÙxiY6=µ„å{´¡v®
+Ï¯Õ UuMìñÙ„ë”ýxNjZÉá‹åùZ®£'ëø–lJn‘í¶ûÜϹra ”:ÔÜ›ÜAÁã O0¹MX%2ŒgçÇgGKÛ ª¸¬µ‘P¯‘b,ã“\-Çýà$†,ëJa¯
+CÃ~ÒíçìÚÔ}5EžÇÑoè30ð0`x‡”å¶h?âÐ盜ÐÚl4;×£eN³ç<Rëлhçj[–ÉÐT"@'„€¥W5úbi‹Õê
+–smx&óDÚæþ·{µ*<õ’bþB!NÃèàœ}HFT š¢‚°‘àXꙑ°@zçÌ6Ï9ÓÀöØ%}×ÍèÅ›‡»7÷xCpHën@we‹Qþòûõßz¤>þr‡Ä)öâ¤OÔz*„Ì°~öKÑžþ\–B
+û8’ÃÊ[ßUWÇ¿Ì2‰@ÊÄ74ç‰dæE0ʲlŠ¢° ¡(Š2éf‡E‹óVX
+ŸØ¯²#L©Âýzˆ£Ó´»Â²æÆÊÕ­í+|·"Ú\ Kj»qŠ(çv\ûšÑâLÃïIƶkèO»Â«¯?´¡–< ,SI¾y&b®ó0¸|&ÄííÈ#ù”J4“ò² kFˆ 4輊–‰“F©yîÖZ¾m_ÆêÕ2wñý\¹¾~<ã³ °¸ãÎà…`P „_GbU‡`–ä<Í"ÀP”„´KB3k›>0ÑÒó¡d`ë1„°œ’¹™†–K/p_ý¸(0®³ý nD¨<ÉGaƒb
+u9@7¡’9ƒu
+¬ÇÙgìOê۪؟9•[&QEϽ=’sÿõ&TbÿUmÆip¢ÿû?âÆÿüƒä òœÏÛJ“NÀ¼PVv–‰cÑÃÿÎÊþ?Qje¤endstream
endobj
-2695 0 obj <<
+2699 0 obj <<
/Type /Page
-/Contents 2696 0 R
-/Resources 2694 0 R
+/Contents 2700 0 R
+/Resources 2698 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2662 0 R
+/Parent 2666 0 R
>> endobj
-2697 0 obj <<
-/D [2695 0 R /XYZ 85.0394 794.5015 null]
+2701 0 obj <<
+/D [2699 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2698 0 obj <<
-/D [2695 0 R /XYZ 85.0394 751.4437 null]
+2702 0 obj <<
+/D [2699 0 R /XYZ 85.0394 507.1706 null]
>> endobj
-2694 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F53 1328 0 R /F41 1233 0 R >>
+2698 0 obj <<
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2701 0 obj <<
-/Length 2550
+2705 0 obj <<
+/Length 2952
/Filter /FlateDecode
>>
stream
-xÚÍZmoÛ8þž_aà>œ¬¹|•¨/ x¯ÙEmk½ÀÙ|P,&*K®%ÇÉýú¾Z¯v¶]à*Š‘ÃáÌ3ÏÐ!3 ÿÈLD(Jh2‹Ž&b¶Þ\àÙ#ŒýzAœÌ -ÚR?¯.~ü…ų%f«‡Ö\a)Él•ÝÎF$B—0ž_þýæÝò2æóÕÕå‚R΢ùòææêúÝû?à]`IŒç—׿/?ؾ›Ë„Η¿^}¾¼[ývqµ
-jµU'˜i¾^ÜÞáY;øí#–H1;À F$IèlsÁC‚3æ{Š‹Ïÿ¶Fͧc¦àB"Ay4[0Ž$¬?n0‚bB@( ŠeÁ`”ŒÌKiƒÝnwj§¾ÞÙÝ—/»]­û’U›4/eºQ¶ãv]¤uíD›×­êÛˆrNâY[‘ºAjD_ÚÒVA e¤«ð'õuŸï.‰œ«úrAÐä)ml«¬ìÓ W{ÓX«vïº2ÏÌö©—¼nÜ<ÕƒŸÏ}PoÕ:ÿcª2½Ó¬­HÆT¦´^ÞýM0”ÌÐ#ó,8MÀ£"°!(‚Qcë‘ E,w±¦å˜j$ALÄ~Ñö9ç‹Šó²Œàùû‡±Y9Š9ø"~ƒ~^*¯­·T›¼iTöƒ}{mŸbó²Q»R5Ð&¶×óï7*CƒHtî“q"Ï„ÄQèDD8¡a@¼~@°`ë”®Ah¨l?X,HGÛÕ“¶£‘óîvl0»ØÐãi[¬ÇÞchèOu8è1ºq.â¦o v:"D4äýO¢A"Ê9q²›}íŽÞàÄ©à
-\2NÈÙàñÀ¨$óÃNcoi_r÷´¶†FÝÀžRŸÍzÑG*=›tñ]«²I›¼r˜ãnO4̺Ç^ŸuÿéÜ‘‰ ‰®?~r¥Œþo9 û"‰¡ì 'jKMÃ~2°¿ß‚m•ÃòL·êø6Àý¦)îFRÀí1ܺ$pw×ß
-#a€}r/Ajd3Œ \ *HÒÝÍ;U¨Æ—iùúöªÁ}£÷:J5 ^£T°obÞæô9 –pÚ —QÊ!ÁóC NÅ{„( kLò#%ñÙjMd2óé­zÎ3Ë_ m©QD´ÇFC€‘¡u)£óC^vø¾#¶©ž5å<ä ÌçHö-
-ös@쌙#N»æ׊?–Ör=êîEwz¨(ªƒß2dJÛ€DºäºÏ‹¼y½$
-{³-Ì~$…ý
-+0Vî±® ¢­›$½‚_"c(i¯tæ@k{ó$Ì=†ͯ«&·.Ü­¯m¹®¼Üî]š1e.tùk+áçµ/.ïÔö-uóìR`ˆ>y|‚O¶UWýÅS+ýh·¸ßš­áî–L2sþ–œí¸Y@3 ¤Ö3¾W`‡ùÚ¾¸#6mŸ UÝÃÛ
-ë¶wÝ®Šì©ªÔ9n=°ìNF¦&3Ú(¡ã3Ɉcì'5SýÛ)Aä„Æ>ÿ÷meiîĘžZ?ŽÏ0µÖÕ££»ÕÇ ?ìÃKR<’°BædÊÖJtø; ……F¡ 0ŽlúýM¨H\D;ÿkÙª{+ŸeZÏ:—:¯ 3ÔöÍ÷‡¾'ïÚš‰¯h\ñ¶Z}8þ,àÏú+„kVëþV×´·üNüÅVbî-_ÑñÒ1ãÛ|üè–csôýò_×ËWÎíªÝt(œóRÚJ2ô9@a–»k= dªésx‡þ<rèáÊ1ü'µþâ¿hAr@7ÍÐÛ/¥ûp$À—ÃÒªÌ5–YÉÝõÄÁ™µ¾vZÆõ=ˆ$á §£.L¢
-7­ô?uhâÂ>*åû*÷©¹w‹¥V!ë #Gnw%!ݽ¬YAc‘câé¸Ôt»Þ‡Hu‡;hžT÷þ7¸à`ZS¡É°ä:-­îº]•PX±|ígµ¤Kâãe0®Ç…¹ZÖ uâÏLÐ!6ú÷8P¬ïþ”ãŸÚð1)éÔ•‡@ðqä•Òv'1rqˆ.¦©ì@÷ÿ …éuendstream
+xÚÍZ[oÛ¸~ϯðÛq€šË;¥Ç,Ú-ºèÝ&Å.̓b+‰P[r%9iί?ÛLI”œm÷àˆ(jLçòÍ I²ÀðGB"™Òt¡RŽ&b±ÞáÅ=|{{FÍÊ­BªŸ¯Î~ú…©EŠRIåâê.+A8IÈâjs½ü‰Îa¼üpùùãë‹sÅ—WoÎW”r&—?¾ùðúÝŸð.0%ÆËß.>|¾xoû>ž§tyñöÍåùÍÕ¯go®:¶BÖ fš§¯g×7x±üz†K±x‚ŒHšÒÅîŒ †gÌ÷lÏ.Ï~ï ¾šŸÆDÁE‚år±b%0\`)B€H‰IFY'0JbóTZ`_òg»ð2Ûå¶Õäë:o‡ë'4…U`¹'±ÒQEx¡/ÖC0s¹Ï×Å_Ó¼V¼l²Ö¶²íÖ6ûMÖúïY}N’eîˆ+û¼uïW—ïÞ®šâ¾Ì7î§MQÞûs½ÀŸ~,àŠ
+h¢RX‹““
+ü^Ž‚®D)&îwû¬¨µÝ!M
+JÄ)(˜ÌŠ”
+A Ñ•ç §#â“*92› †KæhÖÕn—•«ºê1¯ëbcįYé”Ûi¹é$ìQÚ§ˆiôÆÛ¥ë~,2Ë
+Ù¥ &ž—U”]Ž8ر#©êÈ0 —D
+îGùʼnΒ ‘w:PD!.`¨y? ¨füÄSé[Λ($•dóóz¢È¼áSŠ¤Pª?ïçÆ)àíååJ[´SWåô æ=P u `#à…3ÿÌ¿ŠÇl›—í`(mwÏÚE"ŠN¨HJ¯¢ûÓŠž0,mR“ê“ *ÊX2¯¾jZ}•áf»™Ð Á vŠéüÜUdò>€®uÈêÍn•È¹Ë?Î…Xå¦zjìŠ1¶ŸÀ…›ÂHº«;Ûh_SÙ^§ýpà@û8ñÚû}í‡Cií¯,`Q‰0lîáÕ¤e$ÌÎ0ªÿ’ap°é èf ÃSinê<Ûî,׶=´"¡ŒöX8ù)J“$‰ÇýU7â ~ I!´Ï¯H7#¹DŒ’'ŠÌÚSH“ÅûÓþñƒÚã>ˆ2¥ý ©„R”`â±=*b†98 ÿœˆ»Ç‹íqÇÀ]E
+9ØHÆ3¦àÑü¸’ ¸¶K‡4¥´"1F­»6ù]vضöÅf)ÆÐ4QQÆb p óû¥¾.€µ#ÅÕ÷ÇuUÞŘd(Õé©“&¼»s9žƒú€Ÿ02Œ’ƒÎE›ìÑ÷Müv½Í]2¶™vb
+ˆo¶ýT´nŠÎ”û‰®T
+l(_o³¦¹9²<2@Û”5ÏnGá·g£”2ÒgøŸuýÐ< |Ö¹#ÞÎ yWÔ'`^ÑÈáÍîUdœ×Õ=–ÃH¤eQÄ„m; ®)#éAŠ˜Pü»pȇ¶È¨&÷è6ÏŸ§ò¬Ú-$ЯìÛ»ö©=¯(Û¼.óV›?øÁø‡ÝLàãI‚ %Qó>RMûDGƒÆö –B*?ËnGáwèL ÒgØ$ŒJg㡇0ªœ‡èïYH:ȱ÷è ú§Ú)ô7›‚Aã”S0Ä!T¿Ä)ؼSHDôÝÿÄ'ÈI¹ßxÚ§}ƒs.¢R*þ<ŠBÕ‰ú.¤šñOõãbé²6ChÄ:¤„Óµ»ÌñÞQE˜ï ,úÌ_Ew)µ}$´³à.f¸ "¼‚T:gW²÷õƒn‘¥•t™8{ëYs6…Ýk HZ»§
+ãÏ’›b¿*#«J”.r亣D'§ÂXrÜæC@›pFcŠ•z™3jÅ?l·7­W˾-ÌF´‚ÞtѽF€¦'³FºaÀ ú?}jÀ‹¥à9;aS>HÔ¬&ÓÔª žðKÛp 
+º€'[á„L(|Å¡" ªËqÈ÷d&³ ç¥Qª”œt^…GvD²|ª5ö–ö¥pO+kh4-¬)óAÑ|Ê¿¹;Šóï&/Û¬µ»Œ@eÔ4ŽºÇ^uÿåÌQoSA}{üäŽÞô¿‹IØgRŸÝ 1û!Õ4ìwTöí>¨ÃòM¾½Îo#ÜoÛíM$\cÀµ 7£½7e?f
+›~¢èÔ!̉oõä— ‘²;,ØrÝÛ¢}>'
+\ªpñTcpÉ6› \Ñ¢ùÎÄ2M™_@GYÁ0±L%ØUo c¼)Ñ™‡~”ù“mDì>%£‚K÷Ù]FÝrÁžœ*¹0„ažðYË
+êA:¨8ÐÚnB ³e '‘ËU[XþÆŸ>DèãòýÁESñB—ßÁ~\ûâÂNcß27NA²è#‘‡'øà.·A«©†“g–úÞ.ñ°7KÃý„ß¹û+MÄÊš3³.¿õÉŸ¾[X¬Ã;[áû×CÞ à¶Ã”D²¼_Û¬}o—.bGS7Z™6ßèuNÜyÄßv=Þêå
+±d
+ZAö~,=SZÎDñ1tB Â
endobj
-2700 0 obj <<
+2704 0 obj <<
/Type /Page
-/Contents 2701 0 R
-/Resources 2699 0 R
+/Contents 2705 0 R
+/Resources 2703 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2704 0 R
+/Parent 2708 0 R
>> endobj
-2702 0 obj <<
-/D [2700 0 R /XYZ 56.6929 794.5015 null]
+2706 0 obj <<
+/D [2704 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2703 0 obj <<
-/D [2700 0 R /XYZ 56.6929 335.9533 null]
+2707 0 obj <<
+/D [2704 0 R /XYZ 56.6929 107.2827 null]
>> endobj
-2699 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F53 1328 0 R /F41 1233 0 R >>
+2703 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F53 1333 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2707 0 obj <<
-/Length 2326
+2711 0 obj <<
+/Length 1792
/Filter /FlateDecode
>>
stream
-xÚíYKsÛ8¾ûWè¶rMãÉÇѱ¬g7òLÍV’-B+©I{üï·(’¢äìNŽ[:àÕl4_¿ 6¡ðc“H*b9 cIej²ØœÑÉ
-ÖÞŸ1G3óD³.ÕÛ‡³‹w"œÄ$x0yXvxE„F›<¤Ÿ§—÷÷7w×·œÏ¸¢Ó·ä|¦(~¼¼ûíòÎÝŸÇ|zùþfCňXhè:ýtw}uþõáç³›‡Vœ®ÈŒ
-#ËŸgŸ¿ÒI
-’ÿ|F‰ˆ#5y†%,Žùds&• J
-ágò³ùÙ¿Z†Uûé˜
-”ˆˆŠx8¢ÎÇt b.¬vçÑ´É5œ/¦Yí§wWØ3HìÕë¤Æ^‚M‘lÜW›¦rKEé:ú¯ÌÏ%•k‹ì”õZï°»;gÑT/JÛ¦n£—­—féÚ.ÓjÀ›«»Ë7û_¨¢kíwÀãÁ=²fŒ‘X)nO¾6<DÀ§ZØk¶iRëÔ Ät bÙÙë»ùüæ
-û™£´2®„Â^]b›äyùŒ,¬XUy<iÇãÓüöý›v_nþíN‚;³íˆä}µUNÌ Ü7›´„Kó™¥ql?{wû€<D,%T='’Ó#Fæˆf]* 0
-ëPP˜§²
-{Jv»¦¸0’¤•®ª¬,È7ý2…KJ¤
-‚Ó²´T‡ÂôTÇ¥"R„q_šJ[“3º[ëu=
-ÉO#Œ$#‘ì{ÅÙ·(7#|„"Q Ôky>£øï!Cœ¼‹–èà2èb€B÷nã1©ô,],Ê4+V8*—ØþóãåÕìãµ`l>½µ™xô¶\T•^Ì€p¥ 
-"ãÉ1”©Ð¸KÊOìKug-Õÿv
-hÛ]ö÷v
-c’Ùu=ZH\Ï\z“=î’Ý0 Ê|µØ½lërµK¶ëlá¢ÜVƒèÞUopÂæþ65J|¤['ÅjG-›ºA½àû¹÷VunM!k€t:¦Š÷E¡ÚÝéÂ
-<9\{dIîÚèsp±1¡¡tÕ£ùÚŠð…óðHÇ(‹ÚŠYæ.9¬³<«_N`Ì9È—¢ÜVpwƒx€ (z¹ŠHÈ@ê‘pÁ@p®L(<Þ»,0¼³‘ðÞRí€?Ïñ JtM[0Ž¸³Öªlv =KÒ
-¡ÊEÈÞª›À“õœ#œûáÖ˜y¶š-³\°… *!‡l¿½Ê¬óO’ˆÓpȳz•ç¾œp„»æ9nG8.`rÕ·Àm¹«G÷S¥–ñïmïed‹¾ÎƲb&-—Baõ¯<R (㙵g]–‰=Ñ8Ÿ´ßÙˆ˜¥#Ggœ%‚þÑåfcÌhn"#"ÍCSϽ_ß̯>ÝÞ?Üþz×~5âååÞ&]çD÷=`½0n‘*WWB§u†n¸Ä6Áƹè9 …rj^|b9½­ÝB Ö×·RsÃyÕŒË ›GïªÓÄm÷œ¸}¶x §,µq
-f2†ÜM¼½½»ÆÌcJ”IH‚YçIÇ{p\Ñôv9"¼¢´s/ü1 È‘½Â1ê é©üæãèsV¯qº(}4DlØÉ<+\8-·6:á´hÐ&VÚU³ÑEm— éàÈî‹ÚÑ'ØTkcž«ØÅFHÃn‰ %á‚}“n_àRyû:ÏÉY ÂeKž<%Yž<æÚX/ÿ€:sq©w2r@§,8©r8kk#dSd H"Ìë_¨œÂMÏJ*Bÿ€j¦|œ4ý²í%Ø<\Ý#=XN¡u¹MY€Ö% áËKC¹Wý¼ŠÚ
-‘:è9!{ŠöPÓ4[eubÂs 2e«"ñY†…¤ÓÛ)QÛ@µhvHQÔ¸ÒW0ÊÝðÐþÀ!ð(¯bXÒÀ+´ëµ:V“¨S,§#l%qÜúA‹ÕÀ‹/§î%
-z]”Å=åä 7 2
-Dßp“|Uî@…|²Í*l}iv„$ò2¾5®4•v4 6Õ:is\;֮جq\ØêijÐø@,­‹4ˆ)èxŒ”ÜX c—ýš¥Ž“ªÆ²X“šÏªú%·¬¢¡
-ìœ{ý†ÑÞm˜Š )uU;~¥¥w ÂôàÆÿQu¿¯¶&17òà /ó¼·Ñ¨èÂϘ{›o¶ÁäÏ…vI§û«Â¼y÷8¾!%ûǦaìBH)
+xÚíX_oÛ6÷§0°R%êe@š?]Ö&ËjØÐöA‘èX¨,¹¦œ4ß~G¥H²âvkæ‘<w?ÞÅÆ~l,¡<òÇaäA™'ëßÁÜ›s<³šiÖæz½_ðp‘(ð‚ñbÙ’% •’éÇÉÉÍÍùõÙå_Ó™'èä5™Î¥“«“ë'ïpìfy““7çsèú2ò‰…†/ “÷×g§ÓÏ‹ßGç‹F¶ÊŒr£Ë×ÑÇÏtœ‚æ¿(á‘ãèP¢È¯G¾àDøœ×#ùh>ú³ØšµK‡L ¸$Bzဠ|6d?$A¢ ~™Î8t¡w›4®”9H1F"!<Ëò+²8K§*W5]æéªÔQßâõ&W$)×8qÒÆž§©SB= K’Oi-Ô6,ô #ì€ÆZ©™>¾ð¼–€™3Â¥éӧ܈6ÍvÊäD%¥mSm½Éºvvð´f"ÆuØAû¤€?°CêxŠÖN^o'œj64†™xȪÕС/o³`N¬5´leû™n­ŠœÑÉb¥p¶Ígv
+úJš±U\‹p;`“ÆH,îþ|¢‚:ç™®9Eªa”tL =Ç„fM›­Úª¯Žý[Z®ã¬p½,ùRÄkÕ1ãaü –C2ú¸<½>¹:w°+×jÏu?‹RtPÀY­Cðÿë.ÓYegÄÄØ6«²²@Æ;Ui¤ªz­9òjµ½8]b›¬Tò¥^WÈkk`›‰¸Ý)ÜB·rg‰Äm±w k¹trÌ¥³;=nƒŽ½žƒÖ7 åþäÒQGGXát<‚„i<< ×¾5tm=¥+XÆY®­XáÄJX‰7EÖv*-U=Vº¥ê[¦+·YŒ
+!ðŠ§’p+×jlë»èS®®G`ßœ_€zX)ãgÉÜeÁ=±F7)›-“¸@Ý ]Ÿ(åYRK5±Åí¤P|^w3]Å€­ânÈSÛ)Ø67ÜA01÷δï/N‘€,è#åt*ÆÆY¨õN»)Ô kUÇ®]k1Dinɽè8H¡6K׶…êžTl¬ñÒ&já}³;àñNnà ¼É­2Î0‚ÌÄò Žå0zv=ŸŸŸ"9Nk!Cx‚ ¤ÌE4mœç劰jéîô*¾WNÆûù団f·ç;…ÓàÚl;€ÃÞÝ$&"»ÄÆÍmò¡.1¥ŒYvqùJ¡~ÍC PQùœˆr¸LsL³6–(r Di¸Ì®ÇªJŽ·_ò{¸üŲ¯
+± ÒæYØ7/ŒÛlÍ7 ;ºÓ˜ŽÌ®«Áïgó…«o²Ûm¼í—AY]A%ÛÇMUÞmãÍ*K\‚Û(Pê;}ä¾É.•­ëÏ1É*.îz…ÔrWížÍõgž\A|Ó-¯ù„ûAã5A¼€ ôa!Ä/Jai‘&õ¡ TJá>Y\7¹gïÔ֡aJ0«ñc‘ç…ÏTÐxŒ²¨¬šeîªÃ*˳êñ¹°ÜT£|(ÐŽ?ýöé´BV‘ϔƜ‚%yÄj¥ÌÉY(úª7Ÿr÷uÿrž›endstream
endobj
-2706 0 obj <<
+2710 0 obj <<
/Type /Page
-/Contents 2707 0 R
-/Resources 2705 0 R
+/Contents 2711 0 R
+/Resources 2709 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2704 0 R
->> endobj
-2708 0 obj <<
-/D [2706 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-2709 0 obj <<
-/D [2706 0 R /XYZ 85.0394 692.3622 null]
->> endobj
-2710 0 obj <<
-/D [2706 0 R /XYZ 85.0394 528.5904 null]
->> endobj
-2711 0 obj <<
-/D [2706 0 R /XYZ 85.0394 455.289 null]
->> endobj
-910 0 obj <<
-/D [2706 0 R /XYZ 85.0394 405.554 null]
+/Parent 2708 0 R
>> endobj
2712 0 obj <<
-/D [2706 0 R /XYZ 85.0394 373.0534 null]
+/D [2710 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2713 0 obj <<
-/D [2706 0 R /XYZ 85.0394 338.0016 null]
+/D [2710 0 R /XYZ 85.0394 462.0323 null]
>> endobj
2714 0 obj <<
-/D [2706 0 R /XYZ 85.0394 273.7334 null]
+/D [2710 0 R /XYZ 85.0394 288.682 null]
>> endobj
2715 0 obj <<
-/D [2706 0 R /XYZ 85.0394 203.3969 null]
+/D [2710 0 R /XYZ 85.0394 209.4795 null]
>> endobj
-2705 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F14 976 0 R /F39 1173 0 R /F41 1233 0 R /F53 1328 0 R >>
+914 0 obj <<
+/D [2710 0 R /XYZ 85.0394 155.6441 null]
+>> endobj
+1341 0 obj <<
+/D [2710 0 R /XYZ 85.0394 121.3428 null]
+>> endobj
+2716 0 obj <<
+/D [2710 0 R /XYZ 85.0394 84.4903 null]
+>> endobj
+2709 0 obj <<
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F14 980 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2718 0 obj <<
-/Length 2639
+2719 0 obj <<
+/Length 3156
/Filter /FlateDecode
>>
stream
-xÚ­Z[oÛ:~ϯðÛ:@Ì’/âcÚ¦gsÐ&ÙÆ],pz[Ž…ÚRÖ’“Í¿ß^$J–œ¢@M‘£áp®ßPa
-ÿØD*¢ 7m‘”ÉÉb{F'°öÛó4³@4‹©ÞÏÏÞ}JôÄ£¸šÌW¯”Ð4e“ùòé{ÂRrþçü÷wŸds f”ÃHõõæãòáöæ“£ì±åZÍãI/ïî®n>^ÿç|Æ%öç3IéôËåÍ·ËÏnîîÜðéåoW÷ÈììjÞ$>,£ žâ¿güI'K8óïg”$&•“x „Ã'Û3!"E’„™ÍÙýÙ¿Z†Ñª}uTyŒž(>¢=Î&Œ#%ï©O¢žØÓÞÞͯooOÂ@%LM4ç$aTÙÙÍbª°ñˆÙî;{ð6“%›°¢3D]íw‹|–-—»¼®‡2É ×Bœ±¥‘‘Ç;KM¸”º/ä·:ó,J„Pò¨”Ö©&I
-œyVŸÏͦÍ:ǷtºÈÝ2Âgdf'VÕÎQúWØtQ•e¾hŠªô¼ªAïžóݹS †4!"MA ­?€,_ö›¦xÚäΫ‹²n²r‘×î1sR¸‡§|·-š&_ºGÜÐÒl6Õ‹ÖyÓå£{¨Vî÷¡jÖþµçt}÷,üËå²RžI¤ KÒé"¯É1U)ÄŽNùi©ŽûhKe}t1æ£m,XL±*g«b“8h‰ÒÚœ–¯¥°ç ‰&JB‚èI8î •¢f\Ä_l•‘w2ã= ðòwJùã~—9ÃIœÙxôš<[º´;3I÷ú2_eàdncÁzQD Õ,Hù.oïvårAPÞ±0JˆJUÈçÇA[ÊÞð…Žè„+x"ë ?ÞÌV?ò×q7`Ššš“’µD‡¢õœ€3¨PÔbÙŽú€Ñ‚7à‰œ„6‘p.|¼òßt3Áè8Ùl°ó$¼"NÉ”¤Ü¤FÇmeÃÂLSÕÚ|–P6‡}¼h(ÎÈVP9£U¼“Ë…PH‰†dØÏ…'¤0LYù¥Øl`[¦§¹ûÝ×6/ÂÈæEøÍö Œ²)YciÄÑv ¯vë5,ößpʳK6uÛq±êGÊl ÙÏF¹a"$­e•{Aʪ JaD(ô•’ÿ¯¨›£¡&®‰8k1Õñ`k©l´Õoæ]¯¦a¬QN´9-˜§9”«>\@a_°n×~pkÑF[Ú5Æe¶õ#¬åøÛ«òva5x§u¿¬‹ÅÚ ·Y³Xçþ¥ìjx“oÁ#„FŸ-øÉÌ™\IXÑô-ÞOöIÚ%û$uPÄ>¶aÊ ‚ù£cè!“Nº8ÖTN¯WŽiY¹Â)p5hçöOO›à ŸœH;¥<D•›Ýe~q>L6]WuãHÑžðáÕMù°r.ÁÄÀ÷}›µÊ<²Ødì. Mõ„Jóè)6CˆÚHî)'
-9 Ý…{ßTȽMÑ0öi
-A˜ŸÁ4u<–3.ßÀù1Õ‰XT6–ŸÞ¬œOÕ®Êe8&}C®@4"W¬9£ÁùÌ@®û<ÀÏ(5GÐvþáÎC_/Ý0ApC¨Á†FòRtW5#x}óÑÌ?¼Þó‚tec3Eå͹Xg€þ7pþu(xG­
-Wâhÿ¬Q°n ²Öý÷pK¨4ZaÞ<µe Ù²Wþ!S ®ú[^•ÙCpṙ*ä¦z|„ä¨ä)¡ÙmBLu\ -•UÂ븋'¢ÅÕXÄb¥
-ª7ô™ñ†o]@
-H¸Œ^ÌÃÃ#ôK ‘Ò¨þŠåa)eD2¡O«­¥Ñ[¸R£X×oÖtÊçk´
-PBµøÓµõ®S® 4Ö-ìsöeì ßwÈé“o-Ú秃$óSˆŒ/P…’–nÒw m ?s-6¼Ø"_ã~#;êù™\‹Aû†FA ©éMecj‚D4õì¨É‚°Úb[GÐd…ÝV굿ª\ºÕ.Ž=Aèž`­»Ô„yß·£•gå@!Fürì0‡¸lFúÎO7¨1Ø^{xW¯«ýfÙ6N¼Uß½bnëìÙO=æe¾ËüÆŽ¶Å•¾UynQ!ËÔµ¿ æF+ƒ°åÜùÚ'û–×ÂÞW<mrËAà¥D㦭éa":,Ìb—@Ôj^Çzí&•ì/ô‰aó| œÇÌ0eÜÄår[”$ì¬ 'ùš¯¼6Ë…íKVîAiN ‰„R6sV¥àåÈ) Q£LóŸéÔT›„°q_ª?î1žâŽ‰eXYç›'7òÕ„´E_uf³8M¡6+Buêðçë/×sû™
-ÿk?ñ Ž>Í%
-¥£M²"
-ÝßpüÞ}ì3&×’ÀË*…ÇdZÞÙø¿i8”ýÿ7_Uyendstream
+xÚ­ZKsÛF¾ëWðªÊÏ{0{Sl'«ÔZöFJj«²9@$(¢L
+JÑþú힀AÊ)§xÀ`Ðèiôôãëi²…›)M´åvf¬$Š25[î.èìžýxÁÍ"-†Tßß]¼ýA˜™%Vs=»[xe„f›Ý­~›O˜!—À‚ξyÿîrÁefåüêóç7ï¯ÿ÷ŠPP:ÿxuóËÕ¿üÜçKËçW?~¸½üýw8C‘(Ë¿ýNg+ü§ J„ÍÔìn(aÖòÙîB*A”"Îl/n/þÝ1<u¯Nª€QÂ…æ:àlƱJñD Ê-¸pJ¸}©êǦlÆŸ"1™3#$¼EíÔÒ ÌwB.bÓ Ö€…K²©­‰T(Õ¾Z-/ôþÛâE{û¬3xIØJ\©›ú°_‹|µÚMãÉ“52Atòä¿GÎË ÎB‘L+H—uµ.ër[L°ÕŠ%ä˜í—WÙ~)^Nñ”†dœš1ÏæUžM±*ö…&œK6æø8Áq!4Ü®f‹ÎnàÇzßN0æ‚X´òã_»ÑËÄ©Î@cÃc™…½ÙÌpNŒPæk¼ˆ›eÙ´-:Ž‹!Kg‰‰hÌÂÓ ÆŠX®&>q"”Ðé§/ëÝ.¯yêz &3"Ñ‘`æà§Ú½øþÃí»Ÿ¯?ß]ºéÞê¡3ˆHÄJ&{ŸðT|¸ œ(àÞl»¿dÙ¼Þ6¬¨š·›ÂêÇbŸ·e]…Ûµ¿æþRå»@ ÉÈ9„>ñº À¡)VÅ€ó±Ô\ZØ ¨ši™YÈF#8´å¶l_"Ó<,÷œ‡uý=•«bågÊø Û0ñýõÍ{\4f)QŠòÔ‚‡b[äMÑÀWI‘ͯ×Â+J2É£ð§4.ˆÈ¢ÂKÒ
+é©þâäƒÜð\¶?]Õ~&Ú†›Ü–Uá§ëGÜÀ¢Þûkî¤}8슪mÞ\.ö­áq_Âd ó—fƒîéž6XeÿØ­½FŒ„ô@uTˆÏ}Þ* —Á¦¢{;ÉUgÿóà#ÏŸòr›ßoÃm/ÿˆºÜ‡¹á·i#‡,lÏΪ¾1Ñùnw¨ÊeÞ¢)
+£‚Âqä$FƒÆ©`Ðn\w£Ü_îÞ}öôà9U±lËK6¯+к¤Þ¬Veõà){ոװRÕ:!VÁô‚‰¢£)Èùª|(Û|‹7 SùPåíÁÛ¥3I)æו§ôÚªåaï)ªÖ?é›h0*ìðØÿ ðLËWmXR:ŒZÃxH¢•£2Wl%ÖvqÐÙªŽâKÐãöņVfåa<
+Ž«‰DÄ‘8n¾}¨÷ Â°ÖÂy^ÿùñêÝâã{…+Z6Þ”ËrhŠ@“ûK³ñ6ˆk»ûbéï[ñ¯EY•#•.Dâ„·)D©+Ø1-íün%)—«a>äîöúÇEÓ¾l«l¬7·Æ ´‰ f}ØÀ/ö‡¢iø¤£F¯MgôÆ¿k†ï7`?Ê_xµÝ& DgY8óCww,“€°Üä “­¿Ùš@yà ØyŒ-÷/!&øËDîç€L•¶f¦ ÄX°«oMýÃÅ€£‡Æ‰7hH¢
+8Gªø½œUý\…¯®G_?Ì•Ç„© !šþº‡_b#Hõ›•ûHìc½Â4Rý—Rþpè29<ÃyPÌWE[ìw>ÏÀô¦~öóþ¹cÔæË6LnY
+B³‘ò¼ˆÕ„Œ ˆR†p(5ò—¦˜@ÝœúÔêL½”°Î ‹Ü¥<S+wï£y. ÿ
+DÎÀ«Œ< Q;¤¨,“©!}<lÛò1²jÚ¼ZÍl„ghÿml¢ëæÛ­÷tÞ¶uÙÝ…¶uRµË×C'¿þü$G¦t`2Ð…#éuQxÀ3i£”Í $9o£ª36©œ.§l؉š61PÁ‰6Æž—¯£š01PaˆV
+ § + Åÿ‰²;á«­6r`P¹ùíbv"FâdŒ‘8F«Èêopß™ýë«bƒ‘½™*x)%Ô°(åÛ¢]¾Å`NPÞ)7JŽN²åê5cP1†HåŒáË«kx‘X4F3{^¸ŽjBºÄ8ƒÌ EY"ÞIK°FòÉ“’„)ÔjT;0Î#væ"d˜éÒ#ýÖãçò<¦?˜8³õLe$ã6;Úú€bF²C Ít·ó€‹€Å°N Å™XJ±FWò°1StvF
+¨ÄmÆ¢ÌÏ%‚=ÎŒgp…|»ò#á:¬jpF Bf"¼á•ÇzÀ‰ãrÝ?œHF
+Ÿö®bÏúÓM˜¥;
+QV"áQkrô1ÇÐlIÆn@4lS
+FýÿFG÷°¢o]a±LwƒMþ¦ŠªØçaáØåÐ2T+Ïåâq*š¦™ì
+¸?GPÌuÃæÀ»O?^ݼ¿p°Ñÿ)®ú*›Q­“jcÔ ¿™ê”âYUÙ_*„òjÔ*+Š*m”í/a£«
+ÝnbM* ïÏ¿¾jML:õ¡=ÕšŸ¡Ÿ†14¬ü_`ÞõmèíË×ümÀSÿã …^À·œ…³=ÿËX6fûüb[竉bL©Lž[0’ŒbJ
+ij$Eð/BbÒÎð¿ù/…ý_&%vy2~¢%j—u
+¿™}¼¥áχDzÿà<‰endstream
endobj
-2717 0 obj <<
+2718 0 obj <<
/Type /Page
-/Contents 2718 0 R
-/Resources 2716 0 R
+/Contents 2719 0 R
+/Resources 2717 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2704 0 R
->> endobj
-2719 0 obj <<
-/D [2717 0 R /XYZ 56.6929 794.5015 null]
+/Parent 2708 0 R
>> endobj
2720 0 obj <<
-/D [2717 0 R /XYZ 56.6929 752.2728 null]
+/D [2718 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2721 0 obj <<
-/D [2717 0 R /XYZ 56.6929 348.0801 null]
+/D [2718 0 R /XYZ 56.6929 749.4437 null]
>> endobj
2722 0 obj <<
-/D [2717 0 R /XYZ 56.6929 250.1909 null]
+/D [2718 0 R /XYZ 56.6929 680.7174 null]
>> endobj
2723 0 obj <<
-/D [2717 0 R /XYZ 56.6929 188.746 null]
->> endobj
-914 0 obj <<
-/D [2717 0 R /XYZ 56.6929 150.8976 null]
+/D [2718 0 R /XYZ 56.6929 501.4297 null]
>> endobj
2724 0 obj <<
-/D [2717 0 R /XYZ 56.6929 118.3669 null]
->> endobj
-2725 0 obj <<
-/D [2717 0 R /XYZ 56.6929 83.2849 null]
+/D [2718 0 R /XYZ 56.6929 130.8593 null]
>> endobj
-2716 0 obj <<
-/Font << /F37 1038 0 R /F53 1328 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R /F39 1173 0 R /F48 1253 0 R >>
+2717 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F22 977 0 R /F63 1385 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2728 0 obj <<
-/Length 2932
+2727 0 obj <<
+/Length 3076
/Filter /FlateDecode
>>
stream
-xÚ¥]oÜ6òÝ¿b{¨Üz~ˆ•<9ŽÓsѸ¹Æ
-ôú ìʶP­ä®´vÃý÷›á\I«uRü°ÔšÎ÷Œ,þÄÂjÆUž.²<eš ½XmNøâö¾?þÌ2ZO½½9yõ^e‹œåFšÅÍí
-7õ}H‚ Ô¡jO»ZÏP‡bMë\k%“'T~<V`•kwS
-ªo¬‹' ®ž
-RrüYì˜ȸ,žl½'ÛèÉ–R#BŠÈìm¨ B²‡#Á¡!\|ãéx%ø'=œ¤ä¥
-¸ˆa÷«XÝ+Ê2á.Щ<í8çš÷Ì€x¹^ò$ ýîœ'A§ï=)ãOÂE6’EW‚•s%øõ®”yWʸ70&;p$ç*b)Ñr‰ùsùá „ÒÐö‹à¨›±@•Æ 惑ûÍY>š9:Z2aô8byVíÓT¾ÉÊÕ
-¼”îO=€çB½Q‡&v¦¾<¿í÷EùœrRÁ2 ^_ŠËút›î³ÊSë˜XŸ…Ú;TÝ¡DÖÖôXAß¹[—¾ð.|ßÐoÑÞ(;µ±Áˆx±\£°ãJxOaT "ÀÜ€EH­ÚSôòP¥¨Qø‚úÐP‹ávÅ4¼BC
-ý…
-ñ5]_þÁI<ñŽJpaX£b\÷­’Ë©mLT}ƒHùÄÙ(^JeñGI+‚hÌß5 …»)
-¦ [LS’þî¥àtOÀ-„ÐvCë ß3z¤j3ÛWÐcŸË-“<v…ø¹l­œó}ɤ塈ˆÇÓñŸ:¦}j<{ÝMnYªÒ€jS½@T1¡"Ñ3/b-×øYô0c_1Ä–!TåCÑe4ëÆãÑìÍ  ‡ý[ºâ†vÂ¥ÜLéa׳™‹I£™Ž ûeY¦°=eK¥Åz¢ÝÝW¢Ä‚+2QÜÍ=ç»>Ìœ-㹜‹c˜:‹ª.¢†0°)š0䆂jÓùxð©,'‰úò×ó¼ô‡1ÝÎôÀ(´Žã‰ð馛.¡c_ñù7ÐÉXÐIì ³ÚÊÑ—†¥á<ù“LÀ=2”É×€¥p¾nWEmÚ›¹:<CtàáÂðüÆ·ºcJ¤ÿFd˜‘ùø3ŒRý"ÓŽrf(ÏýHÿ±`æË=Èÿïÿ_ØÿGš1eíþ
+xÚåZmsã¶þî_¡o•g" Þˆé''w—¹´¹\Ïδ™ä>Ð"e³IG¤ì8¿¾»X
+-¡µ=ïÐhuìÑi8h›™¥S—~\zr±»mþx/›Ý%Ï–m}ðXw}h«+w ¹t¡²XqeÉ`T+nà áíær%˜ 6P NPª:ú]·ÍŒ¥—|y·wý–…¦¥ß}çW;å£)s ‚¢ß{¸j¶US®ºê®©š;o?vxÒå3hšëaXø\èæÕUmCítéÌŠª[çnäEYüt‚-óM_ÂŒvä›”é„1`Éç‰U*uc ¿êtI³­•æ®_¼öM#^Å1¢-•ë¶~Ø–}ù^ªð(_žx0]>UÛ-™ÜN†rW6å.ïÃ3OUORö8#6I)@Q=å½_Æî4ˆ0žˆÔ¼"#«3 ¬p ØÿLÂN‘á“€4ÃÊSžwe´:öå>„H
+º n~Þû¸ì®æ=Ý?z¢IÚ€$8üUÑt]¹ž‰<qÊcœúÉCÓ1A&pVKr-öÛzÈw Û¿TÉ@pà«öi¦?‘B
+©0¶v7ÓOàñ
+ÎË·]KA+2(jãÓµŸqîg6ÆAæê
+`>ºù¾…¼ªÊŽá`&ž°€cóXpP‰×íþ * ðù¶K0N±¨´°}Ï ç³,:¶:Í¢Ñ
+g[Eî3Ü%c¡Î|™I³—Pý>ˆT¥°‘âæ¼7£Õ±;¶ehGð©?‘2鉄H¤ {"‰¢J‘‚è3Í"ÛÌ0%RÎy,Ò!e¥4™èŠt¡=!9E*Bu "¼ATäÔÖÁ{‘u¤Ñˆu|Ó5Yëx uðv ÔÖQ
+
+ьͲÇÿþãi2;ëÔÌŽ¼:Of·^ﻇÒÕx°Î{m]¸†ßœ~†ð… :S„tb´
+jÉ—ß‚r÷Tá¸W"šÙLl¬ãSèú™ðŒ'‰D%ß蔿@­Š/}ÜUœ%^„Yž#›öEÅIÚHSŒ}ᇱÕiÚˆVîU0®§Õz[æÍÇÓ$’ÙDkaþ§.¿¡ÓÊì¼£Õ±ƒ§bm’BàL=|í< m 1šZEdñ (†ˆmŒ¸A»ëȯ0²ñ4ƪ¸9ç°L©Ž9G;B€„Q eÆ5ĨŒ–¸_£˜ êâ>d<wèHœ–Ê°'ZÕ~fTûb<ø ¥™&ÂdL·ð¹IOÏàïAÉNÕš?wÈCÞy^tºñ6‘ŠÏ“)È5~e•½P¹­N§`´r¯-Û¾Ú<ÿ}ctÖ™CÍväÍùšmâÎeGCXÒwßÞ¼}ó½?(».¿ +üéÉÙïM¸Ha-Œ|añGVg?XÑ÷&ë¶ÙTw‡;#Í^è9Zw=ñîòƒ¾ã×XÒg}*ÇçBáMžòe*=@kÿ†KR~vŸ‘ìŽQ(Zúu–(ŒëG||Äœ2äøÐkGåcØ{§0«äÁ9 ·áð¥{÷E ·&6\ÙÔ¼h~7éù¼!)§‡7{Ú[ž*Z“Òaü™àô=ÃÏ=‚Ù“#?Ì
+ÿ>9þíïp‡ïŒ¥I b>ñÎI0™ayº‚s8t%²Dá7Çcÿ6±)Yendstream
endobj
-2727 0 obj <<
+2726 0 obj <<
/Type /Page
-/Contents 2728 0 R
-/Resources 2726 0 R
+/Contents 2727 0 R
+/Resources 2725 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2704 0 R
+/Parent 2708 0 R
>> endobj
-2729 0 obj <<
-/D [2727 0 R /XYZ 85.0394 794.5015 null]
+2728 0 obj <<
+/D [2726 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2730 0 obj <<
-/D [2727 0 R /XYZ 85.0394 749.0409 null]
+2725 0 obj <<
+/Font << /F37 1042 0 R /F48 1258 0 R /F63 1385 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
2731 0 obj <<
-/D [2727 0 R /XYZ 85.0394 687.8191 null]
+/Length 3112
+/Filter /FlateDecode
+>>
+stream
+xÚÕÛ’Û¶õ}¿BoÑÎD0®1}r¼vºiêI²Û™t\?P"¥eL‘Ê’²£N>¾WâENã>tvv‚8œ;HþÈB$(QT-¤âH`"›ý ^ìàÝ·7ÄÁ¬<Ð*†úæñæÅ&
+©„&‹Çm´WŠpš’Åcþnù "ÝÂxùÓÛ»W·+ÊSÅ—/øáõÛ»ûŸáY`
+HÄdÐÔeñÉ#„œ¸bä\¢”†Søj*ὶYFÔÓ¾PSýð÷X½VMÌ6šÇüü±
+  {r½ª€¦è„¨å>û`’ Õ½ÜôSVŸì—ä˜\M¿ÐéÅN;&ý°ÏòÂã°GtÜ=Ùuù âV¹±o‡;6y)
+ äWn烕ø¦h¥“JÙ:¹Bæ$AúÆhåÚŸkmÆç?>y;{j‚¹L»ø DZgÎÐzXãä=/
+Nšs²üÉY² –¬×ZK¶ÛE–¬'‚%ëoÉzMãpK6#o´cfmµ¯nŒaÁŠ1·V SÎO±³ÃØYñ×®˜=ºåŸJíùõêµ[d©®*»+Ó1"*{pk!öÈ~iŽV»#lvQá>°±~íÌ ÷ý–•@Ûeϱ¯„áq—"R„)#W<ŠÀ*‰=Š×<
+XŽnÀ|ŽG‘±Gû&ŒGI@}á;4oÖwè—Þw˜qmϾCo3Øß'¶D@%%H_U>Ï¡HŽ$KÓ/âO´UϹ®£À¼/ ÓŽÄ‚˜Ìý9Û—È †‹ŠÊidâYaEH`æŒì¾¶i^õ]BE`ÔºõŽ|}Œú$Uñ±p¾}ò=˜bZF Ž0ÁòŠ˜"¨Iy¨ž°.2x& n>„Zj/ý1¥BêYâÔº¾UBÙÏ¡\ì“÷PøäôBªçÌ|V¶>Œž£®m7¹ô6«Ž32Ç :Õ•2 fdî¡œ·SQ•"ÝÏšEë`†Xû²Ä "Yí—’%ž”ƒ4§ôJ{:†š–X€Ò¤o«cû4eÒ³XƒU°Žvëµø ™™Ä´T˜„ê^©Ãc¨©x¨ í›Ç*ðÒæTE|4mDûX9VÇ3éˆËø‘Mzý°aÖU4¥óbPC9\Ôï)¬D_çƒbÊ våGiè¡áFi”®ô`/¦îÞ>Ø9];ÌjSHCÊWnÝÌÊ­n9¯«Â¼£g¾vgd¢·4¢KšÔrjÏ•ç.ùñšuÙ:kݾd_gù*^6¯’Uê6È•¨CM«d€
+*Ù=ÿ*9+†³Jä0®’=A•d\ºDN%õPó¯ÓoIí¥‹ž3}=0u5ü–Ù!]¶ÇuÞì³²6)»$qÚ#¸P(½Tëñ”":-1åêÛ¦+¼«ËB*ãKؼ)\ž©‹** ×)º Í·¥Ä>+ÎìÅR±q(fLá£ú£T\Óü3ÐŒâ; ۘʺc;ˆè 
+1‡Óà pöã“„¸¯dç]ÙªL'$À Ì£V ýk= Q“
+é¢Rùã&Âw ]÷k#ΰ•s˜*ëMuÌí“ð«ô´+K†ɸBA±.ëüÅ«¿Ž( §ˆ$‰/´4N«¼k/’‹[R]yîÖÛæÿ `Î< ^èÅý۱ˌÀqxÏñTúœÞb{«Û€1îˆz;1•øtÆé;®—»nšZמ;×-œn­RêJRCÍ(°‡2¶î ·îÂo´í2‹úÜvào»ôß…;–pUÙvá*:Ü]—Þ õ¯jqŠTªþX¹êO ضB¯Ã%´ëÎ:y¸âlòHˆL¦øJÖCMI€2Ñ-«JpyæVS7Åôå–ù™ßÝãvÛ{ÿ·ùÖ™+Að+4Áì]ÔÈ©¸ÊàH¥ |^"j(’þiŠ$£i_&öó h±Ä·ažì×”1ϽºüŽÅ‡l'œÃ6c{[ š •'aŒö} Äχׯ FRˆnkCh¼èˆB‚9‹5¯Û¶Ø¬ì÷c—ã` ,õ]pûá„ÆVEÞÚaç¦L[ŽB>PtáÅðœ¦(Ô‡åS1v}NÙÐzÙl»°ðUOvô¸úÛHpØ¡›Ö§S.‹í!ó12£ËûÎu2Á6’T±~§Ï9ð‹6¸ûvdÚµÀ%N®Ø`5cƒÊ0Ô–»•ñESnqõÙ-p»Åòï­LÕù^Ò”vÎøEøµ·uðîñáþ[;õ¡8µv.ön!œÜìE¸±«Ü¥¤ùÔÈάOcÙuJ£×¯Wt£:|na>ù€ HÎ,ãl5=tÐèÇ'ßà†ËËLõÖM÷ä/*À7Àþi<ˆÚY'‹øã¦sïÿöúŸšŽU]욮̺xá¤ÂIpœ2!W>Ä;Í|‡ç€‚¶å…nžŽxë$…ú‚ûâÈ›¨¡8GŒ…6ôd•|NÅ&‹(¥PJ€î9I (.².Ž¤’¼'‹;+†cprÚ›„Š^ÏŒžš~b±ƒ¨B¢ÊßPâ~",¸2QÕµÛ™«sÌÈ3ÚrxJyy“
+…ÿ©ï¤>O•zóØ}dÊÀ)°Ñ áßÇŸþ
+endobj
+2730 0 obj <<
+/Type /Page
+/Contents 2731 0 R
+/Resources 2729 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 2708 0 R
>> endobj
2732 0 obj <<
-/D [2727 0 R /XYZ 85.0394 186.4649 null]
+/D [2730 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2726 0 obj <<
-/Font << /F37 1038 0 R /F53 1328 0 R /F21 950 0 R /F41 1233 0 R /F22 973 0 R >>
+2729 0 obj <<
+/Font << /F37 1042 0 R /F48 1258 0 R /F21 954 0 R /F14 980 0 R /F22 977 0 R /F41 1238 0 R /F63 1385 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2735 0 obj <<
-/Length 1767
+/Length 3324
/Filter /FlateDecode
>>
stream
-xÚ¥X[sÛ¶~ׯÐø¥Ôœ!
-Ž’Óóåÿb~Ù|ŠË‡_žV¼9ù¤Ë%-Ëw—ÿ)?ÛÀ>^iïÕgã0° yÚ
-Š\i•ÈB
-ªñ‡ßx!¹ù%ŠXålrQíE ª&ãà+k”AVWVÂíf¶Em·KXJia G¨9,ƒæ~±êGè|»yFU`Zë=HЋ;Ï‚¦Z–6mÍÊT-Ò‹*/2 4Ý1.ìxŽ÷Ð`6.s±XuáVÁÛóùqxþZà,-g4èè(NG­ßºSçY™b ì¸®Ú´¨§Ür“6&Lbœ˜*«ó¢ºÅY½|J¡'2V43UÖ $Ì\ á×› ÜÔà$Ò cP‹UˆçåZÑP‰†`,Ð ´q6,(A,Q1÷{‹wnP=îîW5r¢ˆ‰ŒùóùAJy@:ø»2Y먑¸Ë4p·“ïã X±DÙ[¢:M1(¼ÃÐ|2 }úF„c&Hᶾïyuaû‹k*ñ¡Hñµ†U¯p|O‡›Ç.¢1x6éû!ë£,_Þöú*mÀÏü_äˆÕ0¿³HCçNßSý¹ýõ‘ØjR%dÉÚâ­5þ˜½È
-’Ä{™ŸXé#¢…„œ*¨çÄL9-gpÅ7{œ‹ WÞ
-ÝžÔB|Ž:¼é‰Y›}FähÂ…ìxlÎY×e3æWˆèíûÚàm[ÖëáIL [í f“uþTØFX’t¬è­î²cÕÑýº°.ñ áLÊ%ý‡ Ù%Ђš„¥¤Wφ¯±#ÖDQ¦>‡ªÛö|Oo“ÝÕاýVÕÛÊ÷¿ejMþÃ7ÁÖÍnúnÖumG8ù _ÊѾ7DÜÅœðÈjg^ÌÏOÐîë“«Tåàåæöéì͇«¹õæâìòâ +"¸ÂžÎÕYN_”9}ö´Tì"ìèƯîJ¿‹@Ž«>ðN³ÌܷȉÅÃR}’†N¡ñlUŽ<Ý>–Õ·UñÉ+„H—‚-¥¹7YaïN-ª±éÛ˜CÈ$DÛFö rpRù(q¦»
-Á)ïÔãˆ>«¾E £ :;-ªQuà õ% ƒ/>¨|æib­ƒkcôhæ®ìuËcyˆÉcù| ãHÉ`²ß‡ š±AãeÓ~xŸ]¼Æ‘Æ×<_UÑ´
+xÚÝZmoÜ6þî_aèð²¤Hê¥ýä6i/Eâæjî€4ÀÉ»²W¨VÚ®´vÜ»ûï7ÃJÔ.ôpßß4ä¼=3C­:—ð§Îs+¤.ÌyVa¥²ç«í™<¿‡¹ïϯYúEËpÕ77g_~§³óBi’žßÜ´r!ó\߬ß/.ß½{uõòõ?^,+߈K+åâíåÕß.ßÐØ»E²¸üþÕ5tM^X¤2\—ÊÅOW/¿}ñá懳W7ãqÂ#+©ñ,¿ž½ÿ Ï×pòΤÐEnÏ¡#…*Šä|{f¬ÖhíGš³ë³¿ŽƒY÷jLÆæÂ&&=_Z 4¬‰ J
+iñe¦ ¡eªFA™<&(¿
+U®×¿um…Ü~ù]ªƒå&y"3Ø×M‹f4“BäyVð¢÷2VY–ò‚USö}„Œ¶"O­ý½dêê1v-
+T -úð!BT\è$÷ÇéÚ»úþ°/‡ºk®5¨-r¡TOd?®:~’„‹Jªt.ýËõúÅR'rQÒÃIÙµ7uƒMU,† õÕþ¡ÚS»î鹑/m[·÷h»0p³©_¨…òù2I`WkÁ~”…µ ³½Ý–-@@å‹ê×CMžFqO'½D…Ò“Hn_Ù4Ýã²­—xnÖëŒë\‰DjëvNδAGÏ[ä-Ë€·aœ8Õlž cMÂtž¢{‘j½½‚4Ò¼
+µÓWÛz¹êšŽMª$>´QM‘ù·„€­ÕI2Ë£Má°Æ|&­ W=ŸVŽ«ßuÕü¡ÓÊP˜Ÿ £Íg¤9®:ç<,XH7 g›ËóeÕTƒ‹Ý”+ª1WTA®(}ê ¦\Qq®¨ŽrESÈÅ-å#Ö Ê%Ô„uLÀ‰I ;Ón_ßC†Ñ ¡#D|¨Ëx
+ôoæ®Ê/>c©ÁòÉ«ÚÃìíˆ$(Þ²ö†?‚(@ËÌP^u‚D‰L‚µ}Ú ‚UŸp¿Ê%‚õ=
+›Àâ=B
+œ<R¯
++SóiSWÚڼБвðÌ°ÃM߀IA&ct¶¨ÖµoB
+ù˜Ö b8Éœˆi€3¿îà«Š¦itÅÅZ?×e&‘IJ«<KÇ’´¾_²$–Á¡Íd€¡v„¡ Ñ)–a9ŒCÀ©%¤Ù:¨§!ô Ì
+È©†UVðùl^CSZ±Òf0© ù’(”ëòÖÕ0Žò¾ fÝ®ëëûÑ^° ¸Ù3¹)}W‹ÕaOÝv ø¥~mâ,ÊmŽÕ¨k¡Ñ·u¿¡€3-XÂ,I»8ÊðƳIož.‰sææ|>O¬øL°†e0Ƽnèãë˜~å<‰& ë<à;a š©¶L3Fa\ öKO³½oxdO çÂ3äȹ<ÉÓðUªJsR­KEÜt9D˜‚²an¶§L±¥¥ à¦Îç–öŒI«LØ¢ðiê¡wÙVÏ®ÚÔ‹uÝïšò‰‹Ð!űd4¸¢ôe+Ÿ+¤ÕâuKsDoºÉ3 ˾ò¯R>  ÐØq^ãI0Uo8¨J¢=…SÞ×8ƒcžff:÷š°Ôå‚Õé›’M³íxÅSŹ[„¨¯V¨¦Ó8:ï
+âDIò¬ä’k^ÌS¯Q<ça·ëð®ƒuáÏ2Sƶ
+“(úR€ñKA¸³Ñ"ïiDRÆP@
+¨eü'‰}ô¢KØLªÿA^&5 ·]Xêh8ÞÁàóqSÖcç©;ðhd.B¶β‘ÂnXvfö¶æFÍtÇe ØtùƒˆÝ¤AñfUqä“ñÇP)Ç‚Ï¥Ã7‡ ö°½u¬°t‹ cPÉ×Hµlxq½ßëhi¹ÛA™@Ðh'j¡5¥VÒ; ñ‡›_x»â?ŸªÂ9Š@s¶Ïj¡…±©óèóñ›z“[ÞÔ[º©‡-ø{ri;Œ­Ë¡¤‘ê£w žbcÁw9IË5@è¶l0;Lgr#åÍÓÎ
+«íQýd‚ô;³»P´ä?qËè äàIžœ\Œ|âc¿, (‡@Úñ‰*fØW°˜# “é£Ï$£¨9Á#QcGY¾m› 7,oÚÎÂpA”--.¸B¤*-Nîg)ä\px„ùƒ´ŒÞ %øùVÿ©™OÔÇ^êç&ÕQŸ?pßW#Œëª)¡? гúeÊHý¸d<’>GnüÄÛ{Mù¼{ªÎ‰ÍQïÀ'(Chc k¡TJ÷Ïo^¿}íŒèÿ»yýãÕu„Äœ¤Í_{Ç"6)ƒày\u'Œbð|,y`àBÏî¡^;"œ0áL¿)Ç+ׯŠê;ÜÂFK‰ðë´´ét­zòë1If-ØO&’Dæ¿ç?P_æ˜wÇ~î³).C’t•žM§©HR£§­£Ö#í™@Ý’¿Ó ´N”^b§Ÿˆ`¾´
+ÿ!Ù
+“Ê£ö×Õø9×kéÎ_:@dïË{of«é«¢0tŸ€z™²ãc““ÞÖ,í÷ê½{ùæúÇOYÙäî— #-âÎ `b‰=à\̹oÕÑÁ() ,vG¸ ì)O„”#ê~óúê%½X0'ëm eÝ
endobj
2734 0 obj <<
/Type /Page
/Contents 2735 0 R
/Resources 2733 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2704 0 R
+/Parent 2708 0 R
>> endobj
2736 0 obj <<
-/D [2734 0 R /XYZ 56.6929 794.5015 null]
+/D [2734 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2737 0 obj <<
-/D [2734 0 R /XYZ 56.6929 253.0811 null]
+/D [2734 0 R /XYZ 85.0394 177.3318 null]
>> endobj
2738 0 obj <<
-/D [2734 0 R /XYZ 56.6929 157.3292 null]
->> endobj
-2739 0 obj <<
-/D [2734 0 R /XYZ 56.6929 85.4876 null]
+/D [2734 0 R /XYZ 85.0394 85.432 null]
>> endobj
2733 0 obj <<
-/Font << /F37 1038 0 R /F53 1328 0 R /F41 1233 0 R /F22 973 0 R /F21 950 0 R /F48 1253 0 R /F39 1173 0 R >>
+/Font << /F37 1042 0 R /F48 1258 0 R /F63 1385 0 R /F22 977 0 R /F21 954 0 R /F53 1333 0 R /F41 1238 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2742 0 obj <<
-/Length 2868
+2741 0 obj <<
+/Length 2959
/Filter /FlateDecode
>>
stream
-xÚ¥ZKoãF¾ûWè(QO¿ÙÄž&™I0ÁÆ3›q€’d‘¶ˆH¢"Qvœ_¿_?ER-ÉÁ¶šÅêꪯ^ÝfŠ?61ŠPQÊIQJ¢(S“Åú†Nžðî‡hf‘hÖ§úöþæÝ÷¢˜”¤Ô\Oî{¼ ¡Æ°É}õëôý—/ï>|úïíŒ+:ý–ÜÎ¥ÓŸÞßýòþß~îËmɧïøøõvÆJYH±ÒÒi:ýùîÃw³ï>ß}ÿÃÇ»Ûßï¼ùxŸÄê‹Î¨°2ýyóëïtRa?ÞP"J£&/øAÁ°ä“õT‚()DœYÝ|½ùObØ{ë>Í©B C”áEFœM˜$Bj>P†* 7wÊ°;Ã.)4°ÛT‹Ù¢Ý<>Õ»3°Ÿ E +µ#½›¯k;¾¼§cPñ’éù ˜8eþÆyáGöýQ¿ú¨êݼkÚ@ܵí*¬Ù)•âaQB~}Ý´Û}³@C‹ªÐ¨ÐBæK–\IŒ³À¢„ÚUf}N™’e€•¨N÷®¡Ò_góßãèÁïK‰&,¦ Ö¶  –}ówPò`=É aÁ]â¹Èð´&ÓJY>6«Àr™Fd˜k#yd¾I x óíUy·í®Ëðã‚”Ö£Füv~3QÂi8ð8K
-É#ž½¾<gx(·„›Y´»Ý-3Óz¿m7•!£NhŠ«2"«v»vµÏ¬,J"uaoWËpCº`ŒƒH†h •Ègßkhxïen6õhx\i"[˜ªsúÑœ<…“‡WÏu q‰·´y³”e´O¨Ž–]½Þ2ƦßàK y¬é¥  ‘ʃ»[3=„¹—¦[úÙdÞ¡Z”!ÌÈ"H5›çÔBI!T¼Ý§
-†ÿ™Ðu
-E¥æìŠé9‘,E¾3‰{¥¦ìg€œ?sRÕ׆m¯wÝaKl*à
-+øBŸíº¾sÐtºn½výd½š?´¶÷ñ?O[L"ÔGç[¦Ê¿xxÍù—D‡[z‡>DËó5EK« õ2ÿyhü ²6Ñ<Bûøk¾Þ®b
- }ÍíœËævЄ‰‡¦ÛÛjTŽ?lîs“u|v/u(YàêÀ†bÜ„cñ/ MB66)Ъ‹ÄŽ Ìݳ3nÎZ›Ûó5]êËÖîS·v¢rÖ^ä¬ ÷F%sz
- ê2¸ÕúÒžWûá¥ù. }U Þdûñ¹„ •O‡TY9{æÓ7ç¼xcÊ¢(¼ÓÅYÓ04-’¡6¼hš>ÕyÓ$*gš?ÞƒãÍA6_”íƒO…ËÆàtƒlkÙ`#o¥´Ëz~äíØ£‰wXú$,G¶.!>m‡£¼X|?¢Sé=÷çùÊžaXµëy³9J@.„àûˆ«q,Î4­h×Œì· ³K­¯Âƶëöä2lzT`©l¶Wao‡˜á”Øý]”+eäâ£Itø#Á†Y;Ï»AjÇEÙkÇí'©½Ø^ÓUù¿¦(á¸×ú^IJ‘ú¤z™zDqU·‹/B±â<úNn뻵×3òŸÝŽÒÄs‘ÉL¢¬¡œÉ7T0ßy01A˜dW*ƒ>Õ0E*¦]L%ÑF$O\¥$Jc.K—¨2â 0…¢@ʆò 1¥ìù8jºoÎn‹ÚO»jO/­§©æÝÜÏzëcïÑm‹kI<B-[D©v×üOH5® µï‘BrŠ{Û–D Ɇ‡YûW ní[½ªu±S3´ßŸÚz´=7Uí'²çýè…EºEzWÕÏï¾2I ¤:°ºÞ\mÛ‰éß±>X4‹Úu ñúÁÊ—`’¾FíKÒñô+oÂí­íӵͣóªÀ2ZŸ®C¸n6ÛCG2»4ö6ŽÇ™nÈ™ïÇ„,ÒAîÙÄtšBö@ÈÙÍÑh¹Î[mÊïC\ŒèbÂAˆž•o“j‰H;rg4«DWejê³~‡ƒ#Ì4àb^ùi¯ÛXö8û8Kßjø¬¥C±êÎê@{êìå´AÙ/ä­ªüi<ü*Sl*w  z<(Ùïœ Ãy j]1B}8P°qì!¤\»wrî_„"öŠ60hºú¿ÿ-èøïOÒ^#›3ÙLP4Âö ^(»!V”cÑÓ?Êþ?Ò'4øendstream
+xÚ¥ÛRä¶ò¯˜ªó“0Z],YÞóIJlB*Ër¶*UIÌŒWfl2¶!ü}ºÕ’oãa7uŠ‡‘[íV«ïÝF,8ü‰…6̤2]$iÌ4z±ÚñÅ=ìýx$<Î2 -‡XïnŽÞ|PÉ"e©‘fqs7 e·V,nÖ¿Eìø›Ÿß|Ðj€,Yp  ÖçË÷gììÓå‘•I¡Rzzuu~ùþâ×ã¥ÔÈ/5çÑÇÓË/§¿ìê8•Ñéç×Hìèü¦»Èð²‚+¼Å_G¿ýÁk¸óÏGœ©ÔêÅ3<p&ÒT.¶G±VLÇJÈæèúèÁÁ®{uVx‚3©Œœ‘ž !Xªµ‰O§Ì(©è¶_n~úô™¤"å@*|weVjëð.Ê&ß•yC¸~©›|[ÓÃYUÖÕ®)Ú­'§ÆLÅFz:±d cÓ©‹Ðb;D‹³q’xìÊõŠ­ªònŽâ2à.•éºÈe¶Í=a1¹FÊ´Ï–có’Ö3ø]Ê„î‡ïÐ
+^üsyß¨J"d“÷Œö_ŠK•0!cí_¿”Õc]ÔSãQ‚%Ö(`C±8QfNÙ¸•`æü€%€ ƒçö$œ!ŒDì Ã: ñþ"||ƒ÷ç×gŸ/®n.>]øÀp^•xÂdʃÄA$ Q59.fÄ»^Üá®ÚuìöTO¦7[š9[r¼¼Ç9z‰éO~wqùžŽK P¢u9@ïžò]Ç`³;6ª6´Ù6Ŧh^Ž…#dtó@÷âÎEôy`†¬Ä¸d<ù.IìÛêb[l2<Lꨆ£lÔ®šÖ™4+×~û¥l²¿iÝT3z1·1±¿2Þh}P1)KP ¡bT:ºn2pú¼ljô¼\mª:wÌÄQQôv—­òzÂ)’mQ-ÿü\4A
+œ œ,;ãƒã3ð³¿-–«jS•ÀO¬âèl“µ5R—ŽñDÄr*D@=à7:nÝæ®<ZGÕ¿ß1çO¹ ÛºÍ6„´ª¶HÙóÕ¼lá¼ ߢn!Jæë·Ý®eZÅä%gK­· Á£7ßìû7³/üðÃÌ+oÖTô›£ÈqQÝÑï¦(ó9j_Êâï}rÿùFjû`Hûk!·sBôÛhÛ®p•¢ý?nÐÙÜ<dåÌi©fÊv4þU+žzýÂaÁ=ñ,oW
+ñ`½&5×5ÐÄÝýøð/1
+‹È±›Ä.0JB<ì>TuC«çb³¡Õ­³õÑöòÒÓ­ð—èûôë@õ¾x
+/d”…gÇö}ë5ûåÔ%&÷-)ï는 ³‰´=¢yîS5)ãR›©¥õ÷K‡J¨S¢L½„“z­XÒŠ%w@øóC!cH³XƒD
+4Ð)Ýlî>©`"1Éù‹HÁ$Ó¡c,ɸb(1 ÌPÊäŸKcLtŒ‹úÞ?‚ Tþª?»XÏœ® ЩÖJ&©üx*À*×î¦
+Z
+;®„÷'ŒŠAø1Ãbi9Rë½ö½<T)j¾ >4Ôb¸A1 ¯Ð
+ý•
+u¨êãÈá@Àquë‘|¼BzeÝä™pE¼;%¸0¬Q1®ûVÑyæÔ6>T}ƒˆùÄÙ(^JeögN+‚hÌß5 …»)
+ͲËpüà³ ¾2Ì.ˆ2±ÍÿE9Ù9ôR±|½×ŒóÔîÏ(bŽ¦yï&¸v³E(ó¹3„Pcx÷â(Y` RB)xà
+Uº-dÉxk).¡.ºã¢y®B›ÈO :ŒMöÅ–UÁ,³Í}µƒÛlççèB¨nŽÖ·¾˜_”EJIœÒî^B =Q÷x`žž@Éd»þéÐð
endobj
-2741 0 obj <<
+2740 0 obj <<
/Type /Page
-/Contents 2742 0 R
-/Resources 2740 0 R
+/Contents 2741 0 R
+/Resources 2739 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2704 0 R
+/Parent 2748 0 R
+>> endobj
+2742 0 obj <<
+/D [2740 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2743 0 obj <<
-/D [2741 0 R /XYZ 85.0394 794.5015 null]
+/D [2740 0 R /XYZ 56.6929 752.1262 null]
>> endobj
918 0 obj <<
-/D [2741 0 R /XYZ 85.0394 769.5949 null]
+/D [2740 0 R /XYZ 56.6929 713.2318 null]
>> endobj
2744 0 obj <<
-/D [2741 0 R /XYZ 85.0394 744.3535 null]
+/D [2740 0 R /XYZ 56.6929 680.2418 null]
>> endobj
2745 0 obj <<
-/D [2741 0 R /XYZ 85.0394 712.0918 null]
+/D [2740 0 R /XYZ 56.6929 644.7005 null]
>> endobj
2746 0 obj <<
-/D [2741 0 R /XYZ 85.0394 645.3077 null]
+/D [2740 0 R /XYZ 56.6929 578.8284 null]
>> endobj
2747 0 obj <<
-/D [2741 0 R /XYZ 85.0394 572.4552 null]
+/D [2740 0 R /XYZ 56.6929 518.8431 null]
>> endobj
-2748 0 obj <<
-/D [2741 0 R /XYZ 85.0394 472.7274 null]
->> endobj
-2740 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R /F55 1336 0 R >>
+2739 0 obj <<
+/Font << /F37 1042 0 R /F53 1333 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2751 0 obj <<
-/Length 2216
+/Length 1703
/Filter /FlateDecode
>>
stream
-xÚ¥Y[oÛ¸~ϯð£Ô\ÞÄËcÚ¦=YtÓœ&èöA±äD¨,y-y³Yœfx‘%›‰{p ¢È9~3ó ÍfþØ,SDYngÚJ’Q–Í–ë3:{€±g,È,¢Ðb,õöîì—BÏ,±Š«ÙÝj4—!Ô6»+¾ÍßNÉ9LAçïß_ß.Þ}¾þðñòú|Ál–ñùÅÍÍåõû«ßÏ<£ ’”λ¸þzñÉ÷Ýœ[ûxy{þýî׳˻A­±êŒ
-Ôéϳoß鬀üzF‰°&›=Á %ÌZ>[ŸÉLL
-{ê³Û³ŽFݧ)SÈÌŒKF„fêƒ1¢!-‘ro/ÎRö
-Bh®E‡ÛüåC–%\€Õ©É‹b[vÝ¡95D+ÍFk)6kÆÇ 2A´4SÕn7å²úƒR^vp2œÎûÇl~uã;P³sfæ¨ëxz,}‡ßÔd÷LHB%ÓaWM¾.‹ 6VEÂŒQAª®º¾lÂì«vë×_¶ëuÞ¾wù˜7MY‡—Ú˾j‡oœ>í:¡§Šp+dXjÛË„>€f©E!(
-ǵŠGßn1aÊÖ?;DÿêÙ¿äø0sÜ9Ö²o·aäUÄg–P&ÙiÄ[ÍxzªêÚO½=7ó]Ð
-,ïpÜöe1Sfj~†òbáQ)À‰©5&Â’»ùŠ
-÷–ãœJ€lPqÅçíÊ÷ &”cÕ!Êh>r ò£|N(Ÿ{ˆÁ]ƒò0í}éŸOÛª?gspbÿîUç}õWpwŠ8_ÕÍ ƒÝ ”÷¾U…', ó¬ºjw.<`׳·Êfê´ƒ[Ž œ8ÊLCå'c%Ö
-5I–iNxðHêŽRê»T2aÄØ,F°]Wy¯åDZsB¯(”Ðkl«!\Ú½‚ëºÓr®«äK®+‰Ö{ÕuÁÈœÙC×$ç]Ùï±ííSSnCsu°¾œ&)NöëŸÀ½˜%ë°ÖC kåÞO ëj•Ø§Î€WÑøyŒ¼SK@kÔÄ»†˜çu79dç"¸?D›LÐ÷o›úù  Êbzj÷~”wÅÜ¿=æ!MU}hDËf>?à¶ãv=V³„tK•F5a‡Ìãâò÷‹ßn>y¦w°{
-ŸdHPH®H
-Û R]·O ›JȚ²éœCs8·>Lyv¿ó@…V
-H åx4Ø Ð‰¨áfZ=`pT@ƒ“x§ñ+>±„ j¾ÙVMtùzS':#BØ1®qå°1 ü×nŒ¨ØX¶ÛÀY6mSTÍC*õQA ¸¬ÕoÛºKÅL@­æ1<á"‰Ù ÉTLèi‡Dn‘é¸`׃®ËaŠ:÷Áb÷a3þ0Ñ5ð­jb
-å ‰šú„Ì>â Þ&Ì+-‘TŽÓËöµáâIœD£¶0 N@0NÂÝèÔÏn//ý:Ÿn?Ÿv6œýšQÿXÔ0B²Ñ€ÛìHÚÍHŒä y1õöêú½ÿÔ¥ŠuÕ
-`*F‰gŠd 6œ  è¹Ü‘W¹Îx
-Ç)dŠë RÇ{Çèù-†OXo‰&:\^?´@I× '†
-ßJô=Îú8´~$æ‡bCgC [7ÃÑM#Ð0)ØáäÛÄ”`|£²î¶ÛõªJ†uMÌá¬ÝÉY_ÐÐeLœî?!+ý“˜m!,\([&¡òŸ¶IN –Å+›5ÿŒ-Ôæ{Òq¥<‚%ã‘ï/oß}¹º¹»ú|ÈÎ{èj.ç'ÔP}Eò†®c¤«ûŒïþ@üÐýs*_A¬†\‘Ôt»M“&V—’mNf?ÿÿ­ö€ÀÃæW½W·«€ìïrŒ8d0^Ìqcxâjés"×¹ª:>èΠ÷¡ŽáÁ¾h¶ÁxøîJ2(£7žbþUƒlºà”#×g?aG;OÚÑÈÚ¼ž¤fO&ž›>ÿ;*ê
-Pw  uÇáÙ”eï(<K@F!!ù‰ƒ»"Ç£ßD^±¬wÁÈqCˆ.ÿºén8C=0Yo™Å¦­«åsæ#é… -Õ“°á Ë€Êô׎[r5‡(”c½€].|¸^¬L°g\¸6ˆºÒíŽÖUSÂÖ!QºJ»¼AQò>|áé¸[e:™Ð´Ø3¬3`þ5ÐEÇ£G
-@šp.Ä@à“ššùŒ!¸`8Û7Iú ¬ÁÆϧ©nô)¬¾N1"Ž¡ÙÆPÿÔîê°×hÿ–ˆj ,ZfSûx·UplÀ“}ùn^H§Í9s b )ƒãh̓·Ã÷/š“3M¤µì'’×Qûë_¥‡!Ý;¼
-
-ªú« ˆ!l¹ZF­€’Æ8îÁØÔK‹ñÜT{Æ´Š7z°oòÒï¹ðG†¢Cªû¿ËØÿf#5Ä.ÃÓ×3\CµÐJá6™¡Ç7Uø 0­cÝÿ yÚ|ðendstream
+xÚ­XYsÛ6~ׯÐø¥Ô4Dˆ‹G3yPlÙq±L&ÇMB[ŠtD*ŠÝæ¿w)J¦ãxÚÑÅbO|‹…èЃ†’x<à DzT“ùÀ^ÁÚÁ€Z·ar»\/.O÷y0ŒHä3x1íÈ
+‰†tx‘~rƧ§“ã½Ã#—IÏyAF®ô<çh|ünüi§£ˆ9ãƒÉ9L™|`¢!}¹xõt_òŽ|E$R›¥%Ÿïí’Ý“ã}Í:˜\´öv}¢×Æ~|úâ SpíÕÀ#<
+åpÐ(bÃù@HN¤à¼¡äƒóÁÛV`gÕlí‹‘ä!‘! z‚ÄèRIÉ6¢$#âsÆ/“ã£Ó7tZЮӒ„¾”CWxDÐHöòºÎÊ¢¹>Äòo½«Õàâ
+lÏUjÄs×F‘Q"/Ú £=ž”R‡˜êáì–ó9¯tmgN]Ú¯ÑÂè†u@o€%ë=PÑÑî¶4½ÑùDOg5Ë’®Ì—(šÂª¬òK+$UŸ=Æ7 gÅZIï!CÓáü¦½ ') -áj¹ˆu9ÖÄÐÑ”\!Ã
+0ŽÐrXËíbÑŽ0øzòˆ†ŽªuôàV¼˜YtU³Ôq­æª¨‘ži–
+OÛ´\ô÷V¿š.Öé}ió¡;ðý†£Õv¼u`t½ÈtH,h8 å}$hÖô1¨ñáaÖ<(¼ªÇ‘²ðgˆ¡‘O„~ÛlØ­’Y‰}ÚÎ_E¹*lÿ›ÇÚåï¶ Öa6ƒØv³¦kÛÁÉ?øÙ2nãݤ;JAcø:MÐïóÉÙnå÷ð1sý$<<xw6ÖѼ8<9¾Ä!¾ÀãkîYN}{)s*Ûê©©ØEèÑ¥]]_ý&)®øÀ7Nu]#'^šj‹4>Ü [‘"O³…%åU‘ÝZƒ‰Àƒï1 T×*É´òFkVôÝ‘¶Ù†ŒO"îG¿R‹€“wjgQsCpÊó8¢O›¯h(NEO³¢×8E2üÁkn¾Ær¨4"Šœs¥¶ì¨:ææÚk–ûê%ÁÃß’ &›}H§ë4xmê;÷págœÎ³"«j
endobj
2750 0 obj <<
/Type /Page
/Contents 2751 0 R
/Resources 2749 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2760 0 R
+/Parent 2748 0 R
>> endobj
2752 0 obj <<
-/D [2750 0 R /XYZ 56.6929 794.5015 null]
+/D [2750 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2753 0 obj <<
-/D [2750 0 R /XYZ 56.6929 590.0348 null]
+/D [2750 0 R /XYZ 85.0394 751.3734 null]
>> endobj
2754 0 obj <<
-/D [2750 0 R /XYZ 56.6929 462.241 null]
->> endobj
-2755 0 obj <<
-/D [2750 0 R /XYZ 56.6929 400.964 null]
->> endobj
-922 0 obj <<
-/D [2750 0 R /XYZ 56.6929 363.2323 null]
->> endobj
-2756 0 obj <<
-/D [2750 0 R /XYZ 56.6929 327.1951 null]
->> endobj
-2757 0 obj <<
-/D [2750 0 R /XYZ 56.6929 295.7222 null]
->> endobj
-2758 0 obj <<
-/D [2750 0 R /XYZ 56.6929 231.5234 null]
->> endobj
-2759 0 obj <<
-/D [2750 0 R /XYZ 56.6929 161.2561 null]
+/D [2750 0 R /XYZ 85.0394 109.3471 null]
>> endobj
2749 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F55 1336 0 R /F22 973 0 R /F41 1233 0 R /F48 1253 0 R /F39 1173 0 R /F53 1328 0 R >>
+/Font << /F37 1042 0 R /F53 1333 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2763 0 obj <<
-/Length 2602
+2757 0 obj <<
+/Length 2475
/Filter /FlateDecode
>>
stream
-xÚ½Y_oÛHϧð£ÔÓù/éî)½æzYlÓl“ØÝÅÇÂÚ’kÉIÓOäpF–ÅÙÇ"õˆâÌòGr$fþ‰YjW™ž%™f† 3[nÏøìÞ}:g™}®wgïÿ©’YÆ2+íìnÕ[+e<MÅì®øm~qssyýñêßç iøü;_ÎçŸ/®½ø™h7癜_|º¼…G‘%˜¤@>Ëç_éíõÅçËó?î~:»¼ëÄê‹.¸B™¾ýöŸ ÁOgœ©,5³'xàLd™œmÏ´QÌh¥"esv{öK·`ï­Ÿ:e
-£RfR™LØBÊ)[˜ŒY%•·ÅuÝ:PÒ¦óv·¨Ì½YZ3ed[!{•o]¸úk+ŬU6p•mã6+Zv™WaPW¿s.ûs‘Îæ9ýlêe¾¡áÇ×·4úÓ=Ó`Uïiph´§²]OÈ*¥b*édm»"ê-6bÊ%"L`KZ&„MCQTÍôX=¸jb5k˜ä:n_6´q]mž‘y¶ÐR3žh5[Á2c$‰é\6]ȔϟÖ­•
-o lëÎZðä6ù}½'•àñhѼ-ë0Ño /iÞ·CIƒâoç •ð`Kä«š6¯–î>¦ór5¡¼§—V¦cƒ¾T¼$ÕÚöUÚšöºÃùEW^ªzKO9ÙGY°6hh’K~
-±Ù<7­ÛϪã]Áî a„‘‡3¿ÜÜ]}o)gÜ
-!—)5J:ëüÑ òá6o‡ø`ò1ß”òŠz›—q»•
-VÄr{xJ©‚}ó@‡QÓ¯û¾ÛäUÞÖ1—µî{\nO¿‡&p‘Û{ÜëöÖ)dP›ªÓöîs½nïŽËÛ{?‘i L»Ô·§¨·«ró2×@)¨³4=-]Ç5!Þ°°„ÃI¹Ê7L7†ŘySSÓ·tD&ÐAZâÆ"'ª/2q
-yZ°ŽkB²–I ãh·àPèbJ›ùºnZ…œƒ÷…TJ
-ä±6L2¦D:Œ¨¤Q/¼û$ý¤U~ô~™W!»¨
-_`¦¶CúÄkóßÄëøz~! ¥KŒï.z×ô·——$ÂÅÏ·_&ÖX’ *ƒ¯¿sÃü/‚NoÌø S"ú-TÖW!øPi,Z?\]¤©Y¬ØB…Ù´{ì‰ôÕ!Ââ6A6>çÕ!ŸúÌe}Ý%Ä´q 9a ·çâ×»}ùzÊ*žíª‚z¹Šñ­ok‚3ü£®šzß–‡íq[ %ºí>™:H¯9“â|!8Ç‹Ú]“%² ¥FÛõtE.ÎÒ„˜º¼nIð4¨Ð›M¿ç\݄댢 {6;^ ;ùe½<»
-âxs?É»yíˬ2 ?§N
+xÚ¥Y[oÛÆ~÷¯Ð£ TÛ½_Ð'7qs\4N;À’<Ðe‘HU¤âúüú3{I­,÷°VËáììÌ7ßÌ®ÈÙ‰¤¡f¢ G1™o.ðäž½» Af…f}©_ï/~þ©‰AFR9¹_öti„µ&“ûŗ鯈t *ðôÓíÛ7³7n{w}{9#†+>½úøñúöíÍ¿/gT`IŒ§ï¯n?_ýáç>^:½zw}wùíþ÷‹ëûdVßt‚™µé¯‹/ßðd;øý#f´˜<Á 6:Ù\pÁàŒÅ™õÅÝÅŸIaï©{5ë
+‚e’f|AÉ„d„ gƒ$£Ì9ãîúÚoêê»v?ðíyOà)F'¾«ó¯X` ÿÈOþM;7›7õò±¬ÇÏ6›²ž7‹ÒÎ?ïÖ`¦·Q
+ cìãssûÖ¿m‚i‹MUWm·+ºfç§>•ËrwIôÔ—~ê}Qï‹uf DjD¥ŒêQøfƸ@šA
+vfà ©h¨
+,0ÄÔÜÒVÿ ^¬1Óœ‘ —tÎ3:!fZ
+qP¹¬Öÿ@å*¾g”KØaü ¼N¨xòíY{·
+‘«v»fÝfVfq©"ìíjmiBèDr%Ô ðJÔÓv
+Ò˜0:†bмîšÇ6¾»„N>ßé¬g lÀ¡}wô¡aX@ùb—Ò—Š øq—’¤¸ê/)92†è——ŒB™%™CÅÈpÉ·Ž
+Çꚥ#@€HÉüsÙÍóÈUÒK`—.`ãÓ
+Ìþ‘-ÚЬh&"·Ï­M‹Ô/ ôà4´XyìÉV0E Ý–óʺ櫈žV¶…µ#6rsñáþZwöhå¿v`ª;ÊN« ütZzuŸ ðßqà©€žRRr&òq’ˆïD]½bmú —Ιƒûš°MHë]·ß"[ (`(ëK*å1[ÁIê­yùdaƒÆÈŒÙ
+ó©=³bZ;°báÀêf—Å~Ýù/óf³ñ¤s¨Wu¹öOÒ,äØ%™Bø ÍbÏÓþÄe×ëæ)_åž‘q6›.Wv‚eûÚ.YŸ@5cT‰!ƒ»˜Á
+¶ûTÞ®‹yê¿àE_Õ{¶ª©Ž-GXËQ*œì™Hýw~DÂABEýéTPm.<–m¼D!£ü»j;ß\Û ¶tÛ£s´­À*•üz®>ƒ\¢ö†ÉŒ t³´ëúƒƒÄÓMã½ë'ËuñÐØ£ÿz|òI ÚèóZâ‰iá<<çò‹Ã× Ž}ˆšÓÕ*‚ÇUUõ6ÿµ¯ü`ac"i„ìãïb³]G
+höGçð£:\Ù‘Un?mèì§E¨ý„›-‚¸[pÓt½î›q=}nö^ ]5ûuvwÆööòPJΟN…IÍ¥^ëmÍvñPÍØ‹<´R¨Qoõ9
+wÛ(Ã
+¶…wO28…ÛdìÚ3§BªSéI9És’ÿsô!ùs@$:ÕÜmoÙ™æ¶/uº¹MRÎåá–M²¡ËµIï]²õM#
+ÎÙ™h÷¤^ˆv”rÑžç¢mN2÷ŸƒhÑLIèN^´-IeŒF›ÙþodÝçP]ûõ*Ïp¶b*íɃ¿N­Y:ø÷ªëå—Ïñ䛎§îÆ¢×"ÞLWgCÐpÈzň+膱êÿÆ‘ >VHLÏ¿'õBð£”sÓêè+6êÌ’Q(³ä öAOgËö`É»*´@ØÕpëõ•½°öÃ=4绀f9êA|ÈÚñÅ„#ËÇ}ê­\<óœRª^Y´0´ÞŒ ´(TIòrdzB§…\\¾¿†‚ãïY
+~É°Y–%à¾iþµ}lˆŽŒ?HIWñüÈG°'¾’G”5Øžù’n!àÁfïÏ"2µÝ…ÿøQ¬ÝÅ ͦ¨êƒ(K¿~÷QcÎXᨦӱÊæËåx>eYªÄéÂëÿþúðK;·wäúD‚ÂÑÁË2e 'šc=üV}lûE}Î6endstream
endobj
-2762 0 obj <<
+2756 0 obj <<
/Type /Page
-/Contents 2763 0 R
-/Resources 2761 0 R
+/Contents 2757 0 R
+/Resources 2755 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2760 0 R
+/Parent 2748 0 R
>> endobj
-2764 0 obj <<
-/D [2762 0 R /XYZ 85.0394 794.5015 null]
+2758 0 obj <<
+/D [2756 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-2765 0 obj <<
-/D [2762 0 R /XYZ 85.0394 687.6869 null]
+2759 0 obj <<
+/D [2756 0 R /XYZ 56.6929 752.1993 null]
>> endobj
-2766 0 obj <<
-/D [2762 0 R /XYZ 85.0394 264.7716 null]
+2760 0 obj <<
+/D [2756 0 R /XYZ 56.6929 689.9994 null]
>> endobj
-2767 0 obj <<
-/D [2762 0 R /XYZ 85.0394 197.5243 null]
+922 0 obj <<
+/D [2756 0 R /XYZ 56.6929 651.6264 null]
>> endobj
-926 0 obj <<
-/D [2762 0 R /XYZ 85.0394 155.6441 null]
+2761 0 obj <<
+/D [2756 0 R /XYZ 56.6929 615.3075 null]
>> endobj
-2768 0 obj <<
-/D [2762 0 R /XYZ 85.0394 117.8997 null]
+2762 0 obj <<
+/D [2756 0 R /XYZ 56.6929 583.553 null]
>> endobj
-2769 0 obj <<
-/D [2762 0 R /XYZ 85.0394 84.4903 null]
+2763 0 obj <<
+/D [2756 0 R /XYZ 56.6929 518.4312 null]
>> endobj
-2761 0 obj <<
-/Font << /F37 1038 0 R /F22 973 0 R /F21 950 0 R /F55 1336 0 R /F41 1233 0 R /F53 1328 0 R /F39 1173 0 R >>
+2764 0 obj <<
+/D [2756 0 R /XYZ 56.6929 447.241 null]
+>> endobj
+2765 0 obj <<
+/D [2756 0 R /XYZ 56.6929 349.1756 null]
+>> endobj
+2755 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2772 0 obj <<
-/Length 1275
+2768 0 obj <<
+/Length 2199
/Filter /FlateDecode
>>
stream
-xÚ¥W]oâ8}çW䤉DZc?Òé2šR¨´R§) m´0$LÕýõ{Û!ÀìªêC±}ì{||îµC< Äã E•ª
-æ…Œ¡€€”¡ ¨L9»À …„ ÕX¢¢®óq(Í*Úï¢,Ú&šÕ篢gŽRÕÀtÅñ>)
-ƒl¯\!©E"„ ¦-ŠOpˆ¸Üó„’ BÆ‹/óÉl9¹ŸÖ³Ž+cϧQ¢Â¶”6Aˆ$ŽC¹²b•I1ð˜j2C)Õ×{Ù‡}¸¡˜ãÉìW`Yìfü0DLw™›Þò51«|oÚåYœf/vÖÔŽFs4œëp¾wkŠãlÁókßerFï°èÔ·µ[ŒÇ&O†ß÷ÏÔeõn&Ó‘Á+;-Þ¦YZ€X¥¦¨»æÉ:1ËV‰éº‹²C´éœ‰¨Â{÷©;P‹ùðaùÇý¼cÍÊ“¬LöYR&‹÷¢L¶…i|ɳ"ß—éa{Œ §TÀ ^—¡8á%ÉÀq^M«åH1ÍpÓnsiVÐâ¡Išã“”†æ $ ¦.²ÃÓíZåYæÚ/ºÝ\&ŽÊè¿úoê㔫ԑæ—ëH:‘D€È~ÖQQ$CBÖ9š¶ÏàµórÂÀ
-IÁ?RZÞ9ñ¨!eèÊ¥s‚.22ÔV`RÔVÐ]UQpCa¿Ð&ט|m: ÖÎoúFƒÜ¤]²J50‰MÇÏC”•iùÞ^jW$‡8÷Ýé.m¶O¦9â~-ð{MW¯Ö³Qf~<[
-®rxÑrz‘ªÚá*‡Ž¯ÿ'YYõç»wÓ±vå&‡‚ºw©±ÝA»bncÍ”KKË)Ë;ò'ù•®’ëuÓ\ÅÃùíÃÝxº<VØ  ˜!ÌXp=Mš(÷
-8O“¥#×iÁÛn–Š³³´h2#8@ðF‘שըn­Ê
-\7-r­¹¶Ë&ªNÐ:HwY;›º¥Í›Y€qé'}ω†éÏ“šHŠ¸d¼#ù[ÔàœBJ¤…éËym¼³5‘©‰«/dÝTöŽ>&Œåív‰¹˜;¸0
-/T!ÿiîl]EÅÛ c^ÚšPÐ%cïKŠÉuc5Q—U£êx4„ëP‰àzPêÚ”"Tˆ…aغt{6¸™òµGƒ@#µYýwºÉŸßKsX·ïÏËúÁ5Ìá¹.ßtE= 2.ÓÝÅÑŒ«àm yp5®ÃœÇm§†ß"l^¶U:ÈÉå„i”ã³'ƒ9×ü°‰ÛuúmŸ–e’u¿Ë‚
+xÚ¥YÛnÛH}÷Wè‘F¾³ùèLœl‰ã;À
+IÅp°¿Õ7š¤ZÒ,Â&Yê®Ë©SU4Y`øGJ Ì2¾H3Ž&b±Þ]áÅ#¼{wE¼Ì*­ÆR¯®^½eé"C™¤rñ°í¥VŠ,Š/ÉõÝÝÍí›÷-WTàä5Z®ÆÉÇëÛÏ×ܳ»eF“ëw7÷ËÉ„  D±‘“8yóæö~õû§Û·ïnn—_þ¸ºyÔ«N03:ý¸úò/
+°à+ŒX¦Äâ n0"YF»+.œ±ð¤¾º¿ú÷°áè­ýiÌ\($(—‹•V$; # /Áa£Œdjp%1‡)ã°ÕÞúê­d#IBÊhfEöºíçÞ à3ÅÅb|â‘^A(¢ŸFRTλߗëêoŒiÙ-W,“I¿-Ýb­w»¼)ÌHÖÛ¼iÊÚ½±šÚÕÓ¶l—D%¥³nâŠ1‚e0¯ÉweáÅÆj1Ž2–©ºêú²ñªltTÃ×}¥Ý‘lì©z9–0€æÜoØ6Å:r*¸Œ‡,S®’‡­5à€)”@j@„ x­TQnòCÝ;xW»BøЄ=N$d ÍRrLc©Ó`¤,˜Ú˜2$ÁjœÞmªº<B”àˆgJ×nŠ¨7Á”ÈW˜Lõ›bJð$7‘tú`ã¶.Ýc½qW§­“)ò>wO]ôañX6e›÷UóèDBͶ‡~«ÛêWnA””%ïýž^H$z~ìb›!Á8™†¶{ÔTÒ¤ÐFk*IÒèÞ=Ú;´ý¬ŠÒ=ÈÿùwDÁd>
+÷¤jö‡E¬T†L)™À ôŒØ($b< þèÆ0'8{`axÁ­¬òpÍÝ(§Í×}i¼c€a½á%[w5ÖþpDŸWE‰¹q>Í2`Ú`¼©šqb¯Í'ßJwèÊÂ=©ÀE^¸Çη8D‚„H
+1…âHè4ƒb­¬Ð:…€­·­Ö}QµGHä)üúÌsš BǪMË*E׎uûìh)Ë’§ªßºU¿aLB£ÇTÈœU‰'„Œ¦2]ï Vü–Ú]-mžÝaÊ ˜¥raZ÷ºõoÎbºL8¹Œu託zªêÚmÝ.UrðZÛ-‚uoø v™\ûWy±rxd„Aþš¦eÂó•±Íñ1ƒÌØ?K%{qá´Îaª”Ž’Þ g6$ªW¶uÅ„%OmÕ/¨ËÆÝ;gÕБüô®üEl–˜?s3¼ì!Gø,©üŽ„ýg§nôÁƒyôüRÇjš®CBŽ ¥HQ*éEÖ‚Á"crLÑÜ¥I¬.4Æc©3Ù¤,Ô§,(pí©)ë¬^Ôu¬WtÊš(æs׆Ëæ®ä§r—£4älî‚—)Éæ¹;@‰']Ù¿€Û.ôSc)³ÜÌΟ¶±ŒB§ˆ³†|€¾Z18Á7ì6S` zòcCSÆ+x''dðrÐ%Kòº V•¹ð Ls³)ÄuS?ϪÏKßhz¼ÙË—LðÅÉ%cî/QUïÁµÂáGß@Ys=6ЄÁ ‹%”KèFÒ@ê7]¼ûps±ÃO$ÂJ¦®°š*Ú«T×ú)âSì!ÍÉ…RNM
+©ÜëãЭ<RaÕxè6–H…m1Œ­¾~sO=e;X©Ñ¡+ ¦†}XOÅ á
+vÚ<z”ÇïøÄ KÍ*3.™eî.]¾Û×QJ'ˆ± ®ÍÉñÉEñ9®í ök6³Fëû•½††ÜÍ–óâ‡R„Þ1ãI«ë.Æš€Ú”†Zl‰ìK"GãBŒ2$EöézÈÀ “Ó¹÷ûæqÁ4©aîª&QJLS7ëê€4û€ p¸Ž¸kŽù¸@œôof(.Dâ"r†Â•fÙèDÒ OóìþæÆsýáþÓ¹dSÃîcüG‚†2æ…½°ÆŽ¤íédA”˜zýþöÿ|ä•*v0¹v=ä’öTòg¹ñU³ö©ùÑ¥_$ðÒ “rRwè‡AÙà¼7ñËõç‡}úó²CÞ70ˆ7¥§Ä{û½Äóßï0e趯/Óá0ûË0^ÁÎtDñB
+©^M7Ž  OLæn͇¸b0žQîhq²‹#wJS?‚×Ñ$Œ]„oI:°¾Öõ?Ïs£÷]u4~JC¸Ð¥
+(ÓXã`2—
+“ç¿)¿ì`›
+ý¤ì…Ž 7Üù%§˜ŽÑI¢Bºåõ£†–t»‹¤°€Fœ§F_îÛaõ=²? ©ÆGpt3ÄmÊІqFæ›·‘-
+¤ˆËœ«l¹DÍwí.îzBK-¶û¯I¿"»­XfèÆ– QþÒMt[ð¬ùkÆLÍae´ùzêO! ¸ùûE>x€ìÿýg’—?ÁˆÊ”¢ñö–anª( JsˆbsÕSZ·4¢ûd¦bendstream
endobj
-2771 0 obj <<
+2767 0 obj <<
/Type /Page
-/Contents 2772 0 R
-/Resources 2770 0 R
+/Contents 2768 0 R
+/Resources 2766 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2760 0 R
+/Parent 2748 0 R
+>> endobj
+2769 0 obj <<
+/D [2767 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+2770 0 obj <<
+/D [2767 0 R /XYZ 85.0394 465.3449 null]
+>> endobj
+2771 0 obj <<
+/D [2767 0 R /XYZ 85.0394 333.447 null]
+>> endobj
+2772 0 obj <<
+/D [2767 0 R /XYZ 85.0394 269.6416 null]
+>> endobj
+926 0 obj <<
+/D [2767 0 R /XYZ 85.0394 230.1531 null]
>> endobj
2773 0 obj <<
-/D [2771 0 R /XYZ 56.6929 794.5015 null]
+/D [2767 0 R /XYZ 85.0394 193.3443 null]
>> endobj
2774 0 obj <<
-/D [2771 0 R /XYZ 56.6929 749.0356 null]
+/D [2767 0 R /XYZ 85.0394 161.0999 null]
>> endobj
2775 0 obj <<
-/D [2771 0 R /XYZ 56.6929 687.7594 null]
->> endobj
-2776 0 obj <<
-/D [2771 0 R /XYZ 56.6929 611.5631 null]
+/D [2767 0 R /XYZ 85.0394 94.3727 null]
>> endobj
-2777 0 obj <<
-/D [2771 0 R /XYZ 56.6929 547.3221 null]
->> endobj
-930 0 obj <<
-/D [2771 0 R /XYZ 56.6929 507.5308 null]
+2766 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R /F39 1178 0 R /F53 1333 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
2778 0 obj <<
-/D [2771 0 R /XYZ 56.6929 470.5891 null]
+/Length 3021
+/Filter /FlateDecode
+>>
+stream
+xÚ½ZÝoã6Ï_áGX³üu÷´í¦{)Úì¶Iº}P,%*K®%ošþõ7Ã!eI–8,²¢¨9œß|ÈbÁáŸXËl*ÓE’jf¸0‹õæ‚/áÙÇ hV‘h5¤úöîâ›ïU²HYj¥]Ü= ÖrŒ;'wùoËo™äì–àËnnWß}ºùþãÕÍåJ¤ÆÈåûÏŸ¯n>\ÿûr% b ä|ùÓû›_ßÿHsŸ/S ûxu{ùûÝWw=[CÖWÈÓŸ¿ýÎ9œà‡ ÎTêÌân8i*› m3Z©8S]Ü^üÜ/8xê_…àL*+gd!ÅB†§ äÌ*©¼0>\Ý~÷Ëõç»ëO7xÿÎA~|±’–)#Iry^·«uS?<u –jk˜²BÂ[H 4Å.늄æô2ËZþQ¼ÐýC³£Á¾-èÑýË B8fmâu»ßæ°èÌîZ3—8³:Ÿ[-E¸¸X¶)ò™•giªâ–`
+´çº øÞHð<èäܬ·2ïA´ÄMÓqWàóX€ÿ¨Ò×°]1k{l/»¶¨¡³:ž>â9bkØ4£KÕ€iˆ¹‚‚]8 ”`ð\vOs
+“
+ %‚±eUÍiMÀáч¤ã%-º9;ŸE0ÉuÜq7nêŠü{¥A<ÑjlÇ=&;¾|~*| ×ùrÓôÒ‚»¢Êîr¼‰‚¶…‡ôÞŸû’ù?À¥’h HWÄÖkÄ8éܲ|˜9¼’‚I{ìç³ݧ‘1~¯ûÀp0u=P€ÝÐ]ôs ÒæãFNüoÈNÁ²Û—"ÃAWƒT l[9¦$˜+¾ùÉç_Çé¤`àIva”a"I’é­†T1û;΄{*Üw•sV“%®‡¼¬zlv`Ä›)sEîxrž»žj†=9 Á À1{·} D5©ˆ708pEó ]ÉíTtÄáw·×q”ÐìŒÛå{Læ¿f%Xlh×OM¹Ž{f¤V´J®—O›l½ÚäQ º >£X¤»Lû”‰•xR¸¸>œ1v2£œŽ¹K>~b„D¾_Þ=3Ë‹‡l_u!÷iÖf§ÌJC¦¢ÐËÏšÕê´YõTÞ¬ž¦[‚¿ð4yeËH4³åÐTØä&[~Þ•uΞ÷{jvA*íÂÜî…n|f×.
+°Ù"(µ‰“Þ÷˜Ú…g”ˆN¡\§ ÈäÈ+˜øÇgUc3ðÆy͈Î(&y½ü1çîb¬‰ 8‡Ï§Î  •Pg뉎9¹º0L ص‘«+¡C \•01OT[h(#Q¶‡Éº+×!ÐĂîÈqp¾w¼Çñ²Ñ£°uŽHõ(ª†$xŸ¡d4¢ÏŸHù ®àAj¦‘°«Ø¤tiÅ’m´;(š;×\µsù©fiÒg·5 Þñ2D‰4šçêïWW!w ÞJà­¥á *ù'Ì(ð<ÃsÙúêCÄŠ‚ âž,0Ñ/y“\…fxÉhé¶Øf!‡I
+ñYC>,L:ŽÏMU5Ͼ˜1¾Ûà¯Ä5 †O3ÞΆ$$<n’. öÈÞÍœMòû1éäpÃäžÍ)A ðX3“»¸'Ù? ‚ýÃh³o»pPÈ"R¥&æõ”}-&q“uc
+M‚ú¬Ô
+0ˆŽ¦ À‚&²9¸… ÒˆHßäÅ×o¹f2 µ<F*h¥¯Ï
+ÑW6–‡Œè{0Ü—ÅE–Ó4É6"‰××Ö
+Z†Zžû£RC ðïçò©Ôb}24ÏGg}h:”uŽyW4ÑØNâSZA: £Ô1›85-œ¨Õ†0v_Dd+ò“P&aR°óX6¤: f=Õ0ïšÖÈRõšË˜SH\$.gùŠD3| Åœ+VŒùºkBûRÚ,Ÿš¶£Q5øÅŠ2˜;ÓøÖ›£ú}C§cÆFaE=·‘‹g ÑúgE ÂÎ^c› Ç¡½îǧÚÄo I”±¿vÆ=‡f¨-™<øTÊä:Ò†ö-á6-o`ÿ_Å+Íà]÷²-ð;¤}w‘råÚ¥ñ¾›ÎC;ébvK5È1ß»áܘW‡&¸|”J\hŠÒ²˜&)SÂ%×C4ž {žt>iU>z¾Îê[T
+Š[-¶á²¡«J ²ñ‡räØîˆ5‹ÏVã &Ð1Í©ºÙ¢KXÀ4nõ+õ’ÖÆê¥ÓÀ„0x¥Ë2¤:L‘jÈÚ™æ]lË€I@* Ýy¾"Ñ _#`²Øc¾ü¦ ayÈ{UìV‰s`$ø¯yð+F`„0Â}<᜷I˜h‹@DßeFø0‚·/"¦òØ\S™äø«î<þ™$c’2Ú½$õŸ„÷÷ÁIåÁIÑ %ö?¡’ ¯Æ“´a†&3ÿI&`¾®“ä­}!N>ªŒ§ìt»‰=½MἩ­øÿ»lû߸ì´3¿i
+é¨sãýíÕ±ðþÇÛO3ëO~(?@|ᆠø/6VOÌô N:šô[¨tx„üCŤõÛë›ôfË7a¶Ý«Cšú¥@ŒÅî56Lý”Õûlî¤qôY{ô…i((N°mDzyÿëÝ¿>ýòºP®kH˜ëXßúº&ÃwMÝ6»®ÜoNý¤F†¿ƒ™+Þ³ø?ÿÜæð³"0å܉z_&€?)ŒSx8áôq?Ì9æý?¤E<rendstream
+endobj
+2777 0 obj <<
+/Type /Page
+/Contents 2778 0 R
+/Resources 2776 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 2748 0 R
>> endobj
2779 0 obj <<
-/D [2771 0 R /XYZ 56.6929 438.2117 null]
+/D [2777 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2780 0 obj <<
-/D [2771 0 R /XYZ 56.6929 371.0488 null]
+/D [2777 0 R /XYZ 56.6929 751.9582 null]
>> endobj
2781 0 obj <<
-/D [2771 0 R /XYZ 56.6929 309.7726 null]
+/D [2777 0 R /XYZ 56.6929 565.8108 null]
>> endobj
2782 0 obj <<
-/D [2771 0 R /XYZ 56.6929 233.5764 null]
+/D [2777 0 R /XYZ 56.6929 148.6739 null]
>> endobj
2783 0 obj <<
-/D [2771 0 R /XYZ 56.6929 83.9088 null]
+/D [2777 0 R /XYZ 56.6929 83.9989 null]
>> endobj
-2770 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F53 1328 0 R /F22 973 0 R /F39 1173 0 R /F55 1336 0 R >>
+2776 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R /F41 1238 0 R /F53 1333 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2786 0 obj <<
-/Length 1769
+/Length 1276
/Filter /FlateDecode
>>
stream
-xÚÅXK“Û6 ¾ûWøV¹3|èyÜì#ë4ñn×ÞN:IZ™¶5‘)Ç’ãøß (ù±JÓ´‡Ž†@
-8Èð#bO\ÂÄ+J³°€º^¦¦¡Üò,_èªv¢Ú,ê%ÑmÇ‚Ë´rK.)áa^ó‘<gš½€ÇÈ÷ÀoA íßuC„œˆ§¼®Ú2»æ¬ùþÁš4Ö€‹j–ÕXR×x'œhI‚Ošþ·•­>X¼•
-[V{ gÁÕ©M >§¤»ÒU•.œ¡t q2už\iH.+gn<¬‰·K«ÓƒNq÷ÕtŸ
-ME¾Ëm"°ìÁ²ëWã ùj]èlh·«Xk‹M—9E†a@@
-GkƒTàºÔŒØ¹¡‡Z á%¤bï¶ÜièGHÄEÙ¸ë#$¿J÷D ˜ucµ9\^äõ¾ñ Þ9'¦å!‰…Ô £w”îè¸)ú!Á¸èò "wKmhÑÕ20D!ˆXÛBÝ@
-ÉbèU®ót]gý#ŒYìÇÊ)¬ÊYŽ²¶åÃ>õ²¬4ùÑà6r
-öRä3ÈΠDóŠº&>Û«ô`˜nd4ñ<IÃŽ.
+xÚ­W]oâ8}çW䤉ױc?Ò)Ûe4¥,Pi¥NRÚh!aHhÕùõ{Û!ÀŒ¦+Bì“ëësÏ=qˆ‡áG<Éf*ðB Ž ÷–›öžaî¦G,Æw ¿‰ºZôþø“…žBJPá-VXa)‰·ˆúÃét4¹ÿ3ð)Çý+4ð9ÆýÛáä~øÕŒMŠö‡7£9Ü
+6±ã“6ø•H„Ê«#T,~£44ÿÊ]”먴㩹Fq¼ÙOŠ"),2·×‹]æ;‹ÙæYœfÏfØUÁÜé5 ›l™ Å9µù1Ø5á¦òó÷,ßiq\7ä3`P0S¢‹g»¦<€ÿzÄsÐ—ß QÕ z¬Q-Öª pÖÀCùAºÖÐÀt«¶ ²Ù ™E"„ºè€:‡ˆ+Á-øz4ÿ<Oã»IýP»ÄR :’m‰!‘$Â%[×*Ë°-ºRÇE×Sß0Çãék`Yìžx0EÌ°V†5Ê€eTOMüáõõ 5à|çbŠÃŒÖ¹ï²ökž ùJP袢Œ F#«Ç¯ó;gê<yWãɵÁ+ûX¼I³´
+ª..YƒN×lÉm! hkÑ…Û°1ßf»×\Ô7©íèÓuþô^šJ5NÜN=gÉ>.ðOš²:Ož‰éÝ;£E!8?cD]\¸®Ü¢*Ä@w­¥mžúq„9jf|r^05xÉ÷ë¸íÒo»´,“ ûFCÔv›Âµu~øûñð Ç\ÐÎzÖ,*â’ÒìÉS¯¿4OsÿH ¾Üendstream
endobj
2785 0 obj <<
/Type /Page
/Contents 2786 0 R
/Resources 2784 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2760 0 R
+/Parent 2748 0 R
>> endobj
2787 0 obj <<
/D [2785 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-2788 0 obj <<
-/D [2785 0 R /XYZ 85.0394 752.3326 null]
+930 0 obj <<
+/D [2785 0 R /XYZ 85.0394 769.5949 null]
>> endobj
-934 0 obj <<
-/D [2785 0 R /XYZ 85.0394 714.9106 null]
+2788 0 obj <<
+/D [2785 0 R /XYZ 85.0394 745.1845 null]
>> endobj
2789 0 obj <<
-/D [2785 0 R /XYZ 85.0394 679.124 null]
+/D [2785 0 R /XYZ 85.0394 713.9707 null]
>> endobj
2790 0 obj <<
-/D [2785 0 R /XYZ 85.0394 647.6724 null]
+/D [2785 0 R /XYZ 85.0394 651.0924 null]
>> endobj
2791 0 obj <<
-/D [2785 0 R /XYZ 85.0394 583.9192 null]
+/D [2785 0 R /XYZ 85.0394 594.1009 null]
>> endobj
2792 0 obj <<
-/D [2785 0 R /XYZ 85.0394 526.0527 null]
+/D [2785 0 R /XYZ 85.0394 522.1893 null]
>> endobj
2793 0 obj <<
-/D [2785 0 R /XYZ 85.0394 333.3907 null]
+/D [2785 0 R /XYZ 85.0394 462.2329 null]
+>> endobj
+934 0 obj <<
+/D [2785 0 R /XYZ 85.0394 425.448 null]
>> endobj
2794 0 obj <<
-/D [2785 0 R /XYZ 85.0394 248.649 null]
+/D [2785 0 R /XYZ 85.0394 389.7845 null]
>> endobj
2795 0 obj <<
-/D [2785 0 R /XYZ 85.0394 187.8177 null]
->> endobj
-938 0 obj <<
-/D [2785 0 R /XYZ 85.0394 150.3956 null]
+/D [2785 0 R /XYZ 85.0394 358.6854 null]
>> endobj
2796 0 obj <<
-/D [2785 0 R /XYZ 85.0394 118.0522 null]
+/D [2785 0 R /XYZ 85.0394 295.8072 null]
>> endobj
2797 0 obj <<
-/D [2785 0 R /XYZ 85.0394 83.1575 null]
+/D [2785 0 R /XYZ 85.0394 238.8156 null]
+>> endobj
+2798 0 obj <<
+/D [2785 0 R /XYZ 85.0394 166.904 null]
>> endobj
2784 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F22 973 0 R /F41 1233 0 R /F53 1328 0 R /F39 1173 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F39 1178 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2800 0 obj <<
-/Length 1123
+2801 0 obj <<
+/Length 1767
/Filter /FlateDecode
>>
stream
-xÚ¥WMoÛ8½ûWè(Ëo‰Ø““8EãdcX Ûƒl1¶°–äZr‹ì¯ß¡H)’-»‡E€"gÞ<Î4ñ0üOH$U^¨8˜o•°·†¹»q˜ ]ÔÕbôù–…žBJRé-Þ:¶"„£ˆx‹ä›…(Gc0ýÙ|zÍî'óûq@IȘ?y~žÎnþ‚o 0ŒýÇÉìuòÕŽ=õ'wÓùøûâËhºh9uyÌ ¡£oß±—
- w†
- ‘@«c¢¦ÅÉÐþ4(Ã*/õŠmârch}¾
-…81È2ÞVã@ÂÅÛu±O«MŸDøi¥÷q•yi§“"‹ÓÜÚëë4&!XÖ†o¦óë—‡çÅÃÓ¬]ôA{dâ„ñ¥´åXBÇw­sÃK+ʈ維³Ðt©_›©—q©Û-.¶M©+7þfµë‰¿‹÷q¦!úR—aæ/6iiQ«ÆÝRÛöÐ:¨
-Û®6zõÚhŽ4­hÈÏx›&iõnK¢æ!p˺û1‰|½*ê6)í`šÛ6¶M™®óšôÿ-r†ö÷7fòr÷ú8-N«Ï%œPÉPŠËYÙE5Årš•-ªÍµ#§!E!£¿qÚ€œv3% ;rºØh§U馷«%-~¦I£]½{¦mÀ.‰D§,ÐY½$†Zäoôê .èÕ  õŠ<òL0A‚rvÙu‹ðÝ• Ž=!ûÎ'¾~~È–zoú’/IWp&äk;gÕ‚ § uÔ
-8çþõaoó8¯¶ïG«Š¼*»]±¯êÝ6g?ß êŠ2g–¤_Q®vŽ|S°¦ßOò ú”ù¿6éjÓŸv¿æsùnÛš¡é4Á›>ùZú+8õƒ ÈÌüM)'æ_ßxkÅÆizp\¼¶¶õ°çî‡a‚tɘºªk ׇ ¼žOCØF¥ì­y! ;¨ iØ  ¡ÎMpäZ) ^vÝ€\÷³£ˆÑ¾ë¶xÛ4윕qç'Њ·N¯4ÓåÙ:.7ÅaëÊ}éfwzjg:9+*‡3…`Ê/‹ÚEµE™È>®Óž P±’¨ËnЀۮ Jš§í»muþ­¸pßõÏÁeG>§ÎÉ­Ïê}eýËe>Ú•“¯ó'» ä³÷þÕÃìÆâ•[–diž–$\S/úM»3dåh=Æùvýô­@d„¨”Ò=> 0
-"ÄÐÛƒÀCW‡ÖŽ¸:Òaòº¸z°x$ÀCÅ•kw1ÍßËJg.‡¯¡ààPLÙ¹g284oÛÁ-Ãÿý„þøÀCÄ¢ˆg ”-ô)‰øi]¹Çö)÷ÿ
+xÚµXÝsÚH ç¯àíÌMÙî‡?iBzm’ ä¦7m³€§xM±)å¿?iµ6¸×vnn2´ZI«•~Ò
+DŸÃŸè! ™ô£ÄgA?+z¼¿„½×=ád†ÐðTêÕ¬÷òJEý„%¡ û³Å‰­˜ñ8ýÙüƒ÷ŠIÅ`‚{“éÅðúÝèbx5yÿp7ŠÄWÒÝÝo.'ïCpYνw£›‡Ñ[âÝ {=ž>ÍÞôƳֱSçWèÕ—Þ‡O¼?‡;¼éq¦’8èïaÁ™HÙ/z~ Xà+ÕpÖ½iïÏÖàÉ®Uí †àp¥PvDCŠ¾, yŽ a¡’ʆc:Ó¥Fo§·xÐ’'1äý¡ YìûVz›šùGpÿÄ RL·{™{eÑî:[g€1•0ߧ£G³ëÛûž91µÞ]ÓiÓCU뢢ÅEiªr[ç»âxšÏ”6§ùW.ñcÉÌ«l¸*Òlø‘sùm·Amë\È‚ ¬øMZènßgAL6Ÿ²n}”2r²µó¡FÔg}p¼¥6z›ÖzNËÇ}–ë¹ÞùUo«îé6–“›ËGxz0å¦Ê«§8U‚Eq¨ú~3?
+Ã.\ ¸³
+IïŽ>
+ž¤9Àä9uS:mÙåm%<w]æEkиÞ[7ooÇ6§´Ùæ¦å°—;'Û´zØÏ ÈÓñÅÃýdö·voo¦“Ëñýëç™é¿ 4«i{yWÍCdcÿU¤èÒtLê¡£/ˆ bpÿ—ƒ/¸hCe8°ZÁø™cœhãiE.ÔöCNó¹*÷Í–3âæj 6T2u™•k×Be
endobj
-2799 0 obj <<
+2800 0 obj <<
/Type /Page
-/Contents 2800 0 R
-/Resources 2798 0 R
+/Contents 2801 0 R
+/Resources 2799 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2760 0 R
->> endobj
-2801 0 obj <<
-/D [2799 0 R /XYZ 56.6929 794.5015 null]
+/Parent 2812 0 R
>> endobj
2802 0 obj <<
-/D [2799 0 R /XYZ 56.6929 749.4437 null]
+/D [2800 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2803 0 obj <<
-/D [2799 0 R /XYZ 56.6929 692.3565 null]
+/D [2800 0 R /XYZ 56.6929 751.8011 null]
>> endobj
2804 0 obj <<
-/D [2799 0 R /XYZ 56.6929 620.3493 null]
+/D [2800 0 R /XYZ 56.6929 685.5141 null]
+>> endobj
+938 0 obj <<
+/D [2800 0 R /XYZ 56.6929 644.3012 null]
>> endobj
2805 0 obj <<
-/D [2799 0 R /XYZ 56.6929 434.768 null]
+/D [2800 0 R /XYZ 56.6929 606.8498 null]
>> endobj
2806 0 obj <<
-/D [2799 0 R /XYZ 56.6929 374.716 null]
+/D [2800 0 R /XYZ 56.6929 573.7334 null]
>> endobj
-2798 0 obj <<
-/Font << /F37 1038 0 R /F21 950 0 R /F41 1233 0 R /F53 1328 0 R /F22 973 0 R /F39 1173 0 R >>
+2807 0 obj <<
+/D [2800 0 R /XYZ 56.6929 504.5246 null]
+>> endobj
+2808 0 obj <<
+/D [2800 0 R /XYZ 56.6929 441.2024 null]
+>> endobj
+2809 0 obj <<
+/D [2800 0 R /XYZ 56.6929 240.8182 null]
+>> endobj
+2810 0 obj <<
+/D [2800 0 R /XYZ 56.6929 150.6208 null]
+>> endobj
+2811 0 obj <<
+/D [2800 0 R /XYZ 56.6929 84.3338 null]
+>> endobj
+2799 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F39 1178 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2815 0 obj <<
+/Length 1181
+/Filter /FlateDecode
+>>
+stream
+xÚ¥W[o£8~ϯà‘Hƒ×W°µOi›i;š¦Ý&•Všh@ `FÝ_¿ÇØPHHºÒªRmìÏçòùœãâ`ø#Ž3Å@q$0Î&›`g {·b1^ òú¨«Õä·Ï,pR>õÕkO–DXJ⬢oîìéi¾¸¹ÿsêQÝ+4õÆîÃlñ2ûjÖž¦Šº³Ûù>IÀ€(×8»‹åüšÝÍ–wÓï«/“ùª³©o7ÁLôcòí;v"0ÿË#¦¤p~ÁFD)êd.œ±ve7YNþèöv›£c<&‘4!‚‡pĸOL…¨ hÄvkê îçe¼aIX&Ú-í1Ž|á«·³X¯ƒPÚcPT"?P¬A½‹hHü‹ÒÀ̶qÂ*6_ fÚê3Ƥ„ V0ˆì7‚—oy±/Óò˜qhcà»`©ÔA¬¥‚Ã|4Š0¢ÂëIh¸ãd$ˆZÐÐ×Æ|Ázx`8„Y†»jêù@q¸Û‡´J2ø$ÂM+MJZä¥ÙŽŠ,Ló1:¼V―›ùòúùþiuÿ¸è ï†#Å ³wp\‚tX{ÛË«(#n˜›±½5FÝd
+Ë6nsÓ°·Ë82ÓÂÂC3”qe×_ÍÙN q÷áÂ
+H(!³fî*IKƒÚ´Z×±ëNAU˜q“Ä›¿íRҧ㵎xwàÏÏp—Fiõf"®±c„‡)‘n¼)š1*Íbš›14C™nóƘÿSä1úQ;{¾}y˜/VË“Ba£Ž+‚¤äþåÐì£Ú¼>ÍÕ…Ü‘R‚ Âú@k‡QÛðaé]%6ÅMÌëÙ¾aµø™F-}Í걿WŒ.AÐYÊ| [ùÁ”õP(kQÚô÷Ü<æ*$,/«îP#º¼AU•‚’¡ò¸¯„›×Ù:>è9‡ø‹Ò T‡|kö [°aÙ‚¥[çܽ®&”ój÷vtªÈÛ¥²Þï‹CÕÜƸ8óù
+ùÐ$•®"Ø'ä²éðtuÎêqy7óÈ'˜SæþJÒM2ܶi½úsýfÆÆB=i×sò;Œ,p7PãµuHïÀ›Â‰þ7ÞI1~êTŒ×zgæPê¸}׌¦ÐNÚ`Lm⇠‡Û:­çÃKx°%ÿ {¨ aØ¢´A½7á$5,ø@w‡Q>ŒC†H ´wùÛEb¯b†TQ°,ÜYÊÒ,.Ϧr™õÎfüÚîîãžÅÑY^Y #X\æµ:Ïk‡Òž½¿­Nuw€%¿¬·C(p
+™"¥
+†š;N­ †_ÝO ªáºÇ %è¤ `Pc4–ÃÞh>7'g_—æSçû€«ûÅÁ+{,ÊÒ<-+»6žã×ØV’5ë!Ìk¸øÓÞøQß÷móðiÄÐ. ³€çÏ×F¢ BŒõ"ZRA,zœ
+m-WG<Ì^VwÏgšÔ÷9¤XÛçiùVVqfÃøÒJcZgçZ{P¨ûñ‘(Á…ÿ»íÿmÃĤ¤ãáÆ04÷ žjk”vŽÈàØôî©íÿ+˜*Lendstream
+endobj
+2814 0 obj <<
+/Type /Page
+/Contents 2815 0 R
+/Resources 2813 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 2812 0 R
+>> endobj
+2816 0 obj <<
+/D [2814 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+942 0 obj <<
+/D [2814 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
+2817 0 obj <<
+/D [2814 0 R /XYZ 85.0394 748.2826 null]
+>> endobj
+2818 0 obj <<
+/D [2814 0 R /XYZ 85.0394 713.6257 null]
+>> endobj
+2819 0 obj <<
+/D [2814 0 R /XYZ 85.0394 650.6518 null]
+>> endobj
+2820 0 obj <<
+/D [2814 0 R /XYZ 85.0394 593.5646 null]
+>> endobj
+2821 0 obj <<
+/D [2814 0 R /XYZ 85.0394 521.5574 null]
+>> endobj
+2822 0 obj <<
+/D [2814 0 R /XYZ 85.0394 335.9761 null]
+>> endobj
+2823 0 obj <<
+/D [2814 0 R /XYZ 85.0394 275.9241 null]
+>> endobj
+2813 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2099 0 obj
-[942 0 R /Fit]
+2103 0 obj
+[946 0 R /Fit]
endobj
-1935 0 obj
-[942 0 R /Fit]
+1939 0 obj
+[946 0 R /Fit]
endobj
-1604 0 obj
-[942 0 R /Fit]
+1598 0 obj
+[946 0 R /Fit]
endobj
-2807 0 obj <<
+2824 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
-2126 0 obj <<
+2130 0 obj <<
/Length1 1628
/Length2 8040
/Length3 532
@@ -13621,7 +13634,7 @@ endobj
stream
xÚíte\Ôí¶6Ò ˆtÃÐÝÝÝÝ¡Ä0 00Ì ÝÝÝÝ’‚R"‚´t ÒÈ‹>ïÞûüž³?³?½¿w¾Ìÿ^×Z׺î7¶‡Œ5Ü
¬‡¹rðpr‹ t´P(ÐWç…C­fL9g0ЇÉ]Á¢
-Äü{fXE
+Äü{fXE
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
@@ -13644,35 +13657,35 @@ $OíœàÅ€DÈ
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>è.<Sâ¢éX3p7«Á~ª"럽Ÿ“lË´ÍÔDQÿfŒ°Ì
-*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}
+*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}
endobj
-2127 0 obj <<
+2131 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 67
/LastChar 85
-/Widths 2808 0 R
-/BaseFont /DOPODV+URWPalladioL-Bold-Slant_167
-/FontDescriptor 2125 0 R
+/Widths 2825 0 R
+/BaseFont /ZKJAMS+URWPalladioL-Bold-Slant_167
+/FontDescriptor 2129 0 R
>> endobj
-2125 0 obj <<
+2129 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /DOPODV+URWPalladioL-Bold-Slant_167
+/FontName /ZKJAMS+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 2126 0 R
+/FontFile 2130 0 R
>> endobj
-2808 0 obj
+2825 0 obj
[722 833 611 0 0 833 389 0 0 0 0 0 833 0 0 722 611 667 778 ]
endobj
-2112 0 obj <<
+2116 0 obj <<
/Length1 1630
/Length2 6133
/Length3 532
@@ -13684,184 +13697,303 @@ xÚíVuTÔí¶VA!¤†n†n”.IéΆ˜f(‘N)én$†FJ Á!¤[:%•$.úÝï|g}÷üuÏùë®;kͬ߻Ÿ½Ÿýìø½
Òy¦§aáèha …«pJí•Ž H
±@Bá0Y $D¤±ÉB¬@¼¼ 
µµC‚XnxXÙÙ9þ²ürYzý‰ÜD" ¶0Ó̓;Äîì!o(þ×ZiÙ@! u %5‹‚šHƒ¸Þ¡áf鵩@­ 0„dw9þq
-³rt³þ%àÆnÿ-ÈÙ~ãátƒÝiÀH„•+Ô ºÉª!+ÿ‡N¤òWnôÁmn<­áVn¿JúÝÐÜ H ( BB<‘¿rYB@ÖP„³£…×Mî2gWèon(Ìö/ Wˆ­…«µ#¸¡¹áþÕ¿êýSõÎÎŽ^¿£á¿½þ¡ŠD@m¸
-ïeë[ă»4fÖ)Æ»'c£»¶*2‡Ìu•ÙÖ£™øM×E;
-at
-½’•sJÜkŒ "êC 3ó®cUÉÙ4eHÎH~0+¾÷ì
-£Šà> ä>-e™÷CL\¸³Äù¯“7ôwÂI:HÁ®óÚÊüÄRö*gTréïI(J‹ÕÏÀÒˆª1!øRb’>¹`ÕÕâ13W@‰MÔïÒ335,Gƒ÷î Ã'V? 9ZŽfjW]èUªŠÛ¬[ßÑY@ÞCLAíŸjÙÙ*+òæÅõÁÉÏ5~šj}‰Ûy]ç¼cñvË‹ Bxi9]'±|¤“²w/±2X®‹‚8w^+ÐKºDœ~$ìl‚Ý‚I®J5`žV¯ipw/¢6’
-}ˆçã õF´£ögºts£ng]á„Ö|Õ`ˆksÕ8;¾Ï»´²?…&@È™!*¦54[«*/„“¶sÈo?87Æ…ÑS)ê¿{=ܼP‚+»Ñho†lMe$—ü¬NRž3(Þc½4ûô.¨’õ©ë~FZBô¾Y5““_ªßþÎhd%\N+œ2‹ÐèÛ—ˇ)™¼¢{ás9͆·ß¡’ ½¨™”qá 'N_Φíc%}#0~?3¸¦fSwß2œ]aµo1ŸJ(Ïá®óc¨ƒ~ P ʽ]HϨ}æKU«Ù0¼Q[»SÊvåg à¶"hÉþÄêYá­ÿ/¤g¹iŠWœeM¬”…¨AˇêžÒGªrÌ,ÒÔ‡Øn¹äV¥õ†¡¯ø]mÔÅbüÒ&‹’j´¥‚LsNù£97œ{xØ4()Ûó’:ÍÕJ QɉÓ4âQxŸ6êw´êú|©:T™$·Ü½Ê·ƒ
-Õý‘–”øц1öã9ã^Ìæ‰ÍDqf
-pR°‚šL\(<uØÔûÐéV‘‡ᣩ ež¨ÓE§vìA7nEŸbü­¤6ÌÑ  ä¡ÁDÈ;Cŵ½AŽcήšÏêYcg)äµU4ø&š˜,9D
-V1-S¸`_3ÄÝËú%6BëbØ r¨Ãt©a*Óغ0ɼ•uï´ñï¨Î)y©@[gbL¦Ç)Ä?ÊDâÐ÷*éԒꟲGê«àI÷_â‚R§—«·>noߢiŒ!L½<©35¢$2MIÝw™ôäs¢¨bâ< ûVÇ–DT£ì¶"Y \FÉ…Cóuø9TcÝI¥zÒ³€‚*lõ™s$a`F éúÀ µ (X×Ñ | |
-5ÌÄ÷ o榯‰‹ûȯg¥Ï.š%~2Œþ  Í“ 60×Ò3îeÐiÁeø¬O3KG·l¯„šÊé:ÐgyÐóud6pD‰+v°Ìb¦N f‹Mh¯Ëaˆ>.`È.kŠI¡iøòØ"ÌSˆå0ÙÒ—ûbûj¹D䧠Éj§×òáøg”ŸV0½Ð
-½c–$îSÓ5¬´0ÏÚEdÊŒ0ƒh(‘©ðñôä‚Iµ±¾»Ú» :—2´Ä!<|^Þ‚X2›/¾5obÿd¬ë¥KºÃwƒø‰Õ˜ÞMG0C&ÊØjãž;áÔ+=ÃÜãÍEXr#à]Cg "}Yá¾.¶aýìY³ÆIˆ/^Y»}$oί8 lU†ø„=O'aFX²Åï9hRÔ¤[ÞÞ[ù~ˆ[ró—M~“j…<·ÑVG½‹Xî//¨šá‹ÉVà²hÑi·¢·æÉå6I?,·%F\œÖô™–@êõ~ø†Yý E>eUλGwü^‚}« 2ë$¶Íð‚
-ïcñ•ñZ×™b”[DÌÛ³>Â&Õ—ÂaY Kê{@”¹¸’QeUSæX6»ð¯CvòàªÇ£hœ½a¢ª§é›ßôóƒòêªÎ1‡(‡(-Ô±ßV”ÓyCC..&
-®Æã
-7/ƒ[\ÉcçtFqóÍÍhF4®¾¡õz»Bö¯ ÐØóÜE™Œ® #ôÃëÅš[È
-ŽM®Aµì)ÅŽ¡ArjgWLØ;'·p
-²R
-Øêa³!ß™ŠxW_FÅyë"3Lêû¸Ž>ê‚*8VŠí_ŠÀÊëó<"•{•îÛá[w õ(FïVqQß¼óq–Qõ vÕ’Tw͇\÷Yd›fÜÞ>ÄO¯Þû9÷aZjümµ=!À›œÝ>ÜüïQ3Ù¹åÔ«^ ü9â@"ñF/h•>þl`|ò\ÕIh=n‚ÜL'¿õkµf9VÒjt‹ƒS~÷Ò¤&ÀŒTú'§$à3ã!Ê5vÿÃJ
-ƃ>³ÖÕ;À'uãá`:?Ó+Ôx`ïq–΢vIÀr=
-ȘóiÀù ÿK1â Ýc‡É…ã9áU¦
-ÐíC¡Ówï»ëÉ“º¿Zèp½÷äOô>/¨lÝ4nlŽ°U-oMôÙ“ˆ o:œ©Í|y„7MT{õ ¯=i3RÇVHA9jQ¾rÁ3ãaÂ3œ´X_¿ÆdhÚ—E/Oö\ìKɬÝOõš_·— &†÷ê$ÀuæbsAƒytN.`.šâb™Ê¥܆€ð6é瘯l¾}êÈg|ëwRŠžhXŠs×L84ØGê} 1Y³mgzÑìÅÓŒ$»9ñNh‹Í”ŸâÕ÷ºXsm{Ôg"'H±¨ª®RU\O¹<Š>ÊlSñ"
- ‰ôt.CB±|…—(z?п)|Æö…›‡8csa4«ªy=~U»+jð*Ì8Ó“«&ÐÐåÇw?´,IpöÛ7oå¡#½Ëõqw¾}eüJü¢šïUølœ]Rçm‘LغÂ=Îk¡·ÐóKJ;œuY8:B.²åžðŒC\„0&õê®X¨ÕåsÊ;2•©`‡¬#¿Ê"ÿÿátökä
-¹Ø+`‹ï—Rp 36‚FŊݹÎ%:b‰»•¯·0Î&SwjÒ V‹­C%#N^©Û™KuÓÏy,ÅEŸq&¨ãò8¿ªÊ{D LGÌ8½UTmÚ5leUÍ?6¹6ÞÒ6!-+ÁöŽ·¶¯T(wu9eQ–éáö:Jmš»4 û_}ö~N†ŒÁOkôÚ‹Ö»µ§½Mìð}íîɲư™qÀ“ë`Á+–»5ãéö×­d[%˦×÷[M–ŠÁÃ#ߦT\Ú*wqªÝ¯¢Øg”‰˜÷Õžà$²dß]Í|®yó9¾è?)ì#IiwñùŠ€%z :õÔÝ3°ˆKzW†Fc¾òm={‚ú³8uL‚ÂôwÌY«|í»U&›±”n{ÀeóbL=Xûy*áwSYø"FžN†j×'›<ºÚyÍ7Ì4`u¹§h‚Žï›Ô
-M0 V”µ@¦ØRšÁSÇ8${^™æÒu”œqÿ›ÀÿüŸ °r„X¸"áN®€ÿkdy½endstream
+³rt³þ%àÆnÿ-ÈÙ~ãátƒÝiÀH„•+Ô ºÉª!+ÿ‡N¤òWnôÁmn<­áVn¿JúÝÐÜ H ( BB<‘¿rYB@ÖP„³£…×Mî2gWèon(Ìö/ Wˆ­…«µ#¸¡¹áþÕ¿êýSõÎÎŽ^¿£á¿½þ¡ŠD@m¸
+ÿóü{é!Oˆ`zn%lŸš‘†¬"Ïéé—5úÐÁƒÑâ\\£ý:ß¿Þî—¾(Rf~QÂU;(zÕä5¾í|¹ªÌ¶ÖÛAæÈÜž ÙË£ò¡g}ŸO4ÏôNˆ}-lZŒŸöU/Ê{LeÓP[wm©_ó™iÑÅ=àà;>WìýSVz÷|R†g_«”·¯´ÖÞ"®*ØþÊ”°yzÂÜÕ÷±§»ýðîûUJöìW8Œbî˜øL‘þ.Ù”O uJåÊߪݎË;BbubÁï<_^Ë¿Å`i¢KÙÅy¨yc@–‰Ÿ'\;ø$·®Q;S-”âs/, 9D¦Ô#,9ƦïKv²±SÐúê¿»èçö‰%…÷²õ-âÁ]3ëãÝ“±Ñ][™CæºÊlëŠÑLü‹¦ëÀ¢€5‘ؽrô›ìç3üÜ°˜üDÑSjÛðôä)Wï8Ž*öÜŸèž“3@'}~+ÏÝ6‘žˆ•Ø\Žpµ<züuÚ>AbåPóبLbZ÷a3ÒYÍEœVÁ= ¾‹­{·^®2<¿}5aq€©ÿ_5¹Ûðòµ÷>›À¥´ê$C}ÀXŠ¹­œÕ÷ji—û­€G‡/§Œdû-!j¹;Ë6#ÔÜŠ.Oé­×ôÎc´¼$z¾I(ñØÇ/ Wj®½"¹ßKÒÿ¾ð{Lš¿ÞH¥hԻí:iÓFRF<g] Û39}—ÞÞF™8|à0­‰å
+b݇a›yKÜ£%t×TcaÖËF˨?B:äÐ 3ÚZP ‚ÌÆŠ} fñφôˆƒTU‡J鉽žj:»«Ï‹ºôN)/ÂÕ äE½¬^gº‹ ^/«k¯&6Ö7%³"”-ήQËòÍ“ ñÆ‘r¾“'#
+ñÀèHvo»Vüy½¼Òç³³”ÎjÁÕŸ,_Âh^§–p³/â#Ó„HÊÀç„»ûÄŒ[‡¤Ê»B8Ò¬’%PË ™#¹&}Ô7uo(à–îu•úµÒ95ÀŒ¾?ËêcÕ8—ÄñâθÑ,™ê:f”†.‡Ðà¡ÝõÁ41hÀ›3):«;Ícƒ·ú‘¶Þ,èðY½:Nç5u…QEð ‰rŸ–²ÌûŠ!&.ÜYâü×É ú;á$¤`×yme~b©@{•3*¹
+·³®pBk¾j0ĵ¹Žjœßç]ZÙŸB dŠÌÓš­U•
+ÂIÛ9ä‚·œãƒÂè©õß½n^(Á•Ýh´7C¶¦2„K~V')Ïï±^š}zTÉúÔu?£F-!z_‚¬šÉÉ/U‚og4²Š’.§N™EhôáÍÎËåÔŒL^ѽð¹œfCÛïPI†^ÔLʸðˆ§/çÓö±’¾¿Ÿ\S ³©»ï™ή0‰Ú·˜O%”çp×ù1ÔA?P(åÞ.¤gÔ>
+ó¥ªÕl^Œ¨­Ý)e»ò3Pp[´dbõ¬ðVŠÿÒ³Ü4Å+β&VÊBÔ eŒCuOé‚¿# U9fiêCl·\r«ÒzÃÐWü®6êb1~i“EÉ5ÚÒ A¦¹§üÑœNƒÇ=< l””íyIæj%‡¨äÄiñ(<ÈO› õ;Zõ}¾TªL’[î^åÛA€Z…êþHKJühØûñœq/fóÄf¢8³?€æ¢%K]TkcÑøKEÄL1‡•·FÆîšÃºåØ KCÂCkÇxG®ï[v“
+‰ÌÙd%JWܽóµÈT¿È$ÿ$H~@²&jM¤Iòüé.‡¿÷ywúÜB½ÐÛŠFög„”p¾áÚÀ7sº‰&RDî(ŠpÅ3¯ƒgƒL«Œ˜–)\°¯b„îeý¡u1ì9ÔaºÔ0•i l]˜dÞÊNºwÚøw T甼T ­31&Óãâå"q è{•tjIõOÙ#u‰Uð¤û/qA©SˆËÕ[7Š·oÑ4Ʀ^žÔ™Q™¦¤îŠ»Lzò9QT1q†}«caK"ªQv[‘,P.£d¡ù:üœFª±î¤R=éY@A
+‡¶úL9’00#†ô}à…Ú¬ëè¾>€à)…fbˆû†7sÓ¿×ÄÅ}ä׊³ÒgÍ¿?FІæIP›˜ké÷2è´à2|Ö§™¥£[¶WBMåtè³<èù:28¢Ä;Xf1S§³EŠ&´×å0Ä0d—5ŤÐ4|ylæ©@Är˜léË@È}±}µ\"òSÐd5ŒÓkùp ü3ʇÏÎ
++˜^h€&9I‰òÝ3¥–\—qaâ)&J™NBb0šNí`Ò.'39ë4^€îg(}*v–õ
+d ¯òˆ¦:ôw
+ýL¡T÷Æ{ši®G3È¥ã"y+â3’§[cͽ<å†Q@òæì+}·÷¼Íñ0þ’Dâ%ßéfL¹7®‡SìD nŸe‹ïãF cé¯ÿäφ=jýúÑ…fìÁµAÌ^He±œÆÌ€PP‹@Sò˜ÈÈ5D7Âþ˃¯íãìoÎ64ÒŽY›]l_o%а¤ÒÉSŽšŒæ©óAüŸhöUù»ÐyèvíS¬ÐD=ËOÃxýa“²I;ÊÃÖ‰do“LÈÁd<±~ŒÞg®¨ÙÏØÃîpðzÕ±5õ*¨2Ò1·2BÏ`«ùñG8nå^{bh…Þƒ1K÷©éVZ˜gí"2eF˜ˆA4”ÈTøxzrA¤ÚØ?ß]íÝÇKÚ
+ö”bÇЃ 9µ³+&ì“[8Y)
+ ‘x£´J60>y®ê$´7An¦“_ƒúµZ³+i5ºÅ‡Á) ¿{iR`FªFý“Sð™ñå»ÿa%€ðeå÷uì†Ò*ড়ÅÊÎ9 |ÀÑå|,´­Hƒèn_ÙË%i·˜³¼Ã'µ+c% ü麖‘Ý@;¶zu@ Ëf#[2aPàØÄë üSÑò“ëùIý1›„túÉb¯Mˆ·gÃÞç+kÚ:ÙîSRc;¦ EKZªâ¤ØjU¡ª†z­iRûRž2ã ­¾~æ9 ¶hKI<üORdÑ*ãAŸYëêà“ºñp0Ÿéj<°÷8KgQ»$`¹dÌù4à|ÐÈ¥ñ„î±ÃäÂñœð*S
+(Z¢`‘®~VpùEaAzy÷UwJ­s÷Œ?´½‹š|: }ÒH»a‚º¾g)o}³=‹rrµM3v-ï€Ä@ Ùì'pÅXßÒ–×
+ÕB¾ª\h~8©$‰¼¼·ý˜7!g;É¥ƒ\®cf>}7›ùâžÐÙZسãÁÖ–Ü^-Už&(
+ÖËÓ»ÜIFÙØS­˜õOV_ºhýÐn-®
+X{$¢½‰¼û£@–rlZ™âɞˊ1o(­¶¨mèö¡Ðé»÷ÝõäIŒ]Œ_-ô‹ ¸Þû ò'zŸT¶n76Gت–·& úìIĆ‹7ÎÔ‰‰f¾<B‡›&ª½úŒ×ž´)„Æc+¤ œ?µÆ(_¹à™ñ0áNZ¬/ˆ_c24íŒË¢—'{.ö¥dÖî§Çz̓¯ÛKÃ{u`‡:s±¹ Á<º'—0— HMq±LåRnC@x›ôs̈W6ß>uä3¾õˆ;)EO4,Źk&l‰#õŽ¾„˜¬Ù¶³ ½höâiF] ‹œx'´ÅfÊb\ñê{Ý?¬¹¶=ê3¤XTÕW©*®§‰\Ee¶©x‘@†Dz:ƒ!¡X¾ÂK ”G½èß>c{BŒÍCŒ±¹0šUÕ¼ƒ¿ªÝ•5xfœéÉU“Nhèòã»Z–$8û훎·òБÞåú¸;ß¾2~%~QÍ÷*|6οÀ.©ó¶H&l]ážçµÐ[èù%¥κƬ!ÙrOxÆ!.B˜“zuW,Ôêr‹9å™ÊT°CHÖ‘_e‘‰ÿð:û5r€û3.ñ4v—W”ò]ª[)ïó–äÙÀ—݈H¾ÌûùSŽ¸+¹ºfS4çHõ¿ÞzyàÂ*/ç%Šâ׻͠Ï8ôæãmº'7…\ì°Å÷K)8ÐÁ@£bÅî\ç±ÄÝÊ‚×[g“©»5é«ÅÖ¡’'¯ÔíÌ¥ºégˆ<‚â¢Ï8TŠqùœ_U å=¢¦#fœÞ*ª6í¶²*æ›\oi›–•`ûlj[ÛW*ˆ»ºœ2Ž(ËtŒp{ˆ¥6Í]š†}„¯>{?'CÆà§5zíEëÝÚÓÞ&vø¾öŠ ÷dYcØL‰8àÇÉu°à•GËÝšÎñtûëV²­ˆ’eÓëû­&KÅàჃ‘oS*.m•»8ÕîŒWQì3ÊDÌûj OpHY²ï®f>×¼ù‰_ôŸö‘Ƥ‰´»ø|EÀ’=PzêîXDƒ%½+C£ˆ1_ù¶‡=AýYœ:&Aaú;æ¬U¾öÝ*“ÍXJ·=à²ùˆ1¦¬ý<ð»©,|# O'Cƒµë“M]í¼æf°ºÜS4‡AÇ÷Mj€“Ò·ÐökxõÊáž™ËG‡ÞÕéú,óÔ92‚¬ ߸gp0o9)ÁM£«&ChVF=Vv¯ñõ­Åž¡üÜÈT·Žïvä(Ê´ãé¿7jzä­ ¾¹Â6]E³ÚŸÉÞeIGOIùç…&˜+ÊZ Sl©
+Í`ƒ©c½G¯Lsé:JθÿÍàÿ þOX9B,\‘p' WÀñyœendstream
endobj
-2113 0 obj <<
+2117 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 66
/LastChar 78
-/Widths 2809 0 R
-/BaseFont /HTMZKV+URWPalladioL-BoldItal
-/FontDescriptor 2111 0 R
+/Widths 2826 0 R
+/BaseFont /FLXFFM+URWPalladioL-BoldItal
+/FontDescriptor 2115 0 R
>> endobj
-2111 0 obj <<
+2115 0 obj <<
/Ascent 728
/CapHeight 669
/Descent -256
-/FontName /HTMZKV+URWPalladioL-BoldItal
+/FontName /FLXFFM+URWPalladioL-BoldItal
/ItalicAngle -9.9
/StemV 114
/XHeight 469
/FontBBox [-170 -300 1073 935]
/Flags 4
/CharSet (/B/D/I/N)
-/FontFile 2112 0 R
+/FontFile 2116 0 R
>> endobj
-2809 0 obj
+2826 0 obj
[667 0 778 0 0 0 0 389 0 0 0 0 778 ]
endobj
+1458 0 obj <<
+/Length1 771
+/Length2 1151
+/Length3 532
+/Length 1712
+/Filter /FlateDecode
+>>
+stream
+xÚíRiTSבª¡¬2©¤j=,Œy5„„H b,š0É 1÷†Ü’ÜK/7”AÄJª²,b£KFQQ*¬*u@©%Váp"­"<`ù,Rµ*N½`]]¥?Û_o½sþœýíïìýïlšG„œ!‚° °C ‡É‚`™LÊaòÌfSh´`V††( X8X©×î2Àæ yË„<>…‚±T#Ž$kàLŸ ñHãˆJ‰™’ÐÀ:²†J©rL…À„‘ DZ-X;q# ¬…Ó`<†˜@ˆŠ
+gÊBkL‰`¥\8s¾Ïµ¨23°yßßÃÐÔ.ûef']Ðïa~·Kš—]-™w´ÜEU=OëZEµ…ëZÖ5ëÐ ùukò\Rê:¸þEœÔ†=´µIc/i¿.Ú1ýIÂóç=Ï^›¨ÍT™6îǧE{ûîL÷ò¢·±©öW?³xÄ*5_Ü%Da=+L­ºöe5Ê@Œàz®Û#ŸyZ¹”{Â1ÝÞ²ÉÖyÝhÙ/6Øb/¢öU<üùb³i?7QדtFqÓûRMýùÊךüé –F‰¤rQãL¬»?h®G€ë|¿ÙN¢øÐì´^è2ÞלÍrá-8&ô9ÐõÂoð‡âHKÃðaŸ9öƒ›ç¥ìdÞW,ÍôýÅî\xM’±Ã·æ„åû9KöBŠ,Æš½)Ǫë·éŒ³öÔ=äØ•e}"jüN]Š‚Z¯ðO—Ò[ië/×<"œ
+#žW$1ñØÀ3Í-(ŽËLçžùh=Ï/>ùUWÀᵫ2wm|ðèæòÛ×S„}ÝýjªøÓâœ×[FºCõÎâƶ8+z÷¨ùö÷½ˆ óÙƒÎzOÿ˜¯4SkÏÿgtÅ×Y­Èdkc½ lûÆiPS…®Æ¹ \
+R&{YÝ-2×o¥OÜQKSªi›„ zy¢²8Š•3н⤱j´BˆÊKOi—ÚL»=}ôq±ûÀS|Ó«aüú²Pà­òˆu#åãþw:Çõ¹®—‡ Ú:½L¦–½Ž“ïIš«Î0:æd4v–Ìs*33¼¶œþ(ósî§L ›læà«¥Ð7¶š¶m×\¯„E9ê8›£î³#1íyvïf¬¤R?AM‹kG ûjÃJz츘ù~¾åŽW”{‰¸ø•mlTí`›miü!®Ð¥AÕPgÚ}¡¢ÈñÃ(m0^¢ÈSµÞJܼrHV[|—ÃvÎAMVQçìü¦ówlúÑíÑ’tyù—ëÎñóÒ£ÎJx½³¾õ\X¨! Ä샅âªÉwÅÝaYÏ¿{zÇ>ddÑãè3æ‚üçšžÓ¾eEÒ¡Ë¢›-»i5Úƪ’üݲÙÕ.ëß u:ÔvYxÕÉW[Qï“Ö1êâÅ«¸“Kݾ6&rBºLC›We@èáf,ÄquOƒKk 37WTÔy}ç°&±¾ýZiîOh¤¼ž:ÞZ¹o'2—Ð:_(°›qïƒ+±Ÿ~“TÅï=/nN¸ÚýùÈšüÖ=¡¡$VtñæX7<Ɉ8”WI­écÿÍEùÿ‰*-¬Ä L§ÄS(¿ùÛŒ£endstream
+endobj
+1459 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 2827 0 R
+/FirstChar 60
+/LastChar 62
+/Widths 2828 0 R
+/BaseFont /FFXBTY+CMMI10
+/FontDescriptor 1457 0 R
+>> endobj
1457 0 obj <<
+/Ascent 694
+/CapHeight 683
+/Descent -194
+/FontName /FFXBTY+CMMI10
+/ItalicAngle -14.04
+/StemV 72
+/XHeight 431
+/FontBBox [-32 -250 1048 750]
+/Flags 4
+/CharSet (/less/greater)
+/FontFile 1458 0 R
+>> endobj
+2828 0 obj
+[778 0 778 ]
+endobj
+2827 0 obj <<
+/Type /Encoding
+/Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef]
+>> endobj
+1447 0 obj <<
/Length1 1199
/Length2 2269
/Length3 544
-/Length 3058
+/Length 3057
/Filter /FlateDecode
>>
stream
-xÚíWi<”k2e$"ËA<daÌØ)ûØ:a4v*cæ™1Œf±oÅÉV–É’#[‘6[¢Å„ÈJE©h±d‰N½ê=½}{¿½¿÷y><÷}ý¯ë]×ÿ¾î‚,§fJ¤{ƒ–tK D
- ‚0tÛ¤±pì€
-™(B‹ JXÍQX4N\õÅ’ðD
-kµm
-$@…ªÿJC?=˜þKˆD¡×Ú#²Ôh”@6hƒù;
-…P«ï÷Õ~èp‰t5ô‡»ÞÔ÷îµt·³VùUÿß=ÍÌè­ZWPÓÐÓÐh¨O}mÍŸY¿ëñM‹5+Où»VÔJ‰èm Òò[[A ƒ Í*€XmeàŸüvt…
-ïO¡†þ"îgGðë…ø›îgø+»)L5´ÆW#…iI ‰X
-‹àóuv¾ÉM\»  –Τ¬^q(DýæèC!øÑ@&:”5¤JjA#ЉÀ± Å3ˆß «0Í`@:­ûmO¢@%‚`H€ Ð »ûÖnXºh*¬öâ¾f«ŽÓ¶Œ<™Ê5Žän±÷;/©U0¯—™‡Á¶ûUy¬·]Ï•&i‘¬ì§oÖˆÜ($/Äm(ñyi·ÁæéMˆîT«Dú1ñìü×æ¡w¬ßË–/¸)™w
-áè"ÑÛ—Ü_¾
-´‡IJ—UòÚ¿PÖ]Ž}goMr0€õqš0(ßØ#Ù|{n\yðQi;ß•7‹Â•B^ý·Ìøµ£û¬à¬šioI·óºM74–}ÊêIË9EÚ{4÷Œ¨v]rA$¿m2S9µí"ûåñ8×Cår-Å‘eÅïšKt^VV@¿P”~¸Ò|¤™_h¨±™G:P½/Ö¹ŠÛ´&,™Eb´w›.›e#5pÙÎyž?-ý!;(mâ+›×aÙ–Ú&ϼæeuG\y'qÔø–jnϳ)×í¶›æyo¸á¶MÊèº,ØL”‘ º~§B…(¹%¾¤}âË’#ÞÊ–¬“1|é,‘Ÿ(×^S{ª¹-'lV¼ñðg>áÄ)7T%¹'ŸÓBœsKüÛ‡»áŸ%Ó¸\v¾Ù¬s<35ÚHtd³̪îfñ$²j«ºŸfež[–z#¡©?ŸPp«E˧k&þ"bªÐYohzß–Óêúí<äFFsPC¯‡×Û±sFgz0èX*–;%eŸð¹8c³ÿÖ®ôÊXúËCóR__Êmñ
-MS™™<ìyç ‡9ÜutÈ9(¯®¡C&s©z«˜ÆîÏ^®Z®¯¯f›<G‰ßêze9s7÷ÞщZËŠÎí<Å%±ÇX+zTóÚ„¿“M!r†?á‰JRšÕáêP˜*Jy˜/~}“ŽÅ¢{=_áÀ½#–g?‚â¯ÀJ\§½Yª—$쩇Ÿ±Rk‰êý}¤£Ž#¶£ÛB¥4æ$D2ÔŒDƒU·t­tûn,“˜\9ÆT¾éV-»Ì)ûëÙ‘S¦Ú=,ÉG µ$Ѩ÷›í-Øù¥dƒŒç®Jî¢Èp—/ýèE„Î;f´zÙf©1—•Å´Úš­µÂÁð×/ ,ëhBÎ%y I üù§¬í°•„í¨{5Ø@7ѺsÅzNyrx$Ææ®÷bo ó³D_ôF¤/ }ÐŒÊ+K|÷!.<Ö}˺-.W·ÊÁ)ùzï&ãT}+ï
-Ë90RŠå gýö|ãÍ\ «4p’>x.É’êjwOË<
-6qVI¢Ï±¬å;Ä6\Õ.B_·‹y¦¯å°üÂt®h%…8¿2~ÀS°ÐÌ »71\"®*Ÿ&¬¼¯íƒñÞ‰ytËgWúQÒDª×w¿Pè³ÊëE鞸Ê$W-—鸛'¤¢ï”
-ŠŸÚÍ‘ymÕ"ÈXŸ £u´]ê‹‹ôÄcÔÂÆn·Úôðï½Þâ;ªÖl›†’/0åw½Ì« JñF9
-›½´ô­š‡ÖÕ/,¨Ï×
-Mw=h–%µe‹ã¼ ñÁö|nVþ:A.Ïá­Ï¥¼)îÝnzíFêÏŒ›ü%¾ì|PÄôz7''«f5/F9$Ö¯îl«ˆ·p~|AèÁljŽüÒi9þxi¢Ó·Ûme´v½l÷ÓÒqåˆsDT`CQidÏ!'K¨óìšOd÷2ÒR¶“QO±ÊL’ "k†T”}>p‘äõE¬´Î[ŸªœÒ¢DÆ®=>»­¿øò‘/Ùï¯Ò¤ºèçExBΕïmcD¾>ÒËïуÏÆ¿Œ
-.»§¥3) /=™$dlCäÞ™ÇlãÝl)”4 N%8H$ý>ý6ßœ[ Y¬+®×ªáú+œõ–¥MÝ}7vøˆžµäŸ,wÈÇO{Mu1ç’ò E¹b1éÊzŒˆª¬ŒÛûêøþ*÷u¥¾æã;ç
-£ÕòLŒi’ÓZ…ŒDÑvÁ‘“£ò¹X²cµ¼_Á¶…ª­‘†ŽJ÷C6‘·¦O¦šP2ãgûŠ¹=gÖŸYææqq¬üŒ¸¨ðÉã1¤õ‚hW)V ºà^¾#Yå/æ³gY­'pÃIË„ÓAÒ>Dé^éõ ÷+^)ä7Ú /coÚ‘VÊ{{oP6…§¿ C õ_>ðÿüO¨ žÁ¢ûã~ðpÈ„~(WÿÍàÿ Ù@«endstream
+xÚíWi<”k2e$ûrYF3v*ëØ:a4v*cæ™1Œf±oÅÉV–6É’c/BeK´˜("„Ò¢T”,Y¢Sï£Nõž^ßÞoïï}žÏ}_ÿëú_×õ¿¯ûã$Åi˜é> ÆÒ@#QF€=%À‡ÍÄái{4ö‚d¶- O @WRr¢°¨àš.hÁ
+†Á³ '_6`‡g
+ ¿‚èU3žFŒŠ¤$<• FQH ôG0ñÁ Àb°Á¨ˆþ¹ƒ£Ñ
+LhVÄ×ÑVþÉoOgQ €ø9F^(]4Aнæxý_sÈ~ÍaŦR¿*ƒø&
+5l¸_]Áoâoº_áoìf424ÐZߌ¦%$b),‚ï·Ùù.7ñë±t&eõŠC!ºè_0'_
+ÁŸ2™Ð¡|…@ñ—¤–4H¡‘ Q<ƒøð
+Ø ¤Óד‚b¿ïI¨D  ð¡:aÇ!¿šCMKͤC4^ÞÓn×s^ø–ӧP¹ÆÜmö’þ¥Ò:ùóY¹l§¯q•çz»õ\‰éÒ–)ú!þ†æÍÈÂ" ÂÜ6IRo‘—vÚmžÞ„è™AµKe•ÌÉ{cvËæ½|ù‚»’±Å]a\"],fë’Ç«×A0iÙòÂJ^‡×ª†âËqS6ÔhG#ØN åw8‡o÷µúûUv{ðÕ¿]©löî¸aίó ÑΪ™ö‘v/Õ7j¹{MkÙ·¬‘´|‘X¨»[{_àˆz÷%WDÊû¸sµ“¢Ù¯ÞJÆ»,Wh+Š*+šj-yœ·NU ýRYöáJëáV~á¡æV1è@ ¾|TZç&iÛž¸d…ÑÝi¶lžƒÔÂå\8ïu^ò´ì‡œ<X¬©Ÿ|n—UGZ‡"óŠK´õeqeJêˆÉ õ3½Ï&ݶÚmVšç½æŽP
+pJžÁÔxs¼ºßã£åÝá§ö” Å9C"Ù¿½ØxAûŒ”u:8A<ŸlEõAuz¤%Ägí‡×á¼OÄšæ½ßù¶ ±!Ø›,;²"ïvÄýÂI”2Å9EÚ^´ ;®þ—^Ö)¡‰
+ø6™W26Óu†bÏ­t>²Ç|ºtéqdK Wª1øïãçýí_ª;fϵh”E¿“îz<ËXiWê¨bøÉë–î}1C•p}Ђ­ÿÛ#nó'ÝnïBù–ÂÓr;>ut5õ½Rsi/s¸‡R™í1f~RXJ½`lßu–øŽØà¡rwù}q
+ŸÌè»ÐÆ ˆÎÁ4ŽõÃ×ø³–sÊø³²AâŽ3ÒNŸžk—hœM?™!‰Ý‘zb¢•ÞUt¶qLLþ]ªòÓjܹ/šî‹^ºE|¸SΧa®{¯ñ1í;ð„û¾E
+Mš©>p­#SÇÐ7 |1í#çã‡èCMAû;ˆ}Þ™Wb—Ù^“²ƒÎ:oBƒ¹ož»ßÄÙ¸Tœ’$Ÿp@ÑÄ_÷…_÷1Õ+±Cˆ'Û‰¹Ý0{½qBù"ïÓÙÆߟÓùŸ^±¸i„ç‹"ßÔHÖ&íž8Ël…¨šÌ·Qõ³
+œVAà£nwýóK°½êäåJ-·=iVŵe‹c¼M !|îÖzÁ®/àíR/d|*ïÙjvåZZ½Wæuþb?vž)(fvµ‡s*»f5/A;(ѯéb§Œ·ty|Aøþl"jŽüÊy9áXI’ó8·ûMU´n£|ÏÓ’1ÕÈ^ DtPSaITïAgŸNqK¨RvÍÇ'÷súé©¢Gå4S­³’å‚ÉÚ¡%À_¸ÞHÊúBVúÝŸªœÓc”ÄŸ_y|6N´¿¨îƒØ—­÷—i2ÝôR1žÐóå{:QoN§öñ{öâsð¯¢CÊîèèMÊÄL$ ›8Ĺ·ç2;xwÀÛ
+¤ˆ“‰ŽRÉ¿O¿Ë³àh•èŽï³nºúg³eiSσkÛüÏ ÄÌZñO”;æ᧽'»™óÉyâ\q˜ UFdUvf¤Ý)‡ê„þ*uŽ%~cÛç
+b4rMMhÒ™Ó:Œ$ñNÁ‘|½£Šg°d§jEÿ|Ñ…*¡¨]N*÷B7‘…2&ÒL)Y& ³G†ˆŽEÜžI3Ï.só¸:U~F\TzŒäñÒyI´¯”È_ð(ß–¢öóÙ³ìöã8ή «ÄÓÁ²¾Äé×÷y’û•ë ø7ÃËØ›¶¥—ðÖaï ʧòôçwI þËþ‚ÿ Ä3Xô
endobj
-1458 0 obj <<
+1448 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 97
/LastChar 110
-/Widths 2810 0 R
-/BaseFont /LLFZNH+NimbusSanL-ReguItal
-/FontDescriptor 1456 0 R
+/Widths 2829 0 R
+/BaseFont /JQQLHD+NimbusSanL-ReguItal
+/FontDescriptor 1446 0 R
>> endobj
-1456 0 obj <<
+1446 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /LLFZNH+NimbusSanL-ReguItal
+/FontName /JQQLHD+NimbusSanL-ReguItal
/ItalicAngle -12
/StemV 88
/XHeight 523
/FontBBox [-178 -284 1108 953]
/Flags 4
/CharSet (/a/c/n)
-/FontFile 1457 0 R
+/FontFile 1447 0 R
>> endobj
-2810 0 obj
+2829 0 obj
[556 0 500 0 0 0 0 0 0 0 0 0 0 556 ]
endobj
-1381 0 obj <<
+1384 0 obj <<
+/Length1 1624
+/Length2 11252
+/Length3 532
+/Length 12120
+/Filter /FlateDecode
+>>
+stream
+xÚíxePœë¶& ¸Ú¸;Á‚»»§Æi¬!Hp‡àîî.ÁÝ ÜÝÝ%ö>sî¹uæþš{MMWu×÷®g­g黪¾¦"SVc1µ3IÚ!Ll̬|
+àáfóü/<þMÃö¯³âhé
+Ðeefee¼ýþóû¯“þ¿ÑH€MìLÿš5lú6fÿ!ø 6qvt|ëîß7ÿ-éžÿxÈd‚´8ggò9À*9-R—50*®ÛÓÅön о¨N=?קҮÓ;9dƒ·Ìè©*¹þßK³Ûì‘ýóŽ,ýîPךÎDÐY‘']w.æ*u+7î‹AjʱÖwóùuX.VÍÝÍQUƒÂ'xâ_­Žç¿é|(\r}p(ïìѼL’j£pÛ0ê¡°ªóŽŽ©ã~ßÑô ôw^Âuï2dF!R}vE¥÷qÈ$ÒÑ(ó¥”ÁDÖ‹ùE¾ìêê MºÌ©’}‹9YBbS™¶ý^Cï§mÇ4á åPÇgö›XpÈ´ó1ðegçB˜ú´žpDøj]Éy&w¢¥**g›×L·v醤Ÿ§œ­_öÓŸz ƒ·µÕ4Lm¯`o¼.W¯ú|ÞÊ?F€ñv. ©ô¼AíkLMàrWôêk¦ÈiÂ~éŒKé ÍKw¢ÏŸ‹ ŸÇý¼_ã¿ä²—B4ª¸¼^g­vªðĶŸÃRkÞµT僲õ£»ÒéðŸðˆ«)uoG%E="Ó)­“%KÜ_|Š¹„È& %*9¬ …‘Ö¶v£†ïkGะ»jcøá4-ï㊚©éEŠ+Έ–®•„Ëô\ÈšgœÕss×·”¯ø—«©—!´¥2cí7Ôaý¦"!šÿ¢éïØ…tg–òî¹·þc|LDÉ\‰¤&ÈôìýYx’Kèùƒæ7Õxÿµ›Ó
+:!vV— žþœã®°‘‹s§)¸›ú¤J¢âÞ‹9±ú‰$cÙS¥R›Åa~oÝÿÚjŠå.Ö6X⟼°’G¢GÞ^3¤:4Ò^UÚï¿ý±S_¹´Dá{NË â2ÇG‡Ý-?±ŒX€ 9~C÷¨Çn¼Þ¿#¢ÍRFÒËh’x›+Vr•7.q&cr¸&zèñHcý=H–ºmÁÉ௳\œÝÜ•Gºt Ï|dn÷· “ŽÎ5‚~aã;õJbk¼®ùdž¼æUeÝ™R¾l1‰Dn%ý¹$c•Ö¾¡¾Š—ÙÂ×\îÙÃ[<gCÅn ˆÝ‡ßz]éö}ÙXêïˆØk©hhà:Ï]å+6îˆ Y%ŽoªRj¬ —ºµð¶O–z¼L¸G?Þ/)+
+••]­3EtÄA ¡±^>¾äœ
+x é*„Ðã³%¦LYIß±w—ÀrMk¹3ÌÆåæÙæôËSWè«"\ïÒ
+Œ°ð»‘~Ü…Ã2ô¸ý¶&Ñÿθ.ëÀ”G ¬r¶¬ÍÚ‹ççjCB»+!#¯ÂÝÉ‹˜Žócm¸è¦U†•tϤ‚ ŒÁùæã”j¹“¹‰>þ_€4 øÑ—è+¥ïšk°˜\È
+‚ó'.«©Æ}IsÍ]|šWOÎü$ž`]Ö\<55Á¯ûHZÛú"?ù¶ª-D‘1¢‰âg¢fdÈp:)#&‡VÇqIÆïµ— ïy›ÆÒna
+•›7•’[„4$U˜» aŒrù&ú0ÉžK’Ð쨿5ÉÆ"Kg)üýgW#èí®ÊA2#¤ê‚‡ã~ØBÁÌ5Ÿƒð§¼³‚Dï$>¢‘©
+_Ñ<•¦ÍN¨£ö”Žg/C÷è–^Ë5¦Ì7!³&/8ÔksdÜ»A¨X)V;·ëÖÚº»\e—z¨öjFã
+¿ôä/ ®‡¡wÕ%³$9.‹üLžüxýU°%]ØðUŒÇÙœhÌÀdÐ[¬íƒ…ÎJ×築xq×$‘YÎó©(^Ñ! Ïkˆ+»Îòˆù²Âž‹¸e!¯mÛ¥ ªæÆÞç"‹&âÙgòb[•” kñ““à]ž1ì0tiæQŠ1˜À•ðvŠ:ÍÆé`åüňùDsnLâG‚œ„ÅKæw’¼¬:›‡þHݹv
+³Rä5Fñ†q-ç#{¸†dÊÕ8´ÌÛsâÊ4—Ýš'„q¤ž”–‚«œ?üÁWÝ|Èȼ2,t.™Ì†±³Œ“SM»aõA| Ÿàf‰Þ,,û®l‰Õðø•K°º¸òT¸jRNY•âËÈôÃØéò¶;Å¿Å ¯‰:2¹Ç‚D^•+AÈsåxrl‚Ææe!Ëòj1«½—ªÐƒŒ*1Ù_ÖÐàt›m¯¢°¡=}ú„ ç&Ë!ÝžJ`ŽæÆJ%5ÏŒav_? Ý4z =Šõ-ÔÆÆݳ{Äß«:ŠeþFV ܨ¶b¹.²Ëž…ÕX¸g“ñƒ#‡O ïac[q¬ÝÊÅ4R ɦŽ«ô]ñwýÌp…XOB«é‡äœr°zâ…Ë óxmW@Îçc\.|Ûß…d[.ˆÆî›î82Ì÷—\ÌÉŸ3Õ®ž^ô¡b1¥U´6Ò©\žÕfĨҾy±ÙX~Ú™xõ ¾ˆ¢dæ<\W…ù0 í©33vï×É.rgFÒ&ú‘AþuDRTìÚ6BŒt˜BŠd¡g87a7ÛEò•—1ÙZŸ»÷Snê<i.½½4-¨J»‚¬à+HR}-Tg{U:qæð–¢½˜Õ:®I{s¾š$>’T˜\¥qâ"–ßPÏ‹¦y&åx—Ö™-ÃD-§('rQ׬áŒnÑ®½¼#vƒ°¶#Ô{ÁS]tsÁ⨔¢"@…ôE´vì, Ûª*¥9N¹¼MÔsÇövsQ¥¾ç“A\v²QáûVoñ‹QÀBWýj+r|‰}˜)hß~LþÝiJ#:äg‹ôÞ甕¯øƒÊòŠE’˜¥gE nDä9~Ìv¼ˆÑ_+©½ãFmÈ×+*ø²#eûêY|—bdIéï]Á8…Üѱ“%»‰.í;OIF«9
+Gbží«Î#g¯"s[Š'´è NÍM
+¢Gþ¾í¼cÞ¼æçsÜ%R\¸±é¯n6³×ÿ+Ù6Ô„š’åÌ(zé¯ñ´²1å6hd#¹•O?»»ç$ªlÊ< KÝ¿B›1òb”
+¥óxØâ"ãb×7’qøá1¶ù*f< 3$yÔÆ í|Ãî¿ÕÍXÃ!bç^K×ûeçJç×ëïëÀsN^+èeaD87^2mNGð^´—² V;ã=±=›ì?`s±ˆÚѳÄ;÷ïOy`ZÌܪ§ ½îÌ‚ð¤cU±çô
+-ìùG5‡‰b%ÎÐõ 7÷…DC³e&/Fs xT ÎéEôØb#> 㜳Áÿ¾{oÈÆÍš šWã¦Õ94ÎdA§>> 1·Ç‚¥Lº/ûY~Z(K¾\U„e0Ù ×q8nJç‹>Ã׶諛mEm nŒŸ"TÆ>Œq®”6©hrÈáè¶Îƒg¾í’ÓR~*˜…¨«M¦ œ¨Çµ›Í0¸ÆË૦8ƒ.g¤k õ®÷IÄ ¶…@!}£¢ÐÁ.ŠûˆOª®&•ÙCJV‰UÐèN«ÇE"#FN±œWŽHP4ˆáDP€dÔf­½ü#§Àë½KÝTmIG<«äâ)Y6ðC ³BáªÁA‹´œ/X©ÏÐK’ têm–BŸ›|ôqk£JŸYwçþ!ëò1Ð_V§ÛÀQRŠ¤øÒ²ÁK
+¡E¯›Ry “Å¿ÐKôb ˆÆ=/yå8X=&îóµðThl¡ºK±a"›’ vÁ¦ ÕEµ\.”4y·
+õrÔþë!7rYéÝî“U>“ÝÏÙ}ƒ&d¡¸¥)ª'ͦ•ˆü÷ˆQsJøóŸôtŠ–M^
+ #›SÖ]¥¦iq!1¥ýLx0_ЕýöKvýí…l›,†3ð.NŒY‘ã'uŠƒS~Åž)#d±^÷UćÈEÚZÇÃØ$
+é¦oþ>ßB"†³õ©Þõ,ÈÇ(‡é&/Çï“\ù'!*“ýý’]¦ˆ4Y
+Ýœ<?Eº6ûÄsoˆïiÑ} ýT„Šû„çj¤ªxï“f›BP¾Óÿ"±ÎÈ©öq¶R\•$‰ÖgÕPÊö…O¸è1®˜/`¾½…Ĩ#Ã<‘“¿/–ºÕ ðæÓR~µZƒr‚0~¤9ľ%Ý)qÑp>cPZg׿×,°-§ÒbdQ…«0$Ûc¶ŒýÉÓ£_lLÏ_†N]Ó î¾2BÐÁÐëÞƒ"ÛTí߆¾Ó§·¾¬óÑðqç‹ô#»I ›5‘U5¢—¶!Šð‹ê|ÿÜYÁú$Ž ³{Õn¿âÐBMnÎ9JG<ŽO5Î
+”‹®†‰,ƒ8®Z%aKç±³ŒBã6ð©#ÇJ#ë|ÌáÃ(w¾Ãrz\ËãÖu³2”à’ðb¥†þàâO‰ã÷|257¬ÆîîÊ2–ù!&C#¤Z;ºx‹«Ëì|wÑzWpÏwBIøý
+£¿uQþû~[LwS,¬°Ž¾ ÙâØóèYj2ÑÌÅ=ºO¯ù5TÈíšVl{Ç¡ wÞ¤/ñ;p{¶šÁò·­A<ꣽm/Û»ì´á*Á<¾‰æY~ÄŽø¾&¤ènvâõõâS¦z*EJ«¤Æ4ílñàñCbÚ¦ ؆ð+% Ó9>Y™É®î©Ûl71›½ Ôé ×á2רZº9é4~sÜ»“
+9—‘)Ï£þ£Â2M=ßC¼ðX*
+õ;Q ŽKò¾Ô„Þ£”ñièÒr&$›÷_$!—>öŒ
+X
+,wQ*¬w± [ÆÖ¹ð—'4‘„Ú”¨ÏBw®‰Ê¼å,Ês”³*b9Ióô[˜¼ö#àaé§åJ·_7'E™j«nsþš˜®¦›R‡ºÎhJôJË"{ösÊ;‰åì5J‚r!=R÷(‡®Hf‰? -¥C×8öyë—õ=a 8ÑŠ( fÑQÕ¹fNÁç÷t]YU¤Åsâ?ºÿzMñ#§÷]RW†mµâÕ6
+Þñþ}‚­:¤er""ä¾_:ÝìûÄkÑÏ•ŽªNIà¼*i¾‹ÿ‘Û׿ ïεŸ&¬R€Ûj{<ã°OeÅ]íÈPyà`¡o½±8”ˆjŸ$wÃIHrÌÇUE´¿`¥ö‘p¾½ÐgŽÀ9–™ys¼\è®ýBü~ý*âÙošw\·R–êbå&v®ç‚ØØT°y'«
+TÚ$Ë÷¥Ÿ¡aŽ+ÖÝOÛÓ$èïïzŠpY’EiI7èø¸¸Vî4 —¶=Úˆ†î ¹&̉¨Æ ¹›‚k±,e²i»r©ÏšTò jïÛ/&çæáÜZ`’5*Þ!üÁ%”Œ µ-Îaœ]ï}ýaAšËñ¼„UÖ*kàHÍŽÅ4@÷‚èüTL¤<…}X{giâð½šÿ[Ü Áò«gùLC_2ÿ2餟›˜³y€zhT }ïÜ=wÈÞªìñÒ65¡°±N0òÁ’Ù¸?'¼ò´ždŒ!a‡ý4©úãÞïÕßr›ú›†mñãWxïHŸe°ÉW´åÕÕÕ•áµ›æJ>=#êD½ÒrêRÚnGÕ ŽHraza.8‚G’öHó½+G_ìe#‡bS²Ê­µ»2þŒ»÷ "ôk?Ã7´ WTáFRÔbÙø Æ(7Ä$™ò2WV±½©!Ãï3ãf$hâ“ͦ_¤xª:»s ÷4í–’ë>úƒÝ†¡”ºëç®J—Ù•¨\Yá‡ñ»ÿË)\=¦,Šê)”*Ü»¶ËN³þ¢äâ&ãå[& ÿ’¶{‹š¯—ÙzjÁù›ÒŸj£x‚Uè:bo~¿G5Ú>‰æú)º¦¹ã=¥ –¶¶æû”Úû8êÉvÑQ¤Tk(,«HžžªèÛú<Q|^F‘¦_2{p⟣›…³ãÖQÊxbïØd¯¨ùÎÿ }ˆ%¶†.Φ@WÊj*Ï9R§ü8¿@$ÿ,+ª
+P'L“Rî&Ží±Î&ÖÀËŸXeØNWµnÁé6™¿Ã–Cžøþ£™‹6Ð 7@çõ *gð¢òãGQUàúT^%õÏ1ˆ-Æì4.LÕY"ô<Ÿ½cЭöô¦w8J½µ©¸N³Ÿ R1R¦“7¡<pëÅ%ÄaQ©@e},Ο諦ð”<Ï+Ìk¼àï±@Ú¿Š¼Äé8UçÃÓ(§D`˯ͩÔ`¸Éå«Á¿§ ìõb©$C°V!N¼Jú¶®¨<ÄitŠ]÷šb.­ñ€{½.sÈ@vº—7špõ¨óv,xkh
+‰ƒY¸eÌ&-D! ¢ùÄ,Z}ÝJúrq K‘¼ŸZj‡~Jñ-_Ìkz¯yH› v:eó—õ-ÒQ8±N™¥aÐÆÐsöYønrªPÆtž›Â,àP§ÐÇRÛ¿hkÈÌÚbBF=´Ðwi…Ÿ¼!{2É÷w?ýåñx«l?Cýtãì‰-ˆÄ÷×z'“ù:8ÁFb£.³ÈØt4É_rmš‹ÕN$Ô;øõ[&R–Ì·R’wf®Ç‹MÐŒÏEöìµÜö»ßpÆ '“4¹O<â+Œ % C‘|L³B²^¨*1àc~…œk>FE¯Úÿøi·öƒƒ/…OºÊ ðóg-™Qü=ÉüëxƒHê\Bd$ú<äÁc
+)–ۿ߀P[,'ƒjŸ˜¾&Ä35 Ö‘Uì³×»°^æ~†öNãå WSXæÛàÂ9ágNƒ€¹šôÓWžRçÌ Ñuä
+YuÃ÷i2š¿q¹Á”R;´’A9V$„ ±Ð {›Õ±èÇb¸G5ÙŠé¤Òö~'Tª*tlÜ&ì#ÄBS6Eä/êìÖUhýj«ol‹ÐÆi tó~¿JŽ^SVBB°
+oŒÖÀ—Áf¹1%a`$dè €k Sl´@×æh¥Ê*冷¨›6ÀÖ!Þ ÖÔb‘YÃDú—¸8¹ãï ¸€´Y*^åõ$Ÿ–—pšÞiàØþ
+Š¹;ªéÀ&1Þ-Ài{ª¨'ÒB{ŠÌ¤ä©Á€†Ñ7JÞŸ=Àø^‰Ÿ¥:NÙû°®ô|kZã]‡DºH]ý™î6L€0)?ŠCó‡ïV%;4ô”Õ_mÕq–‚×*ø༒ñ>Ô®€÷Q7Ì2:´Ó]›øƒ§¨­òdö–ÜÄŽHáR>#ÿôÅ"­Ý…9©âÑßEób{xˆÄª,JüáI@\mçš7éÎ(]‚ª12fÀ<OÑXwß6Ìo–Ã~ÝÄbíž]Ì>®z`¸Ùo³¾¿=Áù¸èvß™øAW “ƒ,ÚÃ^m1Ù`³•"Ø&@D§‚ 1$XÕáAñó4¬–ÝÝuäûØËÝ»`”D·íÞ.Ià‰ƒ‘¦„§‡©Þ*õŸZ¶/ËGdð*Cp¢”,Gt­À(p©A„ürâgLX
+ ó(ˆ qŽ…øƒ~ªHÐÑì}o¢qßYlL+æLp{¢p¯R¤ég5nf¥àF¾a
+æc×—C¾ÚïXÙ~kÁÅe™\ðWâ¸Îbä÷¨—LkR•æ¾Ç
++§×åÞ ë5‰!ËÒµ’†¶B7h ¯ÔÎéÈ:(s¦¦5ÂæǶ:DÏcŠãeÍÕ± ÙÚ">“~Î$KÚH¾¢1Å6Äs/1~Sºò>T-Jà²ú‚H<ç@†Xi”"õ¥Žˆ™ha]ç¼H×ÞÈŒ-ŸCOiîÊ=ÑäEëbi“è`¬U~Â1æ7,j2(”~aœèJ§euþÈS:r )Ú¶Û 4°éã²mî×Üo¾mì6y§MoV#° VK³DýùÜ-mÙrée×€õ‰Ò°ø•>Vüð[M:x˜Äÿ‹à,!Ë^컬5|…ºùg×.Fß üÖßQV‰ÇA…–w n<U±øB»Íým×–—H m&…ýŸ=ææbDÜq àc#WÔ*{¯x« JÍۨȕ°Z K^W>†ÍËNymIî¬`* ?~_E»Gmx9[P«¤€zP™Õb¡ƒãÒÈ\OÊcwühH²¡¨éÚ¬#Dë@¦3p4©@C²¶ ŠXÓñíUÎd-êóA¦Ó…Ý^zÉÊ-¬ð&—5Zãuöä…‹ÆÒùIÅ©¨Ú7/ƒ„kf7‘¡Tƒµ=K_ó;]å*gO±òâW‰;ý:ƒ åîÏùѦȵØk’ØÞ±Ô×äÖ¢HH ÝÞ+†¦fÝç¯Íc –«>}µñYñâi“÷’ÖÀÒÐ~)©ÙAeJo¿òP¤1±¤ˆaψ¶=ÖO]m(Þ,唘¸?ÑpçÆb°)³ÿ HëZ_îÇN×I¸3È*W
+/,éâÌ
+Ž§¸
+ò[PýIbÿæ­Æ7Ô¡Î7a^pã¦ßöF€za£ÒMp¤µÔÌĽ×7ôØUN9$o¡›&s
+Jr,
+a"u"(–瘖³+ÿY¨®kÐÿl®«Û*ÉÓ fÙ»¶nÉ(’@Kð v)lSòÙïªRiyS§ª“—]ö®7|â•O1ì:Âw w²ïgŠ„̲=¯Ã;ÜOÝháZá‚Ûâk •ZŠðùÑ "/Ã{„0¾šRéz7™ðP&5Cß.‡¡#|.›sú|ÓGëx?â*aþŒ˜k÷ÿ"ög çC@êƒÕ‡rqÝV½™žM“ÕWŒR}-ëI|
+gQâä õÅï¹îO°Ç;ìáÍ_†¥w7¶Û†íS«å€…SdŒö “Bw'”;,I as›,=«PBvHý.nPpn§I-œù.KÒ ásçÂy'E5—­Jx{Ï õ˜­R`%ô²^~#7K˜ã­›ÛëØ_á+þD¥€3±ÂV¤ÐƒObeý=.\·Íöœ“ù3Kíc÷F|É0úµ´-WŠÄOûËQãNS@»á ™Š Xð`¿™XòÙ«(|7}v2ʦq$L?à6iºAá}êçbK×m0Ë/¢³ó™KÔfn·7–( ]ßñeºË¹ê:&U’î9Ë×ß?Š´Ñà¼àt>W›“œ@Ï™½€zE’fnŸªãy:z³×VÎ$£…Ö‚ê¿è§;‘Ôg±HQYz=ÊU~iœšžR
+GÅQyrshÄV@sÒ9ßHfúvõÒ<"’™ºdæ×<>K„ã®YX6†j
+<´â°À1¹õ¦Rí³Ì­½²3 [Üñ{ƒ 9ȉ¨Ú^ûëM=lÑø†élâiŒ ôxñKfJÿ2ax´˜r‰ø¯l+A#0â4$E€“·@òä—FÎÆ\kwX˜ëï£Pÿ¸™­l™°VâÛr£Ä›þK¸€}<”×OÄ ôrþ÷–ë¬gþ°d„.îZ`ɵ{;Hws|äÁ ;ê9Ÿ1QÞJçY4ù§‘Òû™ótWtê©ÔáF¾Tâza²‡à¢Àyb®f¤û¬öä9©à´ïtŸ‡åÝ2¨»å¡·ýòÅøn›}
+ª²´Æõ÷¾6ëˆNí•Eâx¹èµäW<X1é‰þ¬'®†’{§#ÓxÓ˜v¨NUÒÒ„œ3”Ï´„5ytrøzÏwÃò†¦k±ÄÍUÖ‹–è;NÓë¸OKî¤côËêFmIdâ\MºÑ€¦1î2ÞM<ÊiÜC+W˜‡D- 'X,ò¢T ßÚåj)ýrÊKI‡£à"ç¾YLzׯ
+c•|z{Ù†B ¬À‡·ëA?̓9¨„&Þ¯žg¯ƒQÙl6…²r5§ Æ[€DÕÙ²| "–,㞸. }f7ˆO<<¡}«*Vù!C—ÛÖ î7+cÌ.™1 ÔHý‡HïFg®/lZÝ) I³…ÕN"–…µÄÛ¨¿w ù££Í‹(É¥ÙKhùŸaP{‹jáÁQ®’OHÔÃñž<ˆìN¥¾>¤0ßqÛ,ß¹ ŸëÚ«ñ~·Žlv ëx®·¬aýo~þ?Áÿ&6  #ÄÎèhô¿
+endobj
+1385 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 2824 0 R
+/FirstChar 35
+/LastChar 122
+/Widths 2830 0 R
+/BaseFont /SGSPAZ+NimbusMonL-BoldObli
+/FontDescriptor 1383 0 R
+>> endobj
+1383 0 obj <<
+/Ascent 624
+/CapHeight 552
+/Descent -126
+/FontName /SGSPAZ+NimbusMonL-BoldObli
+/ItalicAngle -12
+/StemV 103
+/XHeight 439
+/FontBBox [-61 -278 840 871]
+/Flags 4
+/CharSet (/numbersign/hyphen/period/slash/A/C/D/E/I/K/L/N/P/R/S/T/Y/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 1384 0 R
+>> endobj
+2830 0 obj
+[600 0 0 0 0 0 0 0 0 0 600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 600 600 600 0 0 0 600 0 600 600 0 600 0 600 0 600 600 600 0 0 0 0 600 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
+1368 0 obj <<
/Length1 1608
/Length2 7939
/Length3 532
-/Length 8789
+/Length 8790
/Filter /FlateDecode
>>
stream
-xÚívgPTݶ-HPPÉ™&çÐÉ™–œƒº–††î&K(HÎQÉH ’sÎ 9#$ˆ€øÐïžsn}ïüº÷üzõvÕ®ÚkιÆsŽ¹VmVF-]^Yª„p@óùž4`ö–Î(]°ƒ¯ÜEXYå‘P0†pP
-G8ÚCзÿãºP(
-²BÂÑ€Û¬Z
-JñDÛ‚Ñ¿s£`·n
-œ6B†NšVµúz9S,nq2BÙYÒ_+Ÿ¦Þsà›`n'.@b%iî§ZüwœJ¯îsúð {^¥’¸úCHW —Z “èŒÁv,!ieí1«¥O˜–©í[oF‹£‡y‚öƒÛ¢Aùx@”SÜeMIƒZ|
-úˆJý€•<.%sõ JŽÅ?ANïÝy¯2}oÁ[+B”z1’áž ‚`Ïtf¶¢tÈwŒ°ÏŽ·xÀ©þ™Ììè)‰ë{çqéœÅâêsn¹ÁâÑÈ!áLâ|®Å–êjÙµXùPüðáæN…:ÍâŸiËÉ#V
-.¡Þ&ä± .­µÙ:á%%¯ÆƒÀ+Ùì£àrÒôdxå ~åj}vøñÅ
-E“õî ÷*\ÔíÀ5´Êµ³nÝ¥¿ìv°¦Õ°“@<˜ÐÀÁæ„|º‡¹Uº–ÒSCö¡•Z„þîýÐni¯0q¡~‘
-5¿Õ¬g-Í=¥á`8Z4~  iN6ý”@}!ôk °)„COÊ,”úP¹EÞ}/šòÜ:o«4QßФháôBlågË”O„á1 QÏ—= GÖíÎ2‹$ö"Ä‚B5GmÞœ!kÊ€ÅÁFþ9¡Ë+TdùGô“Àû"6®ld&Zíeí{4BQãÛ£x­æ
-Çžó,g½Ã!‰âŒOòpÓª¥øℱ—ê¨,«镨’/+U²ðN\ú_øHîÙ;š2™´@r•zPÆœ±¹ú™5¿,Oì°v^=³ŽÐŽrûÊ`ÉØÒd±‡U”£'„/,&z‰â£óõ¾ Ôá­ÌÚ_'z8ƒ^»‚!OUáö:§˜VeÞö¨|BVvÔ0ó+·–0ûÖÓ¶Ú,V¿š J,â^´S´+kNï¯s¥8¡ËÐ f´“[„wO¹¹Ržáè.ÁFFM„l-¿?®f$i½*Z§g´É-@$ˆð‰´…G©3ªV;eW„ôÆwœÃðÇkÝüÓï«Ï0¾B¸9lZàâèàø3 x?Üßj¼¼ß· E=_a^ñêu(ýv
--gھ蟖¤§I„²kZKéä”ð
-›û,¥ñ­º“Ûý ÙU@žXÒÖrÝ}Â;´w`D­.à™Œ«ž¥ÅÇ3\™»ølð­…Ébñƒ¥‚U³¢ÌöMÌœÞÎÛJ”…¶WkÓhý j¢’«qµD¹Kz瑳³B|óG\Caî+þ¹*ÊÛ~¡ñ¥ÎGÙ§}–ΪJæÄäû§ W÷HíÚ>ÛÀaòœúò4ó üN$ÕYYšžÇï_œ••W+vqƒÛSš:± 0ZÌ©„›a‚â[‹”%sˆ{¬Þd?zä­7~ÞÛsý3M{öži17ÍÖ‚\"éýGeã3mì7
-Kygm/®SÉçÍÄ\ÊqÈbO;z¸‰ð «-4'¤§€+k=ž~(6¸hLìÈÒúô<6»¯´yjÊ^"þxNLÝ°Ç%3jz˾‘e2 ÃÏfĺEÎ>_žÝ(¸š¤²uy•“®ƒ›{!Þ4l"ùíóQtñÚIÝE°ºÙu² ¯‡Ån¹¹ÄùÂGˈÃÄ ›
-?y“w¾ G$ÜË×ß™‹<Ê™2ãtÏ¢Þ}ÿ†­ @´yIGbc‚²Kê·HŸ|ëÖ x°–Ñx½Ùþ2—€_M”+=‘Û~d˜„“•/tŸ†ò³vLFd*°Ä¾ù±b«&} ¢¥çË/à¥2 ?‘©"B¾,|BÊ1û楛æŽÈkf}°¿Åø«þŒ„g“IÆÞyã8‚© .ͲmhïF`”ÜN‚”ƺʨjÊéž=wþ¼æuußÆ?ÀTÓˆ½~.%º·2¢_½¥’()“5”ôe-èÍÜhxlšŒS+é\d®ýÞ¢Ïd=ºñbfýFÇO¹!3‚"Ž±6÷'íjCœ´¾X‰Œ]Š*ÅÂBùwK‡õiŽ€hn"d²¦…Œ·âg쎓š™Îë`ÎÓp¦»²'UJfaþ»f[Ĉ]ˆ•á®þÍz´&—À$ñZ¼¡®i¾—fG‹LßÇzbÕû\dÊÅï격|X“Ý\sÉ•ŠØÊ+¾ÿ fÜŸ|>„%ýHÎÌÚ`=6"æ’P«ô9#Ñ\ Ó#3z-Rô|%ñ¨$¾Gc^¤‹M]÷²³Ôú{'¢_ýDÊû1éÍ*õ,θÈêÝþ²â³Gƒg¸LMa2B Æ»é»*+M[TÏ•´lm§2!ž7V¦Ôˆ·nŠæ‘’¸†pj7ŒÙ>ò"$›XêÐ:{—­¶^˜u^9Ì’„‡DW¬9%%^ ÑËå,W0ß²¦ÜÝ™ZÒ×ý/õ{øúÆ>²Ý” à/"ŽDkúmù0§_ì>WTxìÑéƹœ ‹›
-zƒ½Ê-%¯Oà¸L5“‡û’ªV,î½øÊáÃz‡>ò&ïw¼´rY6Ç—ÆJwŽGƒ ±Â*ÜA5ƒ
-ëšSùSÕi…Ÿ*z~Öå{OrÛÎâ¿z»—­’M®læ|Pû„î"‡ãüi®WêæˆOâ›Ð'ñëgÏbíbœŒÉQùb³ 3.ã…ñk›ÌBd¬ilüÖw_ãcÂŒ´¾,ã Ž
-¢&tG÷ü©Ï¾2¤ûôþÌÓ(v'«.Š
-òôÿÑü0íû¾€Žˆtß
-sožbrÌûvE ²ÁÅ/ÍWRÙu/w¦ØÒÕÛïòxœ‘ h<LšøÖ‘píÇâa ®”Y
-Kqh|>6œÊ³(æÀ’ßë.
- a‰ñµoWkrŸÔgÔÅÖº›Ð˜wÜ6îÂÞN¾Ùö i± XüÐ~ýÅ´á´ÙÞVó Þ³6÷³Ý>EŽ
-‹^±Šî±nl#šñ‰65%,ç_°Oê”+µNý%Ùz¯>W7¶]•fzã}A}H›ÎÀSÝÀ~ƒQrNÉ)îs¬þr]Lf¸á“
-<á¼ØËûò Aê)¡³k¯×ývuSøGlVªs#Nu¥¬·OŠE•?.j?ø ÿ©ÓwGä“øݺ23oªkvSÛë>Ñ=¶ Ðz¸^"èÁ8¡-òo*N¡žº3Xl‰eÓk‹þœ %¿_>
-Ý‘o•~~æHj¦ä=ß‚§§Øç÷üÁ4fA|Nç“ž@íD2ÏJªÏ ªßãfœêvæ_ïùQÎ`œTäUí`­Ø@–¶Y™i"Çø¡Ñ=¸M×g•Õ´1š:Uпƒfèò©ü¢hçˆ Šl`‡N¤·èç«s¼„klbhL˜:g6(皊…KQ}ÈÞ]Ÿjƒ+ÅÁ7„,IL$¥<³ Àãyª1ÕÓ¬^Ubó¥s¼=õ¤¯æ-_ãº"/·ÒøìX¸¶å¤)"<XŠxÜ*%Å•€,Kß‹?¯‘¬’ÿ„Ç#8,Gi§ñ
-D¯°4Õ4øO‰h§ª‚Ã*÷)É›%ŠØb~ø-GÈs“I»øNà9-ŽSqÈÓºD {Ú½S\pzùÃuyjD¡«†k!ÈÅ¡ùð4yªQemˆÿÉX‡Fiomß­¿»jÑÄŒŸ*m—­´Ã”8Fèc…ךÆàAÔÉÜî°’Z¼5è篫a¸”dñF~²á)ž!“F³ò±Ëâ7£gªØjB}X€‰/‘'™“š"ZtÍCöEqË’¼R7ö¿Õð®ÒÂö@.)¨F…t ‘½uŸ¬®%Qò«§µEp˜Çd€™ÑÛkï#ÝýFø‡‰0A³KE*3Æ€F ‚é®0BÖLqÄ`nÿ‚Š%P爉䅟Ú*›X‹²Å·jÔi÷b¶‹ôRáó"¿¬žû6vTZRœÌ°T3 Séèv\ã«%øÜýI ¯”Þ¯é¡ëæ®ZÖ·mpßú”Qn?ø&Å—Â#Ôߟ›ì}ÅÀ^í° ª"Á"çt{RH:†×¼woŽ¸ÏhFO°™§éç€oÊC£B÷~”…
- sœçã¸!q?Oƒ¶•G¯îW̳ŒÔ)HænÉøoÌF–A£Êå{Ç‘æä8£jýäUu;W+Aà¢ïóÇ;X;{¥ð”ÇÎwÆ}x" Æš=×N¿nc}& ±Éy[µ~œ ¿öµh¨»š«¢³ñ©"Ì‹üEmÊ`;µ
-Lj
-â³ß
-Ì Q=w¾?‰¦6ª~ûá¤àõd‰xW/aéÒÛ‹†Cú\»UÒâàfÒ~…¶‡Í
-¤´HNú2HBÃ8—GÂ+zq(6|£}h`wŽXn‘ÉÖ­\ƒd0ÖŸ9yEúQ§lõ8þ4»G“‘Èh(1›‚#Tšl8ùñ\^ß/Jö\¥H§¼¿Õž‹r2Σ}‰RÕ»Y€|áCžÓ|ƒi xCªݪÌZ-›Çð0ÜJLÕ—D9dkùåΞ‹üÀu !!‘}U?³9Ü«eŒiÒF̦ì½Äõ–çwNRi¸Ž~ÑqÂzÊ—eh )¶M# ±M¤µ.?¶%aÿ5ßóÀ€L]t“ö´ƒÓÈÙ‹CM³S­ê£²lµ^÷³²ÚfÉÔë'7±‹÷bqÛG2®K œ¾’j…Ã×?“ vœ:Û¤~í ^~ŒÓ}ü>[6ï¥Ô‘Uïi!~£óú“á{±±?Gywuîj>S–µ¿ƒÆçò8CëD?¯‹{ÇéëˆLŠ"X?¹ÒPÌ­ÔÜìô|/*_6fñfw
-=ÂRŸó>ÍjóðÔv)Ùyÿ¹[G¼Ü5)­…ðwÃä¼Ar«òqsV
-…üЦ^o{<´p–…p¤(„¬Ý¡òž#%
-o– ›.%§ª¿ƒàêÕÎ*4Z®÷„&§xás=G‡ü<ṼǕoÜRŠÂò7ð|lä”güâ(l€Â(Ù‘(8Å|)ÿ¿wÆô/þQL™ uG«ØâÐÏœÎÎ~N*{cÀt(û6HÝB=viˆÀ%ŒÐ/ÌÐà>^P䶊ŧ¡¯ÕrȈ=ÂÆé2¾ldÔD4“kêœÐw§3\Wd†@$B}vÓmwÝK&à#ýÁ?¡e6êœÿ¸¥*IÖÔ*Àií¨²Q„É¿åAFÜd@+íy‡íj¡×Ré­¬üž±àV{ñ)„ÓÜy¸K þÍç*ï¬%3Ã6ÄÐqO®Vîz
-Pdž·ÕŽÝKcì" ÂñקÃ߸Ð|÷”: úaAÞffñ~þµGµ³+ìMk{çg1Û»tîO±¶)0ÞÊœ<vŸj5Uq"¯}h‘ïÎ[ ã^ý­ŒwXcsÝX YVW³Zxg/ÁÍ& YÜÔŠþ6¾ÿ„×ÔĈäUu&S·+0›Ý)§LI4îÄR°vò[_•(ÉëOJ¼‡ŽÛXÄbÉÛú󅟃HÙ¾üª½[!+ØÑ™õd­¶¶¹c ¡µìÉŠaüð L²ëb_Àå¦RnMúY6F¿ÅýíÕ<úx*¸÷â&?ñiÛJÌ¤éŠ Žô·Î±¯‰Ò%§¤+Ž pñýïê=Ú02á=o !“®…-‰NØ ží2_Ûš,l|%ÕvW”v¨q$M1‘]–OmÍöèÂg®eÝ/Ý»ÈÔß1x±]Ô'ÎÝíÎ<± úa’'0x{&¿µx¯ùí©wÏ.o†l¬AÁ +Øο>Ú²Ê.ÔZlvp‡k³g¤…æ[FMIÁ‹£÷0ê¹³ÕvœøæhPKò´ ûäx´!vyÚ³×eœï?uúfK¿ŠÈ+>ªX'·[ò&&ÇŒÈSm"~Ê\mŸ$¯ GÊ-ˆýJo%ÛÞêdyž†õJ-»Û¼`~DÒ]FB´§Aäû¹xx²Ãò`}fZ%±ÆÈr™6³Á‡å_Êf
-í&2PƒóuíIŸ[^|uÊàïíŽl«0x¦ŸøpÙ(ÈÅ%mé…ÆÃð½/¯ ±sqØo
-ŠÉËQfþNÒúðÄCzòÛgêg_åD6ºq¸I“ª¸ÊFØ2Ëv­Ö¦™˜¤Pé¿g¦Uu䂱~Õ#ÉUz$¼
-ÇHÄ•vËÕ$«x-‘–ß™š¦#{eöòÓ`ÐhšDŸâ°º ë«×^9ÁB0¤ñ뫽‡í»˜m×ÖÜ¢Ò ¯-‘+ÖŒ!ÇBPŸÕvî¦è ·?§¡ºƒ¼E^$‡ý…’*O*n˜.—Çw2wÏ5N¨°xNÂø,†éõG#ËÕ€ª“ŸêÅUOr3~\Å[kÒ¸! 9×0ϵ
-CÝ_‹{™éÉYŠúð["šgì2eàß$‹îy;Þ;Ú
-_ƒ ÃižòÆv==·%!Ãd2KVûBàùü€ÿ'
+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!
+ ³‚:  
+uû €¡
+ sDn³jÉ+þÅm Fÿ΂ݺëÛHÂÊùwI|·0·^4怠¡nèß¹,¡
+a%ð21% ]F‘Ñ5 ÿ¼­ˆÕè˜÷Iï}¶ïGD³Obð²hÑ‹ëÒ@ÞÊ¡g7uî“;Ž?×U87zZÈálÍñЃ,Z/&ŽÖìG ¬ "\þ|æy„I»†áž‡jKØ&Oø 6V´uÌs¯ï>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œ¸
+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è
+Çö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-
+óŠW¯C鶰€®ô
+„©ÊìiÝÇ.h™³ 6'¢È6
+VÍŠ2Û71sz8o+VPÚ^­M£õ‚¨‰J®ÆÕe/ýéœGÎ>Î
+òÎ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¬¶Ðœš®`¬õ<xö¡Øà
+ 1±#-@ëÓóÄ<ì¾âæ©)[‰Ø“9QuC—̨é-ûFæÉ€?›ëþYû|96£àj’òÖåUNºnî…XÓ°‰Ä·ÏGÑÅk'uÁêFd×É>0¼f»åæ6ç -#vƒl|¯göÕšŽùí:qÄÔyN¿3-y„¨Å–UÇâ${Læ6¬ÆÚRøÉ™¼ó¥?"áZ¾þþË\øQ>È” §{õîû7l]
+™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<o¬L©oÝÌ#%p áÔn³òäAH41ס tö. Zm½0ë¼r˜$‰®XrJJ&¼è ¢—Ë™¯`¾eM¹»3µ¤¯û_ê÷ðö}d½)(A=À_D‰ÔôÛòbN¿Ø}® ÆÿÄ5,¢Óc9A7!ô{•K*J^ŸÀ~™j'÷%U­Y Ü{ñ•Ý‡å]ä"Lžïxiå2¬Ž/ïb…U¸ƒjå×)4§"ò§ªÓ
+?Uôü¬Ë÷
+žä²5Äõv!.[7$›\ÉÌù ö)%Ü-DÇ9øÓ\¯äͯø7F Oâ×ÏžÅÚÅ8i“£òÅf&\†
+-â×6™…ÈXÓØø,ï¾ÆÇ„Ék}YÆð”êA±<‘‹?qâoYêLÁoȯü¸"‚˜‰œñµŠýVw$€ÇÞ5-M¶Ãú&š{ ŸQ}2Ñ»5ãùáö¶xĽuéBÿ;¤»¥ªïÕ\rþhüæx¿Í?‚^iºÇ&‹ ÕCžËQµb\¸THüe%¤¼®QÕE²üO¥}¿:y´ÀJ ÛAHù åP¤-´á€[kNÔ/ˆ<Í©ÁEÁ‹zHÃ('¿8/ÖÈ><ï·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ùÚ
+}~ÏLcÄçt>í ÔN$c÷¬¤úœ ú=nÆ©ngþõžå ÆIE^ÕÖŠ
+!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Ž
+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›
+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
+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Ø;Âúž
+8>Ô
+²©
+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ÒŽàÿ
endobj
-1382 0 obj <<
+1369 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 36
/LastChar 121
-/Widths 2811 0 R
-/BaseFont /IFQNBV+NimbusSanL-Bold
-/FontDescriptor 1380 0 R
+/Widths 2831 0 R
+/BaseFont /HBAJHG+NimbusSanL-Bold
+/FontDescriptor 1367 0 R
>> endobj
-1380 0 obj <<
+1367 0 obj <<
/Ascent 722
/CapHeight 722
/Descent -217
-/FontName /IFQNBV+NimbusSanL-Bold
+/FontName /HBAJHG+NimbusSanL-Bold
/ItalicAngle 0
/StemV 141
/XHeight 532
/FontBBox [-173 -307 1003 949]
/Flags 4
/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 1381 0 R
+/FontFile 1368 0 R
>> endobj
-2811 0 obj
+2831 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
-1378 0 obj <<
+1365 0 obj <<
/Length1 1166
/Length2 8911
/Length3 544
@@ -13873,7 +14005,7 @@ xÚízU\\kö%‚»înA‚»»;PHî®!x 8 îîîîîÁƒ<$ýý¿ÝÓ·{žæm~Sõp¾o­}ÖÞ{}ûœz)
U 1Kˆ9Pveá`e
„8
l)qøCÀùÏ$AÎ@‹×¦¼Øþî›âöùØ
-¶ü³%K7G6-0ÈÉ ('ù?Á¯ò¿0k +€‡“Ÿ
+¶ü³%K7G6-0ÈÉ ('ù?Á¯ò¿0k +€‡“Ÿ
qýñ$X8x8þÆiÚ€,ìÀ@—׳ø“‚-ÿ–R
l±­®¯SiælùOàÚÂÍÙùÕž?èõÞ¿öV ×@O òÊ"ÄB0Ô¶6´ý¡ZŒØƒe’«Wëî·97rŒ=ô7V˜^e»bîÜÛwŸ³$UÇl„+ `•`¡Ã㉥bø<ìøÅ;X°°Ã°`d#‰NYë„”P/駯Øûˆ¢ R¾Kx Ê^P”ÝéÑKL`i„CpHôœTà‰ÉÊò+TŽøñž‚ÏUdíýÕàçG:%Ùmƒ#RPä»géäõQOï±+:°LûÅÑxæÃe]k/͉õJø:'º8ŸlJÛ¬žªGóy乌טòQK6‡ Ñ+íLvþ˜ð‰Å16(ÎñkX„Éßš†+…¨pœº–QÄ´Ôß^î)RêÔ[W,,¨Þ‘õÉ»ãp%n×)iuGYÖǚπñZ¬Õˆv4¹›îµ:®uľõ­«GZýÖ:„<=Ÿ@‡ª˜yÝ—l:GBÎÚOAs½À:rÁUuiw™ª¨,w‘ʽVç±ÌwZ6ç]ºš½žWßÆe ͹„縤h£öÙ8âØYWÑtÔ¸c}ü5æ?°5&Jt”ùËÞ¨—OÉËÛòÁHÌîZ‚pr_‘\OœÅ±„4šß²~òIÝbâí‡y"ûÊ“¬4òŽZ¦¿;‚Àždz™RÑ t[^cíÆ=ðàæ÷Ÿ‘øÜÏ•ä =X}§^ÍóâÓÌ:Ë;}ß %[µ, ýÉЛ>µÞܱ^4AXç%ä#¬wÛ±W:eÅNã¥S¶SÈ“H f÷ÖϦŠKuP ·}.óF!Ö§•"k¯“/ågö«ÉФÁ
 ê2³Õ°"Ý ÝkÇÃñJ
@@ -13903,162 +14035,35 @@ g~nM"up^ÅÃÓíÓêè” ,{!5ÿ8¿UËn
Ðú‡ä9¬PjK¢!zóÙ!ñHaŸ´Þãïÿ¼£êOß,?€úVÐz¾’¢Œ¤ñ¸gTW-Š«XÑèƒðN¨PÊ94X}chAc~‡^ÅûI8Y½-°Ji ¾á.˜<®¯ÇIâšo,¦ÙNì¥#ÊͽÊûÊàùk¤lùnýh2³ÒþÝu<Aíâ$FŒþ¦ÏD!þ:ƒêj%FDõŠ‚QúPÀ„´èÖ#מbG¡³°ï\ùe%mËf›‘g'CÕ䦨 Ñ)Ê$‰‡x`A%*›H«¶#Ì'å;…p‘ûÚ9ß/iÔ¤N…ï#‰yàE×Óz˜8ƒÄÛ¼êpXe€N®Ñ †µ§r%ç˜û7¯¼Çé&ï`Foùª’׬ó›}tW™ë',4Ó‘õÊ™‘8‘À`Z*\-šðú[Ü‚JåÕ®{i!Ux„T û•ˆ¼‘‡ômÙ85û)îÛ¼e¢ý¾KµÔÌ;¨žè{ÜÈ¡¾è{´Ñe¼Žò»~!–±l˜×R¡^n`žTG?ÂŽÎCMž—û[©s¬ ;ZWÀá¤ì`±3iSw-iUÉCW
ÚVâ>xj„E‹ŒwêIo³}‚üH—ã
Örú ãkÑnT‚e¿S< ¢x K»«- 1…‹54ËÆa«÷-ÕÜ@ÚUóªîÐsL/}8ÀѶ›Ñl¡ò‰ó9È+ß©O¹È¨qD‹£RKˆ7hëÀûÚë,l³Ž[‹x³#‹³ÆÒ4
-¶ÿÚ®½–ZJS•ñ~´õÓp+S!¨yWC6Æjy.Lä“X5­ ^g˜Â£˜ýÿòƒüÿþŸ°°š9»BÌœí}œ.®ç?þ€‡ü¿
+¶ÿÚ®½–ZJS•ñ~´õÓp+S!¨yWC6Æjy.Lä“X5­ ^g˜Â£˜ýÿòƒüÿþŸ°°š9»BÌœí}œ.®ç?þ€‡ü¿
endobj
-1379 0 obj <<
+1366 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 2
/LastChar 151
-/Widths 2812 0 R
-/BaseFont /VAVHZL+NimbusSanL-Regu
-/FontDescriptor 1377 0 R
+/Widths 2832 0 R
+/BaseFont /ANFAQR+NimbusSanL-Regu
+/FontDescriptor 1364 0 R
>> endobj
-1377 0 obj <<
+1364 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /VAVHZL+NimbusSanL-Regu
+/FontName /ANFAQR+NimbusSanL-Regu
/ItalicAngle 0
/StemV 85
/XHeight 523
/FontBBox [-174 -285 1001 953]
/Flags 4
/CharSet (/fi/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/five/seven/eight/nine/semicolon/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/U/W/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/endash/emdash)
-/FontFile 1378 0 R
+/FontFile 1365 0 R
>> endobj
-2812 0 obj
+2832 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 278 556 556 556 556 0 556 0 556 556 556 0 278 0 0 0 0 0 667 667 722 722 667 611 778 722 278 0 0 556 833 722 778 667 0 722 667 611 722 0 944 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 556 1000 ]
endobj
-1352 0 obj <<
-/Length1 771
-/Length2 1151
-/Length3 532
-/Length 1713
-/Filter /FlateDecode
->>
-stream
-xÚíRiTSבª¡¬2©¤j=,Œ‚4ÆPÀ0"FÑ„I‰¹7ä–ä^z¹¤ "T¨Ê²ˆ.EE©°ªÔ¥–X…p"­"<ÂòùªUpz¬««ôç{¿Þzçü9ûÛßÙû;ßÙ ·Sã1Ž‘Lˆ AT*8€:s84#ˆ@$ŠcÁ
-H ð+uÀ]8|!o™Ç§1@žj Ðd5 <‚<'H| Ò"ªT`@ª Õˆ–ª¡Th€ W¢i`‘FÖMÜHë4„HG` ‚
--ª1üÁÀµ©:!€‡›JFÞŠ“"0ªÓNÍJH…UŠ°d ˜Ðrgù[M£zŽ@I¥¨š4dG0xªÊ¿Iì`ñšy¬×_;™ŒP )7¤"€ó'{2†þŒ)“Tâ8,¢ˆÔ~wJ˜Ò,Sâ0Š%.Ï(Ba QCDE< ƒ=@ô”b6 ÃIê
- œÉ*œ Mü«7°5HZÚúàvòÄìQîM`Z` ®Ïd.ã&—Gµâ,÷|'û/D¥Ž ŒœÊ w±
-¥<E=¢¤™oâJß­Ÿî;½½&'¤ªó˜­gÚ|ã‘­íç·2ú²†z}®?Ë‘~wÜæø)zÜ¡d8ü6¬âõÑO‹²L™2ö¶G“½‹gÅ~ÙŒ‡Ê¡øÄi—ËÚZ?ÐÜqϼВÚèõð÷gwÓÏÛÖ­ºñ+éÃÓknÝ|õ$'eSGŸÙîkØ}°„–PvfÕ^$êŸw‹®Ž?Å«psõå¹ñûŸ9¿6Ó[ït§Ü¶7
-
-ˤ67Œ~/gq<õªþt e¡9¦T°R&œ9ßûzT¹X}èçfŒñon
-—þ6s ËS0àf|¿[’—]-‰™w¬ÂIY3OãZM·Fê[×·hý±‹ù–úµyN)õ\¿b(µq/c]ÒØ+Æï‹vNšðâEïó7…ô–‡ÊL7+×Ó¢½|¤{x y¶sè¶×¾0¹Å*Ô_Ý#Ea½v+
-Û´?ôg5JAŒàF®ËÍ£_¸›¹´ûÂ1í¾ò¥ë½¾m2í‰Ñ[ b/aŸôW>ú×¥–ÂÜDqP\oÒYù-¯Ëµ ª‚kó§'˜šÄâªEM3ñžÀ¹nþÎó}g;ˆâ-r Þe¾Ø­/z >—åÄ[p\è}°û¥ïàÏ%‘¦Æá#Þ rl·ÌKÙÅz _šéó›ÍùðÚ$C§OíIÓs–ìƒåY̵ûRŽ×„×l× fí=&¨Ù”g{*júAUF:ðMÏ–z¶16\©}L:E¼¨Lb±g[Z1³œËLçž]³çŸüºÛÿȺCÕ™»7=||kù‚hB»þž=5äó’œ7[GzBuvŽ!MíqfìÞ1ãûPÁÀ–s‡uî~1ß,öo¡×]øÇ芵L®£JžÉÑÄzX÷3àæJm­ v±\T${˜]MRçï%O]1Ssjáv1É8üêdUI;Çҳ┷¹j´RˆÉKNk–ZM»3}ôI‰«å±ùàµ0~Cù.8àvEÄú‘Šq¿»]ãº\ç+ÿžY&UIßÄÉö&ÍUeôs2šºJç9”냘[ϬÉü’ûÕéÂÆÍVsˆÕ’ø;kuûöëÎWâìµÐ–hžûühLGžÍûÙ+éôÏ°ÂÅu£úýua¥–¾£;/eD~˜oºëåZRòÚ:6ªn°Ýº,þ0WèÔ¨l¬/Üs±²Øþ“(MQ*ÏS¶ÝNܲrHZ×pb·Ýè:«¸kv~óŒù;7ÿâòxIº¬âëõþçùyéQçļ¾€Yß»/,R“pböÉÁ¢êƒÉ÷Bz²žüðüžmðÈ¢'Ñgù/,êÞ3>åÅ’¡+¢[­{µ]š¦êÒü=ÒÙ5NÞ u8Ü~ExÍÁow{q;ﳶ1úòåë¸SK]¾5$AÁÝ…B[VeÀØ‘<Ø~uo£S[
-(5ˆ‚ q­‚H¡ýN4Œ®endstream
-endobj
-1353 0 obj <<
-/Type /Font
-/Subtype /Type1
-/Encoding 2813 0 R
-/FirstChar 60
-/LastChar 62
-/Widths 2814 0 R
-/BaseFont /DFOXTY+CMMI10
-/FontDescriptor 1351 0 R
->> endobj
-1351 0 obj <<
-/Ascent 694
-/CapHeight 683
-/Descent -194
-/FontName /DFOXTY+CMMI10
-/ItalicAngle -14.04
-/StemV 72
-/XHeight 431
-/FontBBox [-32 -250 1048 750]
-/Flags 4
-/CharSet (/less/greater)
-/FontFile 1352 0 R
->> endobj
-2814 0 obj
-[778 0 778 ]
-endobj
-2813 0 obj <<
-/Type /Encoding
-/Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef]
->> endobj
-1335 0 obj <<
-/Length1 1624
-/Length2 11252
-/Length3 532
-/Length 12119
-/Filter /FlateDecode
->>
-stream
-xÚíxePœë¶& ¸Ú¸;Á‚[p—à4Ð85 îîîîNpwwww A‡½Ïœ{n¹¿æÞ_SÓUÝõ½ëYëYú®ª¯©È”T™DLl@’¶`3+@ÁÂÆÈÉQÞ,Ç$jkm¢hdmx>!QQ‰9€€ [°8âh‚L
- fkçê`afЪ«hÒ100þKò—
-ÀÈõŸÈ›¥£…@ýöà ²¶µ³!oÿ׆ª 
-_
-0™"±(ØBÞ\hÿïºÌü?×äÿÿ4ø¤½ÿ½æþ{þÓ%þïÞ秖t²¶V
-¤/k`T\§§‹íÝ@€]QZ~®w¥m§Wrðo™áSU
-ºî\ÌUêVn†]_ý"Ô”cÍp÷ó¹uXm.VÝÍQeýÂ'xâ_­ç¿é¼)œs½q(ïìÐ<“j£pÛ0ê¡°ªóŽŽ©ã~ßÑô ôw^Âuï2dF!R}v†E¥ó¶Ï$ÒV/s¡”ÁDÖùE¾ìŽêâÌ MºÌ©œ}‹9YBb]™ºý^C÷§"mÇá åPÛ{ö»XPð´Ó1ðegçB˜ú”žpDØj]Éy&W¢…>**g›çL·V醤¯‡¬oöÓŸz ƒ—•å4Lm¯`o¼.W¯9ú|Þʆ¿Ñv. ©Ô¼~íkLMÀWrôêk¦ÈiÂ~©ŒK© Kíw¢ÏŸŠ ŸÇ}½^ã¿æ²—BÔ«¸<_g-wªðÄ·ì ŸCRkÞµTå³u‘£»ÒéðŸðˆ«)unG%E="Ó)­“%KÜ_½‹¹„È& %*9, …’Ö¶v£†íkEà8³»haøâ4-ï㊚*êFŠ+̈”®•„I÷\é˘eœÕss×·”¯ø•«ª•!´¦2cí7Ôaý¦"!šÿªáçÐ…tgšòî¹·þc|LDÉ\‰¤ÈäìýYX’sÈùƒÆwe•x¿µëSñ«ƒb+½:’3¥”ª¦åiC·IA(Om”9ž_-­í•òÚÁ¶–— žþœã®°‘‹s§É»™x§J¢àÞ‰9²úŠ$cÙQ¥R›Æa†·îk5Árk (q€O^XÉ#
-Ö%o¯ÇRé «Ž*í÷ÛŒþØ©§TZ"žÓr‚¸ÌñÑ~÷FËO,£àBŽ¯ýÐ=ê±+¯×ïˆhÓ”‘ô2š$ÞæJ•œE¥ œÉ˜®‡‰z<ÒX?w’¥n°@2øÛ,g7wå‘Nè3™ëýmäƒS ¯yèøN½¢Ø¯K>™G
-D<ð±ý.¤ÐÐ2Ž)—Ä=Z%W\tõ߮
-¸y´á+û8pÚÇf­$J ?®&NÌÌTü%þ<Ä –0&uÿ [?æËJÜ®'ý
-¾®¿BD™¸?7””O™¢×4¾CEsqa¨¹¡ y³äÙµ±¯ÖÀ¤+½öûSøˆÑ&3¼ËDl:—´s•n wùƒOYeÞþ·/¾RB#cŒÑ˜àc×¹Ç\ .ÞMJ)ª6¥
-âë_G€ãü4 _ëN9£û‘@§4@d^Òq·Í݉Å*ƒÊã(·_–-ùâǥʃbÐÄ»@e ÷ÂÊ6â]aî{#õ¸ ‡eà%pû}M¢'þQ]Ö @YålY š•ÏÏÕ†„vBF^ù+º“1m§Ç$"Ú0Ñ?L«Ú +éIƒóÍÇ)Õ²ÁÆs}ü¿
-
-Ðõpe¢°®Ij8¦YnU –é…Ψêk=<ñ¶r¼cô:¦ñïÎÑ3~eâ|@—‹‹{ %k,ŸÙ—ÅÀbmI ùÅýH
-¡b¥XíÜ®[këîr‘Yê¡Ú«A(üÚ“¿4¸ŠÞU—Ì>ä°,ò3M|xòã Tô7Á–tu`Ã71'3¢1}ãA/±¶æÚ+]Ÿ¿%âÅ]w>’Dúg9ͧ¢xF3<¯!F˜¬\ì:É æË{,â–Ù¿¶m—2¨˜y‹,‹gëŸÉ‰mUR‚ìíå­ÄON‚vyÆ°CÑ¥˜GÕ+Æ`vVÂÚ)ê4s¤‚”ò#æ͸1‰ r/™ßIò²Nh Øoú!uçÚÊÏ~ ¯1Œ7ˆk9ÙÃ5 SªþáiÖžW¦±ìÚ<!ŒóåIq)¨ÚßéÃ|•Í‡|Ì+ƒB§’É )[‹8YåÑ´VoÄ×° n–èͲp% ¬†Ço„X‚ÕÅ•§ÂU«rʪF¦FŽ—·Ýé,öü ü+žxMœÐy”É <æ$rʨ\ zC+Ç»p°cc46Os–WóY­½ÜøùdT‰Éþ²†ÇÛl;eùý ­éÓ'd8WYèö„34W®ª/ð̦÷õÃÐM£—УXßC¬­Ýœ1»Gül°ª£Xæo¤`Áª+ë"»ìYX…{Öß08røú6¶ÆÚ-M"(’Ì`ê¸:Aá
-¿ëg†ó(ÄzZM>$甃Õ*/œ_˜Çk»üs>sàráÛü.$Ûr~@4rÛtÑfîð¿¿äbNþœ©zEðlø¢7‹)õ ¸¨¬¹‘Nåül¤:Kb˜ôÉ‹ÍÆòÕÊÄ«_ðA”%3ãáº*ȇ¹H0oO혙±}¿Nv‘;3’6Ñ7ˆ ò«#úBÅ®Õh ÄH‡)¤@r†sóz±]$Wy“­ù¹{?á¦ÎƒæÒKÐSÃbª´+оR€$ÕÇ\e¶W¹go)Ú“Yµãš´7ç›qâ#I…ñU:'.r@ù õ¼hšGRŽWy@é2 AT
-ΨáíÚÓ+b7Ðk8B½4ÕE7$Ji *”ŸAQ@k—ÇÎR·©ê Qœã”=ÁÛD=who7U î{>Äe'¾oõß¹,tÕ¯¶r!Ç—ÈÒ‡š€öíÆäÞ¦4¢C~¶Hí}NYù†?H $§ _”!‰YzVÄàJDžãËlnË‹ý­’Úë1ŽP~ÔÆž|½¢ñˆ);R¦¯žÅgÙ1F†”þÞŒS8À;Y²›˜áܾó”d¹š£p æÙ¾ê<rò,2³¡xB‹¾àÔؤ zäïÛÎ;àÍk~>Ç]"Å…›þ¦îj=ûp-
-Ä9݈[lÄgaœs6øßwï ظY“AóŠbÜ´Ú‡F™,èÔǧÁfvX°Ô‚IX÷åc?ËïA eÉ—«
-° Æ›Á#âÚöÇM r|ÑgøZæ}u³­(£AñS„J؇1N•RÆMö9ÝVyðL×£]²šòÃO³5ÕÉô@µ¸vÓùú×x|ÕgÐåŒt ¤^õÞ‰¸A6(¤ïâ¡Tê#ØEqðIÕTÅ¢2{HÉ*±
-Ýhâø¯H¤ÅÈ)–“âÊ Šñ#
- Û¬´–äx¾w®›ª-éè‚g•\<%ËÃ~`–/\Õ?¨b‘’õ+öxJ2N½LSèsc“>nmTé2ëìÜ?d]>øÉèâtë;!J~á„)| ´hð€WΖÖISÀÌt:5NÉomÍ9êlo|ý:oJåhY´=î#.Oû¨‡(*/dïÄ’cŒ’Ái£ Í·lM[ËCßóª_ø0Šý¹ÞÛôÊT¬¾ž=ÚäÇϼèP/©O¾†ú+b‹-b“CFgS²‹7rÑuÌ]~Lj:ãÄ”µùII†„{ç„ú®B(EÑëÃ&TžÂd@ñ¯ô½XÃ#¢qÏKžùö–‰„û|-¼ê[¨n_Ø0‘MH»`Ó†ê¢Z. JšÜ…[€©«Ç§BsñB©»>wÝ=$*kƸ¼ „Ö+ãÛmIŒ’pœàõrš¶ ¶Y;5té>¯å5:‘OjQ³ {÷
-?v˜;~Jr^"ìž}0ýª£HZä2=Ô&sËeD¶|£—øqïxL\XWÈL'[¢x!µ?ì
-ÛHØ™|½,µßzðlVz7¤ûd•Ïx7øóCvß 1YniŠÊÆI³ …y%"ÿ=bÔœ">ÁÀü'=yí¢eã—ÈÈæ”U—D©IZ\pcLiÿcL…´
-lÊ©4Ù@TaÊ ÉvX-còtéÛDÓó—¡S×4‚º¯ …´14Á:÷ ˆÇ6•_û·!ïôèì.ë¼Õ½Ýø"}Én’0èfeT ée„­‰"|£:ß?wV°>‰c¬Ç^µÛ­Ø÷PD“‡sŽÒãS²d£«a"ËàŽ°«VIØÒyl-¢Ð¸õ½ëȱÒÈ:sø0Êî°×ò¸u\ÍM%¸$¼Xi£!?¸„øSâø=žLÌ ª±»»²Œ¤ˆIÅHªÔŽ.ÞâªÁ2;Ý]´ÞU ÜóP†_aô·.Ê…ï·Ådp7ÅÂ
-k병-.€í9ž¿L&šš ¸£G÷é6?¢†¹^SÀŠMbcÏ7ó¸ äÎ÷%†
-¢Ý+=°„ãðí…>sΡÌÔ‹ãåBgíâï°ëW~“¼{井²TgKW±s]gÄƦ‚Í; â&Yî¸ý s\ñ°î~ÚŽ&yDo·ÐC€Ë’,JKºAÇÇŵr§Q °´åàÞF4tÍ5aFD5^È}ØT‹e!MÛ•K}Ö¤œ_P{ß~197ÿàÚ"“¬^ñá.¡dlˆMqã¼èzïësÒ\Žç%„¬²†}jv ,¦ºD§ b"¥)ìÃÚ; cgÿðjþï=pK0˯å3 }ÉüË4&“¾®bNfþj QMô½s·Ü!;Wª²ÇwŠÛÔ„ÂFÚAüÉ f£þœ°nÈÓjX’†„-öÓ¤Êk Œ}z¿gËmêon¶ÅsŒ_a½#}AÆßЖWWWW†×‚oš(ùÜu• ©uKË©Kiƒ¹T28"É…é…¹´ánHbØ#Íö~¬}µ“‰ŠMÉ*·ÒêÊø3îÖÿŠÐ·ý ?ÞÀR0LA™uHA“eãƒ*£ì“dÊË\YÅ~ô¦º4¿÷Œ«¡ ±OL6›^‘" à©êìΞÞä#Dø‹„l÷Ñì6 ÅÔ]_7ºÌ®D¥Ê
-_Œßåø_Oáêù0­eØPTN¡TàÞµ]wÂX›ö%7-ß2™û•´Ý›×|»ÌÖ%8P Êß”ú”PŤL×{óû=ªáöù;H4×OÑ5¯) à°”•ߧÔþÛÇQ¶‹nŒ"ÅZÓ
-Ð&`ØlW¼w{oFÝ÷‡=ÁßCò{z©¼'Ö„+!“ÙŠ=RÉo¬Ö˜ÿç…Ë›2w€Ÿþ¢>‹Ó±c“Ū°´™ÇdŸqLCyÓ …$³¶È=B+Zäü‘ÿ­[G’€kÏZJ]faO½òá×ÝúLæc?£nè×”LÚ–´.
-ÿž. ×“¥’ ÁJ™8ñ*éûº‚Ò§á)v9ÜkŠ™”úîõºô!Ùé^ÞhÂÕ£öcèmà­~(8vfá–=2c˜´…4Š>æ³hõuKéËÅ1,EòB|jiˆ-ú)ħ|1¯é½Æ!Ml&Øñ”ÍONÔ§H[àÈ:eVT”†ACÏÙgîï³É©LÓyn³€CBKm÷¢¥.=kƒ õÐl@Ü¥ã6òïI'ßßýô]”Ãã­²ù õÓ•³'¶ ßOótBHäëpÀ‰µšôn
-öÏz¡ªÄ€CŒù|®ñ½j÷ã§íÚ¾>©*ýfÀÏŸµd†ñô$ó¯ã " ¨s ‘‘Tèó÷}(¤Xn¿~}B-±œ ªm|búš`Ôü1XV±ÏžïB{ šúÚ;–7\L`™oƒ
-ç„œ8•õýçjÒL_y|9gfˆ®#—Ϫ¾O“ÖøË ¦ü²C+˜cIBÈ °·Y‹~,†{T“­N*e÷çwB¥Š|ÇÆmÂ>B,ô1eQ„¾þ¢ön]…毶úƶ-œ‘
-¥Ìò*<É5ŠÔ7Þ«™ˆÁ_P^wqž§Ä?ËŽaÂœ_ûÔî¿u»wÄFø¨A*õ‹Êe…¡©ðÆhõ}¬—SF‚‡Î
-xuãÀ4£C+Ý¥‰?hŠzÑ2AzoÉUÜþx.å3òO,ÒÚ]˜“*½]4O¶‡‡H¬Ê¢ÄÄÕ¶.y“nŒrÐ%¨ê#cúÌóÔu÷mÀüfYì×M,fÑîÙÅì㪆›ý6«ûÛœû‡®÷‰t29ÈÂЩÝíTg“õ—1›Q)‚¬ýE´q*(ôƒ#€Un?OCkaÙÝ\FÂÇÎX¦èÞ
-5³Ï.]Œ>ø­¿£, -î\yªbñ…v›ûÛ®-.‘ÚŒ?2<
-û)<»Ï-Ìň¸áøÃÇF®¨Vö^ñV% ”š¶Q‘+`µ@–ü=?®Ø —&òÜ’Ü?XÁT~ _E»Gmx9[P­¤€zPžÕd¡ƒãRÏ\OÊcwøh@²¡ áÒ¬-DkO¦=p4)OC²¶ ŠXÓñíUÎd-êóA&Ó…ÝžºÉJ-ú¬ðÆ—5šãuvä…‹FRùIÅ©¨Z7/ƒ„k¦7‘!Tꃵ=Kßò;]d+gO±òâW‰;};ƒ
-eïÏùѦÈ4Øk’ØÞ±Ô×äÖ¢HH ÝÞ+†¤fÝå¯Íc –«<}³ö^ñâi“ó”RÇR×z.©ÙAeJo¿tW 1¶¤ˆaψ¶9ÖK]m(Þ,唘¸?Qw†çÆb°.³û HëZ[îÇN×N¸ÓÏ*W +,éâÌ
-ÿ¸ÆfMLhˆ ¶9«žlßgøi>ª¶ „ ³"ïG"~D&]4ª³¤n§Bú †É»sŒ^ö.Òt6>M‚kZzH~w`êVU:wË üG‰úçè ¤½DÓ¯@Î#{Áà—¥…?&z —Ý¥-"—ÕkFQÆvÂ[vYf&»Õv%îGÈ·›óÅ#H¼~æë:‘_$¢U‡<ôÐdØ]Ž7hɾŽ#;E’²:ðãmvÔ
-}zÝÎz¿†Arqˆ{I*_ÛÌ9ŒnOdÆ|jÚzó-Éó-eI‹žmÐæ|»ô¬Š·ÿ kï…rÜÚjönLR¼ßÔF­*8ÈoAõû%‰ý›·ß$RC„:ߘyÁ•›~Û ê…J'ÁÖB#÷^ÏÀ}W)å¼…nšÌÈ>åĘj€Bv91†b
-–øÁæK7g"‡æ֪ϋÎÏå0öø¨ö="–‹>¦ç*ÑÑ"ö( ½æÊÃ}3“jëëc7{ör1½5YIG`Ñ|á´£ñ±Í=Gâj(ü¥¥ Êe íeƒD5±Î§ùöG{lD•)æ5Ue‹ú2F>±ŽÜ¶aëW!‡M­ÐÒññdÖj((ɱ(„‰Ô‰ XžcZÌ®üg¡º®A¿³¹®nË$ýJ˜e¯nØ^¸%ÃHXtH-Á'Ø¥ÐMÈkd¿‹r¥ÅMœŠv^vÙ»Þ°‰TÞÅ°ëá@¯dŸÏê ™e{ž9w¸ŸºÑ2ÌÃ4ÃÜ·Å×*!´Êaó£Dž÷¡|5¥Rõ®4Òa!Lª>]öCGø\Öçôù&V?ð~ÄUÂü19V?îúEìÇ@·€†U;'ªe/í²­r3=›&£§7¤òZÖ“þø΢:ÄÉAë+ŠßsÝŸ`wØÁ›"¾ Kínl'¶ Û¥VË §Èí&/„:ïN(wX’Bç6YÜ{Ì#V; „lú]¡à\O“Z8ó—¤>@%ÂçÎ…ñNŠj,[–ðöžè2ÿZ¥ÀJèe½üNnš0Ç[7·×±¿ÂWü‰J
-”7LãH¨žÿmÒtƒüûÔÏÅ.Û`–_Dgç3—Þ¨ÍÜ®®,=P:>ãËt—sÕuL*$Ýs¯¿i¡ÁyÂi®6#9š3}3ôŠ$ÍÜ<>UÇótôf¯­œ'HF ­#ÖÕKw$©ÏbùBeáù([Ó85=¥†Š£üä
-ÖY9Îü`ÉÝ4Á’k;÷¶îæø`ȃ#vÔ5*r>c¢œ¥ö³hòwNkCÅ÷3çé.èÔS©Ã|©ÄõÂ0dAEóÄ\ÍH,vYíÉs_‚ÒÂé>˹fPwË&B;lû…f‹ñÝ6{¸ùíÄ¥¾ÿ ¼Çg\7›-jÿÔ°·†i~>ú™›Îuù6¢ÿå×r®›-i°ÿçÅhÏp 4u{ýËXnÒEô¨Y†l<Þ«`[Mèø÷MgšŽ]‚½³¼_Kοywø¸Á÷A´J’T놰§—Nµ™DŽ;f£¿ØûüP2 y•Xm#±6jÅ;`ÔV_ÚAéÀi@g>GëÍÌSòK̶UÐó¤á¨-ReŽM‘Ž\ýè¦)›L¨³ï-šÝI†:»lŸ^>k²“ú¼œ¼Ågä<\F-U:üDˆ‡Úû³qEùÅQæü›¦UBw18„²¥àÉŒ–žyJßÊ
-ª²´Æõ÷>Ö눎í•Eâx¹èµäW<X1é‰þ¬'®†{¥#Óxјt¨LUÒÒŸ3”Ï´„6¹wrøxÍwÃò†¤k²Ä͔׋–è:NÓë¸OKî¤bôÊêFmH¤ã\Œ»Ð€&1nÒ^M<úJiÜC+W˜‡D- 'X,þr¢T ßÛek)}sÊKI‡£à"ç¾›OzÕ¯
-c•|z{Ù†B ¨À‡·íA?̓9¨„&Þ¯žg¯ƒQÞl6…²t1£ Â[€DÕÙ°| $–,㞸. yj;ˆO<<¡u«"Vù!C‡ÛÆî7+cÌ.™ ÔHý‡H¯F'®¯lšöÝ) I³…ÕŽ"î…µÄÛ¨¿w ù££ÍŠ(É¥ØKhùŸaP{‹jáÁQ.’OHÔÃñ<ˆìŽ¥>Þ¤0á¸mïÜ„ÏuìTyí"›Æ£]C;žë­kXÿ›¤ÿOðÿ±5è
-endobj
-1336 0 obj <<
-/Type /Font
-/Subtype /Type1
-/Encoding 2807 0 R
-/FirstChar 35
-/LastChar 122
-/Widths 2815 0 R
-/BaseFont /NBERZJ+NimbusMonL-BoldObli
-/FontDescriptor 1334 0 R
->> endobj
-1334 0 obj <<
-/Ascent 624
-/CapHeight 552
-/Descent -126
-/FontName /NBERZJ+NimbusMonL-BoldObli
-/ItalicAngle -12
-/StemV 103
-/XHeight 439
-/FontBBox [-61 -278 840 871]
-/Flags 4
-/CharSet (/numbersign/hyphen/period/slash/A/C/D/E/I/K/L/N/P/R/S/T/Y/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 1335 0 R
->> endobj
-2815 0 obj
-[600 0 0 0 0 0 0 0 0 0 600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 600 600 600 0 0 0 600 0 600 600 0 600 0 600 0 600 600 600 0 0 0 0 600 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
-1327 0 obj <<
+1332 0 obj <<
/Length1 1630
/Length2 12198
/Length3 532
@@ -14066,89 +14071,86 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚíueTœí’-îîNãîîNÐ ÁÝ¡±†Æàî‚[ ¸$¸Cp‚»{pw¸|ß™™3ëÜù53¿îº½V÷zŸÚU»ªž]o5 …ê' ™¥,ÈÑ•…ƒ•]ðè`ææ¢ rTbQ·´vS1³Þ$)°¥©+ä(mêj)ж´
- ×T×f`bbþ§å/€™×¿#ï‘.@kG
-˜`KkS°…½¥‹Ë;Í;÷_·óÏ>ÿ©{S''{¯¿£A{ýG @WK{+V$Î÷œæ®ï¹­ŽHl ‹¼£ÀÁþ»…›Ó¿cî–à¿/ˆþ¯™ax/ÂÔähï°°´Bbûr}O  ÿï©Ìú¿'òÿ‚Äÿ+ÿ¯Èû?÷_5úO/ñÿô}þWjY7{û¦ïð%xß2 €à¯=co
-üµkœÝ,ÿ¯0S ½×ø¯ŽÚ–ÿ(ößøþ–w5}¿ GëwaX88YÙÿaºÈ=--T®æ6
-zôÙYÙÙ9
-G–f1–A‰°9áZm|vjeÅNÖž^X¥-‚¤a‘7°w+}÷ôqâ¡—vqžÈ• )
-šQk¥§”æLpÌž8;¿+é‰?ÝÁÂä‹Ì© 'üöîÇX»X•¢¢­ï ,TË‹¼v©°¢4)a½%ˆµT— é"ÕéHRDæÜa÷?}M»‚“‡ÝÚ ÖÃL—ÑÑR°¡Ïò5å7…ø^{E®êÄ~užv dR ÌÌU\.¬}¶`!Ø•[üˆÅ=%Ѹ3m4©$¢t¬ »Ôñì_È ëB«{J‰ƒÏU—¦®NBÈzN¸œ
-wôr®rl`¡©.Ê*Q\ÔâŸ7:’Y’µ›q:¾/-G›1Âèù#ëÀ•(¥jå 0©{ôšª_Ú’gÅ|
-l»>ÏÊÂôóí›QöMóð6$H3–k Aãm5Šk‰t}1»ü–’¦ÈdcÂ’txv³~
-kÉ8y!®løÅ‘Ðdª$ÂvQH?"ËŠfìSN2óõ%­0ºÖ÷fÜKF^N,G;¦‰K:ÄÇ’Çv¶/Á,¨*¶¥s‘ÆWùUD•M½p‰:
-¦¢‘H†©~J'O=é“«=/èWñ³<]º&r©õ\a:áwÎúÒ§/„YÛP˜8áiFOýßÓ"`e di¸ÏpzOŽãªÏsekrýv~›D…0!4*^¼C;† M˺Æô¤ü~ᘹu¸±7`èó3^r9Æpáóvýˆ±'™Ósóõx+I'|²1¨®®Érò*?+”0½©ÈýñÛžYL¡ú¥}ѵÒȼjW.½dfÛHû ~“õ=~# ÆR•ãÄÃR{±ˆÀTèq£ÝáÚ g *¯<©
-OYS0Xµm¡„sˆÅ»ŠC&?ÐEƒUtÚ¾BiÑþrDm–0;{¼ADwm;€N5žz bÀLˆmª=° ÄÅÁiuѧ‡Ž£Ÿ=^r)ê¥Îý³w•M'ƒ"ÀÈû  €™š>‰,(víkâüsÎ\æˆ<}z‘eCx± 朮äyXé쳈
->‘sB+)±°¦pšô(;¤v“–±eMÎE¢Ä~.¶áC¿zØ“2ûgÞëiIoÒ‹ÑÇ2Aò´{!±d:X\Âjá´…¦0ibb¬¯‡Îi8½ÝIç9m7™"A9;‘G勇¨Z?qq3:,´ŒwyÍ%ɱµø(­M¸0l
-GTtл¾ïGÃ9ˆ/¹MÈH£F±ŠËûÝaÎŒÄ7­såL¤Q°=þæ—PfšÇŒªfdjœ_Œ“‹ÂYõ§iwV"œQ0XáRyöÑÞah!e5Ŷ'Ê^”¼ŠV­Ȉæ¡Î=±L>ŽåÛËê =_ϧHUáï+"W-6 „ƒÕc’)õ””ãˆWaÌiÝÝÃì}¤2©ëe§c tMÐsÛ#&Ix²Ñ Z ªÚÚ™O¹¹JÍMç…e=WCŸ£T*bå4ÈËü_–­3š)¹á'†8Ý­„›HÖã\Ÿ$`}[ŸçÅ5Óyô©Ó¸7Ú¹4ÕÃýÙL;N5–œ§ã<G¢bŒPfÚQÁ§”`ÿðµÃó…a”x¬¡!²0HQ7ÜŸKEô–nŠS‡¦OƒÉ"n7™£8S£»xuìkeñ(¬ç{ŒÝ5{±ç.i÷?Ðd¾“دèñýÐ_nm×q€=ŠLîV5¥­ò5æeh;ö|éõ ­Ù¨ÏøÖ -¦½(­£*LˆçÏ׋æø¦‡õv[=†q;æú߃} .~à¶Oš«Ek.}Áqá¦|e˜íK¢"ïÆï¾Ü§PWÛÅ¥þ‚滆p7§¡þØ4òbEÑ&Ç_JHïÀêýÖ¿¯ õ9GâO5­‘Dz_úÞ.ÿr«ƒœþ§xäÜyåø_­Â²/#XnÒ÷ ïW˜ ò¢æ”J?‡†™ßœ¼cNµÎ~lî͆MÉ=µ‹Ðn¿Lø9“VÈ\
- ª~º`Ù`}ô•×rÜj¥Ìg‰¾öB}Š,'E/¼‰AàkÆðæ!r9KŸ.¥Ü\~B˾£ÅO¥I#
-2Ç—Ž.vŽBglI¯Ë—:€‹ËÑA
-ŒlÌLC{ ¯ÚÆ1*4þ³u«Ha1½‚6CÞ¹å ê^$•>äN™-¡OsÃÀH«iËb³—¤õOþÑ:”ZÛ„ôeŠ%,0XÈîÛ™óMas*ý¹±K–%„]¨ë ò½&é@¾¯®
-–»Ñ«¤ße+©Æv}%Dý!BÛórãÓAT^°üUé„脲ì@È7”ˆÙ~åGè]Ìd×Ä)ãÍ$ƆJ
-ÝÑ+¸TÉ)©ÔýPí)ˆ¥æÒ —–€¦Ä’ÛEÇØ:(«„>ÿ½­ïÏÚªÎòžÛê×ÓÍ6qî'z¥-ǹMîÔ-E2Á×½:åR%¿¥?5袪*ôIü¼ Fµv¾PeH`_ ÈtðÞ• ÏX@+€ÜÐÚ"03|7Ú¢®ÒÁI”W?_éq0Õk¡¼}ñ؆ƒˆK]e_cgòð ä1WêF) …‘ž¡hc¢ˆr;ºhíLÆkÜ“td20Õø±_
-üFùA³‹F-ªè+ú¡ÛïïÈPŒYº«Ã¾$m7 LŒQð(xsQ v²–DÚHϦƒû3Ø"Å·ôT¬Ò¸FAØ ‘K4öFJïlJ,*¯¼F†§ Ççêk‘}¡nªE§}NOëG|1Š¸sÒb®hÓh½KÙÔ† Ì-%Û°1ë"­m½ÚÒÁéçš2Ì·åTó­ËYÙ
-ŒeaBÂY tLü,WæFOÄ̓ÊüÕ=e[¦™ÉЭ9
-dçSk3Ä7ìj¾s>—Íw¡l×h‹Oœ\L 4€wéد¶¯„˜‹¾+Zz ùv#Æ-}ÅúlWüê+îÐo€þöh˹}ä¨s!¬íÍJl|ê³Îìx{fYý*0#Os¬tmn"ð¬¨üN^ÆÖ0V£@›_ªë²=ƒXñ¹£uö¥N`Î%„ûS¯ ÎœE¦ý‡zBá•ü»qµ[<­îqBýE¡%oDU±Sw¤˜ÀïE#-´Ÿ‘½ ¼•Œë²9mpòbû¸ú[‡yím÷ôµ¶ðüÁ;>
-Å8ÏJ;¯xð²r~ýI
-Dƒ2=7´þ\}Åf{2vÍχ{­¦óÚ!YDž©j 4íÐáÎÆ)JƒT’Ž4a ˆJÊ„Ë ãÇÖE0á/U
-ÔÕbìÔkJ~,ZLøAÒ‚´*éjô»XåÖìþQh{5íAN<ø•|é1*¶—T‰þ ¡©DM€ÚA2•qQ.©'÷ ø›§ÅðÉ>ļtÆH×8åŸ äÔ€ŒN
-ÌC=Üa·Þ±û
-zÄ}µ:á?Qãô‹ÙX£ŽS+83¦u6Dx@±[–èï‚[-^ˆâßëIÔ¸²z€Z«BP‡»‰EÍÍ»f䧓Hø#?ézߥMóÃœòÛ©Œ'oLH‹ð„ö)²^¹±à/˜²Ÿ‘¼F"xAà,e(ôk°.¼^¤Ÿd4Z&ª€&ŒÓîHgCGrZHÅ„o=ô¥’+nø›
-(«ÅQl¼™½ezžmÒ*ÁRYòþA2óé»pŒþÌÑþS•òÓvëÁâqhtøð™ô
-+{M%¡„÷É-ghѤí¸Ê~hT”«ïÛ¾¬¶ÓÙÀ,
-ɇÈ
-à ¿v’d®oì@Ç;‡cM».VÍŸÓsd\«Püˆ
-%ž‚qýJNþd=øˆ"áQß$ò7JQ‚¶KEK[†üPn#¦ÕÛ5¼Nž{î/M]²õ{oú³Š›‡M%3Ÿž~nEãFäü…Ÿ[cƒ¶º U»Mw~”–pM3’âJA©OlÍ?Yö
-éi<ÆNÉßOê.s}Ëï°–<rnCœ ÍñÎçÌ`ñì¼rG7.ÔsG_í›#6¦ðêþz"D¨:mÔÀ~±ÑBsFš?'µŒÎÛîudÆz¸n.çÚIh¶4„–*=®—FåÓü@3ÛœõÆ kÆæ]tiÿÚ1êòÍ\…óùãj+3e¿ý“a
-Œ²ñ¯„1*Ýê-§ˆu«¸²ÝñÑà¡õnËí}ÇXA×–¥ È¾J[³W™Ðžúœg(DœYT¢¨¤%•Gvç[Žbª±³ú>|Í}vk´åÙeñ¹Ÿó\\Žã¹Wúö°? ‰§ºùâwDS~18¤”ÒÝÙ>
-üà¿#pîpÄ—°¬–s…¶’¸ky¸Ê£³»šzÚ ]Zî$sŸpÿì¯vUý­'tŽ¦c“è1B¤#ìÖ¬K¶Èö8̲©McÀG¬ò²èÆÙ=ÖD´fKßy2Ô ×l=kMuâ˪ÉYÔQûQi8ñr>Ãħû™†]­ëóõšãâà&óP€;„rW¨z]t}B ã깬>GûÑ[qCÝsTE-f+Jy:#ȺÊ'a ¹ø1VŸ8Ê‘°èÙGPòµ!"Š‡Ýw§0Ãv¨3‰Ìäþ„Ã=÷ã[i<:}dÈÖ!9?›:ôrj775b“2î«Ò+(W{Sù§‡Ð…Äe¯=áz1O¦)?^t7Tª»RX:%äDèW…6O8c$IÁ±xýá³nÆ·|õTÕYCitJòº[èF8 È!}—á²Ù´-(* –™ˆÇ†£ÉNIOK½ÏDÙS¡£X{ØqÌI`ghˆ‚·j.©¯sX÷ã—³”OIb»Ð\È tYfÚ²Cßh}m’¼™zwó=·>vÕö4Þ0 ÔÈ<wfºCéŠßäïƦ¯™ñ?Ñ´a+&¹Z2*ø'ÏGrŠ\ÇØ—Ùž× }‹òq~ç¢[!
-!øã
-ó(]ÝLœäªõ…ðC!àá?’H{'1ƒÙ$‹ÌœÌXO7 Œ®ÙLûX¯E´ïà äã1÷ˆûYº‘Ý®ìŽj#7™¹!a|Jã×ã?‰pÃo;óLsÒÏû:_­M.•uÀ²%bßy É<Yõ_ɲj–KDVÖ«„i0&|‹ûT‘þ¸â MŸ¨ #”(¨RæÖ®--“3?ÚŒµ.ò“Ÿ Å*ù\;õr°ca¦ò­””¬²7ÿý¡|ð,ûcé¬n Á"É·3Cu0üw|ÄÍÂG%¢p|ë_2—;\^µfEô¿Â¥uXÓŒñ·p3+MxKÅ>بY _ù¯Öe$gOÎë$Æ⻈3•MÏf™;oŠ-›‡D h¹¸êQ
-j*c#$Š•ø¾}Aú¿bLˆªïLŒ¿¢wž³£ ÕŸ–½z§­ZëŸÓœà"í!u½S“Š‹÷áÉÇ+ºzs»Ö÷’ ®Ÿ .c=å¤H!‚Ȇ?&73Éìl–Aµ*¾­ #]dàJ4ÂhÍOúá•]ápq3\zr˜Mj&šDØSø³XyöÃD HÙÞÑÚó:º Çæe´‰`}1K-‡$\ÛÌÎr^I—z¨M$9ÑgP¶BC… ʆË?ëz¦´ƒ™>,êÔnùŒÌ¿th^ôWàéìs¹ÖÇ°ŒÇ
-!à÷'wM¦è–ÎèP½ðûkð&&ÐûQËØÙ¢÷¶§ }Qvf/S:K¦\o¿hŸ4‹ÚïˆP°¼Q¤sûb÷×–úõÙ<(¯sU8¶tËB{üKæØiFÆêÛÄ›±Ò)d¸:uò½ÁÖÓ5NócáÏ6ÍÁóSDôO§)•’­WÙQjç×øÆu±U0~®ZrIÚ4*ÎÝü9ˆ¤š/kÁ[C¢Šç#¶ YíD½j„õ¥×8ª#J85¸LbE»ºå‡'›vÞ~]TžÑ•‰³²<IIwÛª“àsø*F Vx¨:χÓ5¼?¤ ³·ÝI͆–3ÆCŒK·*6WÒÙ
-½£Øé• ésûãA úIÕ #2»ÓŠ’„?eZF¨›íêp½µ¿hã—F‡<=éz梴|ÿi ™
-sÒ-çvŸš"ç«ñ¢q2À¢ªšäÁvƒ8¹„ÇW?ºI/4jûé-&;S>Øx«æZ—Eª6¼l9 ÐŽy:¸íV"ëow
-÷8˜6Ö¯!u˜Ø¡±ž@}Y_¦ŒW$5bìüyá}{ÄaÇ`Œ9ñ¤õ"®2ç÷´(/³èD8ˆÿªÒUì»@ØÒ]Ú!nµy(ãûEÎõÈ
-ÇJÏbì^*@vEÈXcæk3¤ÒWË3F„°0í;Æ·:™œd»Ïã°×²‹Š2Q¥"ÝW”ïê[b£î°)瘙{I³b-ÜükÈá¼J ûJ WJÔ}U[j×ì«tž¦#¥y`ÌpžÒûïÈòYb4èP¢zç íûrú\7øBcäqRItb‡ŸëNÌC¡£þÏ èþÔ¾œJ²W)o5q?#ëÆ–íú¢ ùÞšÜ=”«@UZ—š(7‘ìŒçÛêß¾ag¨¢” –Fâ¶Çí–*âìÇ&f"bü ä×ÓÐI1ðÊb ¼É5(+pGhß¾¬Ã¡®ÿU«n4P®48•@š!LnÆÇnàxsÜ8®dŸAÆ7ÏË‘© D¹Ó2…+oåqeSŸùð+û˜ˆüÓñV5¦‡K"­„ž¶”%Æ<FÙ‰*(ùWpÌÝô·û²ÍúÕ`u)ð8š2¹UB÷ÚÅ*lïdInÙÝÜÐ4Ük”ôÀnòíššLœâpzæÍ ÅøL›9àÄ¡]`QÐ,8óô}ël™ñè =ƒ¾ ?°ÞðxéVgS¿úÅ®ùE˜˜ÓmnÓÅ
-úÆmGž4ñ 8WÁHë0Ž ºNãR¯´4o©ÙØ_Oéë|Ï‚ªôÓ‡rÙÇjÔO8˽²¿€…þ”Ë#”¶«µ‰$ ýX&3³Fn“±wmãÈØGœô4Uu‡°‚•ÛÔîi¯/eÆ«Ô4Âm’ÇÆÏãé#\­Ã'ßÚup9‹;øôÈžb™Ž™0Ií¸³´ÏV>Gl0:?¾1 ±ZŸþ ;¶Ë¸ßb~ó¯E®âòðH›ê=!?öŠ§sƒò»|*þsMÔ;s&/€¥òñ£òè
-€Ÿö’_
-°>:%tÝÿ’hàÜåA®(E,FKrùÁò#5>©²"E÷èó9»¼úÌ$ÖdfGp±&â/yT/öËsš½ öÊmS;+æñd„}Ñ%ã ¯ø»Î¥Õ²ZTÎR:cí‘àÆ×e¼â•ŽËf_úy+§úŒ‚9Žr£Òþu!Îi¦’õ¸<¶“Ÿoö„b†™­Ò ¦€Ò‚7ö?$¢˜`ôBï
-j •Ûœ k3¦¼ï™F²žÚ2ð‘Ö¦Íú¦N†.!‘GÛt?×½U‰`Ùˆk«¾vØGn­aq9G´—• o‹ÃC"¢¾.œ\ýaÃ4Ù œ¶X~8uSÝs›]`ÉDš£ºžoñð•À•Øº)<8–v\гcê¶ã¤’”àôzÛ.”¸¹;ù\ªÓE`BFP墬ý&M azÍY""”݈ú v¤(´ëïü8ùœâŒeë¶ Q*ÍÅ£þ³GIçRh¯¿×øO{Š— ·?:û }ƒôÁ~ÿéi²>¹}Íì̦¾A25_6…½ÄŠZ*ÑÑž4ÆGD
-»¡Î¿FÍÓ8ø©oc¾°ü$¶<;¯ÍÔl"’±*³¨Ðf°„SÞuwÏ$ðÑ(Á‡Âé+8ï’ÛèTÍ•oÙ­Uîák,„ÒU8‹ÝLboº¯Îr§ô‹D ‹´<(Lêcv°\xš˜ncÅEÈÍk‰zh?Œï¥.Àí{Ê(·IipIw®M9FJÛQ¹rg"ˆP×ËgÝxO˜ËÚÛêp8…Ýk¸Û‡6 ’K(Ãùœc4ê‰MñÉ´²¯ÞÒ¬“É*C-ëa‡’y™Y0DÊ#×iPZ³;ñhäî3¬é×ç’ø]&?"4ÞÕ<Ò×ùùg›¾ýš45É©Xÿ-ªße¶UNOàΨíÆå•õ…@bŽþ¦½DÛš¶D¿ñ91š¸M’úÓÌ>gÐ5ÕOZ'ÇÔÍ2gµî_uØE(lü #È:=Ÿ~ô¹Vþê”ïô[ƒž×jE%zJéçÛX»8Ÿ7ZKØŸÎÀffך¢7«í×wÉp#–J R«‰»3øzˆúðþ`ÆÁŠºÀ:M Hdk#Äp‡Dê«l¿’‡béð«P[FÐǹ!;@ò×eüJ£Fw8 qì5ØÕZË‘òÉ’;4þùÁ¾µ”{í.æê~؉³™KB ¤T¦yxÓY‚¸!e{®«E¼…[.ˆœ€±’9UÇW)\ÇÉSÜî”O6^OX8û­ë©¶Öt1¯›Cé‰4ƒbþ¡ÝwfÛLq®0ó#üu~ä„ ¡Èr°¶ñBwÕ\¥,K›1q¿0V ®•¹ë_g_Œ³Þµq°û[2"iÝJ¨¤,¡ÙìêWgµÍ¹øÝU¬r•]ˆÉƈŽ§ËÜu¿2Î5öHÁfáÙüÕÏ¡^bÉj¯ðÁjÝÕ5tûñÎ2vljè¼üU€?~á4›‚eÀ¯ñ~.¬Ðfv–¤ÊO½“gß@Úé—W´/À…)‰Ã( )r¼Îyr2’LƒžÕº’‰cEòšª«®à[±6 JfHïÌÎ$å ¤/íüWj3ÈÒW<íõå¥7b#ô}EÖgÂ=g Rº‚JÅe×LÛƒ¬3 _ö6„J}᧘~[IûÜžQKxÍmJíB2)GMGìûñ{´ín~LSW2Ââ&­?®/ßÁ}Ò-Ÿ1ÛØ«ÄüXÝÕm^©“•Ç“ŠNÄ( >¶­å_¨Ì•
-5”0;vVÊ­‡‰\Û=¥Ç‡ÐÅ»/8n¦”².ÜÔRzÚD"‰‘$é»$3mXiB%ˆ#öùÓnà„u²|#Á?¬ 8¨‚ßK¬Š-Íf¡k®XÓ“ 2+ÀªtÙ¬c xJKÕUtêôÑL,qúòÑÏt/(d¹j¸ãyÿÏ÷Óáû$˜Ôq3-]ZëGœ|ø":R`/‘ Û¨B¸,ÑU8 ÀknϾ8JÓáÜÔ†]iÅ&ÑÎ8ÚÈ>kÆCÒnÙéØD0¥O K|ö,ØKùPëcú¸ÿÓ~§¶´5%D5=¸ÍžgP7“l† r]™¬%¥®Ê!EŠ]âþŒçH(FŒÿµµH?pˆpî8‰(3žG goaô9Ë×òÛót «Zø²&Œ¿,…Øç¼tÑöÐôD΀ qP(8XÝÚÓ‰‹½DÉO'69bA»
-üFÓ}UZ6²ðlRÛ
-ßB÷,øìõôàÞtKÊA ‚Uö…úØ€Ã7Ú—”‡¢ê¸då|%Qß´“¸6ÂqoÙãWí.Š,}U/)¤ÏÚ Ò°= PjcaÌé}V_[ÎQ`9Ó¿‘ #Ù ­Ú„é½Á6|-Iû}„ýþ—¶jl£¶%"åh/ã6s ï%F¯‹k/€¯¢‚BÔpÔÉ]¿O•Ø{I…O”æ‘»üéæ"ã¦8Éð uÛœ ýOÌŸoÊ8ÛÑ·MðTt8JbD?ÌOÚ…Í(󸢔s%<…ÌlGåšžÚĸº¸1}˜ž¡uæØ"
-ñ… ‡òÐæbð½¶õŸÝjSÔüCàâäC*œ­`E_™[‰ä,%R•X™«b¨!-áêS?ø ­$´^GªíëvH¡²ûI\PM_ø)c#!#Π¯¹ž=³6Ú°ú ?Ç`k}RƒÁŒfC©È¤“ïÌ{5ùµ<Eû»á°DçàÀÇóÊÍ›ï#üb ë× É¸‰ç¼§˜ém.ÍEì­ g:†´
-Œ:n/wùªb:¾D‰§ƒ˜­Þöª…%¼&z[C÷¼cÛ+Ô(Žö=7ÇöCtmÖ“OHÀbÞ0j],G6!µèik|GÐ÷é°ÚÊ~Øfóf~´ˆHn‚§§:vƒCÙ˜9žnͺ¬ÎO‰Ž’§&esþY¼ZµL†¾AE?íz¹¾è™AvX
-;ñŸ*Êí" þ:»,RñŵJ&¯‘JîWå¯ÔžøÙÉÇÈó<ƒ8 Ù!rÆ
-äwÞ8!¼w§š–³à0an‡Æþ?ü ý‚ÿ'Ìí-MÁ® S°Òÿ8 Àendstream
+xÚíueTœí’-îîNãîÜ%hpw§±†Æàî‚[ ¸$¸Cp‚»{pw¸|ß™™3ëÜù53¿îº½V÷zŸÚU»ªž]o5 …Š:‹¸ÈÌRäèÊÂÁÊ.
+Ô±ÁÿÝä¹:”µa\àµÙköÓËŽ<ãî`ž=]gšåi>‰Cwæ*m+/Ón›Q)jæ‘vŒÏÙŒâ:ŒÞv­ÝÍQU5£’g8ÒñV.0ÂÙC •{A õ­š¿yz]<nFVMáŸ#Ú䃻[º¾¡_ý°Ý;ÄL9ñˆ4‚î0¨´ÑÎ9Ä¢zšß}"™¶¡jwÉ㺓r?˜bYÊ<¤†à}Θ)ÏSuÐÔ¸üàß–ãûUº$µ]m¡Äè&Û·5‹@ü*ªÚ»o‹&χÄçü‡=ï“Øîx™’tÙ ‚(´_ú›òÖþMv#ÔÍKÖ‹u¹këv´a"Á¶TYrà>±‚ªÛ8ï¾å#v37o–áÅÍ,]?üÐ^ò/›Úh›5ºëž?}dÑ{P ½5m¯!„äHûÒf¬‰§dþý€Ö
+"ø`€·§«Ssw–]<¦ŒiøBø®ë¿aac‹#›‡&Ê×hRÏ»Ÿ«µ®GÖvzq‰2dìJddÔkSÜ2ìXu'´9 Æc¾HÁ(9,#©sŠ_-!Îa3‹á‘ŒC˜ºÛ;ô×T†<b.œ©¦ K¬íöÚ_îCÎÀm_4hŸÏO!Â^õ"bO|8A¥#¿]÷}ˆº7€“ æoξ{ûIb+bæ„@‡É?ã\­Çséióá÷•q›RXµ¼XÓiP½KçN}Äïx¯Î"#0PãÎ^ØoÇ—ô³óò4?Å™ÜÂ؆E©¤p¨~“Ã@(ÅÊ î
+G–f1–A‰9áZm|vjeÅNÖž^X¥-‚„a‘7°w+}÷ôqâ¡—vqžÈ• )
+šQk¥§”æL`Ìž8;¿+é‰/ÝÁÂä‹ôÉ 'eüöîÇX»X墢­ï ,TËâ‹ìRaEh RÂz=Jk©.AREò*Ó;¤ˆþ̹Ãî úšv&»ÿ µA­‡™.££¥`7BŸåkÊn
+ò¾ö
+_Õ‰þê<)<ìæϤ@™™*»\:X3úlÁB°+µø ‹yJ ¢qgÚhR‰GéXv©áÙ¿A×…V÷.”Ÿ/ª,M]„õœp9º¤uÔ\c`<œ¿$éü¼ú•¸Ý‰žË1ŸzŸ7M9ôy»nÄÙ4¡¡ÕìG˜€âã6z¯‡ÄÔí¨wôoÔSÛü²j>ë…§’—üøˆQ—ï?Ž2Å`«'co@ujN½§±ÔìIŸl‡|5ñãQ>\uf2¨8gBš`1pL-DîÝJI{p™ÝÁ`c~æ_jr­1Ðö[ “‹Ë@i[‰LvËMˆmîò­æÈ‘Ê)ÜÑ˹ʱ…¦º(«DqQSxÞèHfIÖnBÄéø¾´ElÆ£ç¬W¢˜ªm”ÇϤæÑkªviKž£Øv|ž9”#„éçÝ7£ì›æùÐ ÅX®}€·Õ(¦%ÜõÅìò[NHš“ KÒáÙ9 Ìú)d¬%ãä…˜|°màGB“©’ÛEAýxˆ,+š1õœdæëKZ7`t­ï̸—Œ¼œXŽvL—tˆO%?2ìl_‚YP•mKç:="50®ò« ˆ *›záu
+aBþdT:¼x‡v š–uéIùýÂ1s7êpco$ÀÐçg¼ÄrŒáÂ=æ%ìúYbO82§çþæëñV’NødcP]]“å0þäU~V(az.
+R‘7úã·'<+²˜BµK=ú¢k¤‘y•*®\z‰Ì¶‘öAý&ë1:zý.F¥Êlj‡¥ö¢©Ð/bF»Ãµ+Δ_xR埲¦`°ÄkÛB æ‹w>‡L~þ¨‹«à´}…Ò¢ýåˆÚ,avöxƒˆîÚv
+5ŠULÎïÆsf$¾i+g‚ ‚íyð7Ÿ¸Ó<fT5#Sã4@èbô˜\Ϊ?M»³àŒ‚Á
+ÿ“ʳöC )«)¶=Qæ¢äU¤jÅ@Z$uî‰mdòq´€,‡Ø^Foèùz>ý@܈¨
+_¹j¹°I$<¨“4H©· Ä èG¼
+cNëîfï#™L]/3[ k‚žÛF1I“‘ÐZPÕÖÎ|ÊÍUjn:/$ã¹ú¥\+«A^æÿ²l%¿˜ÑLÉ ?14Àén%8ØD²çú$ë+Ðúl</¦™ÎàOƽÑÎ¥©îÏfÚqª±ä<ÏïÉ8•c„2Ó®€ê >¥û‡¯ž/ £Äc ‘…AŠ¸áþ\*¢·tS˜ª84}|Lv»ÉÅ™ÝÅ«c_+‹Ga=ßcì®Ù‹=wI»ÿ&=ðÄ~E÷‡þrk»ŽœÈ™`dr·Š)m•¯1'Ð(CÛ±çK¯ghÍ}Æ7°^(h1Õè@qU~B,¾^$oÄ7=¬·ƒÜê1ŒÛ1×ÿìcpùð·°xÒ\5Zsé ž° —å+Ãl_y4~÷å>­€ºÚ~(Þ(õ47Ø5„»9 õǦñ+Š69þRBzVï·þ}m¨Ï9ªi ŒÄÓûÒ÷v‰ø†ãXdõÕgà‘sç•âµ
+ɼŒ`¹I݃¼#<\a"4È‹šP*ýf~s~ûsªuöcso6lJö©…\˜vûeÂÏ™´BŽà’QEý‚eƒõÑWVLËq«•2[Œ%úÚ?^õ)²œ½ðB8·Û‡Èå@4}º”rsù -ûŽ?•&
+«ªßâdèCê;ý@"hŽ/]ì…ÎØ’^—/y
+=ºP× @ä{M Ý|_],{£;WI¿ËVRíúJˆúC˜¶çåƧƒ¨¼`ù«Ò Ñ eÙ o(³ýÊл˜É¯‰SÆ›IŒ å
+ãÍ´ò¹ÀxóGr)‹MŠÜ–~×Svfཿ>‹·RÂÄðùÁ/löÁµ¹6 m óý¯|pÄ¥oâÂRwGbÈoÄÀ½ ‚œU¸Hcý\ª
+dïáòì_ãz$›GÈR8~Û9 C[±–zl~0š°†”bµ98
+ub’2͠挡#x1]Ūª»„½SSX†)%‘¶vèNëvGÜÏÝÌÍ<æ3Ñ€*Óõ²'jŠ:€Ÿ=ÑYä;>â¬(–ÀM¡q×Ö'åäë)7M2,¡áîy*.‹1@ÄÓ`S«<h z–‘8D“õÌ]ÏO‚ÑÜ%Ò…D
+gä+ÿÈÖ=\ò³Ë/B4Úfðy5á#“Re_‘›S1Ù‡ú„iëÜ>|™§¢2=«ªÌp9Du”à¸Ñ}b²ïT³-¸k¤èÔg‹AúÃ;6Œ­Çp§Ö¨ÿŒÞl<Œ¦7y>C––ß…Æ£Ö&sÞK4ßD‘>Çâs¡uˆÿmùU:©‚t,Á—¥‰„b½±ªÆ\ÙHH%<ÓJƹÍ=O°î—æö¹¹2›~ ÎßíÌHß,+'Ï‘¢ÅTZ Ð΄lÒz_EÞìá)•¬w¦Ð»Ò;rç1Ì*,G͉R#ý¹ºªfšÓº+9áµpm‡êÈ}ÎÓwtS(`‚žZ¶Uó¼_r²¨ª}¤ùl fÔV’ e<]¬¸À½iÓ€x˜êÕûxžÍkúåýONî沟~3àéUd:~£ü¨ÙE £UôýP•í÷÷@d(Æ,ÝÕa
+_’¶›&Æ(x¼¹(;YK¢´m ¤gÓÁýl‘Â[z*Vi\£€0l†È%{#©w¶%„‚‘SZ#ÃÓ„ŠãuõµÈ¾P3Õ¢Ó>§Š§õ#¾EÜ9i1W°i´Þ¥ljÃæ–’mؘu‘Ö¶^méàôsMæÛrªz‰Ôå¬lƲ0¡ á¬:&~–­ s£'âæAeþ‚êž²-ÝÌÆdèÖ²ó©µâ ƒv5ß9ŸKæ½P²k´Å'N.¦À»tìWÛWBÌEß-=л‡e‡–ºb}¶+~õsè7@ÿ{´åÜ>rÔ¹Ööf%:>õˆYgv¼=³¬v˜‘'ˆ¹ V
+B>ì&>@57ìš‘ŸN ‰?âþ¤ÿé –6ÍSX sÊo§2ž¼1!-ÂgܧÈzåÆ‚¿`Ê~Fò‰ø
+ÍËaFr\eáâU¥„ÈíÁŠsA+)3tv!´ËCtƒú>dKÝ6n¿¿a»3yÂ2ŒÑßd£}š&¢ÚOžWÃl¢-%v¯4 Àáwë?&3P«t4
+£`¡{»VÞK ¬Ìér_),ºRÊþ*¯™á!ôö)ys'eàê±¹’LSYx"€ß:j6hNÅ·K]endšµua6êLäN÷(|Ž:v&ÒèZø%$‰ág¥‰Óña"ûv?­€˜[ã–+Ÿ<DÆ»ýâ+|öT„*ûuléî‘,ÍW ¸î
+f†ZT`Ыä·XNÍøžö4Ý2¤Ûèß|i½^eí_ˆIDF‘„ø೿µ±Z`¦¡KŽÖ†KÔ×2BúÁëúpqœ\ÙøëíË.l'ä·â×>]||LÞÂF®#ŒIj0Œ)»¾ðe®™ÈüæQNÓ¯YÞQåD‰Ð[,zTLWW
+,ÆB3YæònR4º…÷ “:LçéWÍú6ŽF,ÉH,½™P(ñŒëW²òô'ëÁG òø&‘¿QŠ´ÍX*ZÚš0ä†r1­Þ®áuòdÙsiê*“­ß{ÓŸUDØ<l*š¹øôôs+×0ò ç/üÜ´ÕuبØmºó¡´ü€kš‘S J}bkþÉÒ°@‹5kEþ®Ø{–’ï.[M®c*Q§&öju7ààE|ü ‰S—ºb¶!†päÂ`–c›Ï»Åm|Aà1™ýÔd­oy×Å:JûÜ€%Ïz× ñ*ãœÊþ`fç0èÕCÂd¨­C_¢ŽÊDÔ»ôdŽÇ‚¥n¢ã¨›}ª 4 Xÿ1¢â=Èß«Pä G&a`–¼“S…Aä¡øƒ ±»Ÿwt¨›+®7lY€Qûù“ò”Dô’Q—ñhø‡D<u^Õ#šî5yÔ4à'Þxšš$ÚP¦Í&Š© þH~gïyàM´.x.B (Ý'—fÒzè^ ©&¬ªüº1sÄû0f–
+Šoøs÷¡ÃUÔÒ¿.~}W:¿kIM!1~6úŽ/Ÿådøy¤¸ OÒÅù³.iY%€4ûqL±0Ýò¬ ,×
+t2ú‡†p¯# 4ÖÃuãpY×NB³¥!´T©q½4*˜æšÙ†à¬7NX36ïš K«øû×öˆQ—oæʜϟV[q˜)ûíÿ˜ S`„” Ø0ˆ}%ŒQ&èVk9E¬[Åí”鎾
+º¶,EöUÚš½J‡öÔç<C¹ âÌ¢òE%-)÷8²;ßrSÕ÷ákîs°[£¥(Í.‹ýÈýœçârϽҷ‡­.(–êæ‹ßMùÅàRRwgû(ðc‚ÿV ÿ¹ÃoÀV ZÖÚ6Jü®åá*Îîjêi7tMp¹“Ìmd|Âý³¿êUõ·žÐ9šŽM¢ÇᎰ[³.™"Ûã0˦6ÑzÈË¢g÷XqÓš-}çÉP'\³õ¬5•‰S,«&gQGí'ÅáÄËiø GœîgvÕ®Ï×k~Œ‹ƒ›ÌCîJ]¡juÑõa-Œ«ç2úíGoÅY uÏQPµ˜­(5æéŒ kè*Ÿ„æâÇX}|â(G gAqÈ׆ˆ(vßÂT Û¡Î$2“û÷ÜOo¥uâðèô‘![‡ä|¼hljÐËý©ÜÜÔ<ˆ LJ¸¯Š¯ \íMU柂┽ö„ëÅt>™>¤|xeÐ ÜP©îŠa 蔡_åÛ<጑$Æâõ‡ÏºßòÕRUf ¥\Ð)Éën¡á0 ‡ô]†Ëfcж ¨0PX>e"Ž&;%=-õò?eOA„Žb]ìaÇ1'A€¡
+Þª¹$¿ÎaÝ_ÎR>Y$‰îBs!/Ðe™iË }£õµIòfêÝÍôÜúTØiTÛÓxÃÌ_#ýÜ™éA¦+v“¿˜¾fÆ÷DÓ†­äj]È ¨à›<É)rc_f{^'ô-ÊÇù‹n…(ˆà+Ä£xu3q’;  ÚÂ…€‡WüH"åÄ f“(2s2c=Ý€2ºf3Aîc½Ö¾ƒ'‹ÇÜ#îgé
+Dv»²;ªÜd憄ñ)_CTæ†)Þvæ™æ¤Ÿ÷u¾Z›\*ë€eKľó”~²ê¿&’aþÔ,—‰¬¬W Ñ`Lø÷© ýqÅœ>QFF(‘W¡Ì­][Z$&g~*2´k]ä#? ŠUú"ü¹vêå`ÇÂLä[)!QeoþûcùàYö§>ÒY#Ü@‚E’og†j`øïøˆ›…ŠDáøÖ¿¤/w¸&2¼j=ÌŠè…Ké°§ãoá4fVš|(ýh¢f~Qà»Z—–˜5>9¯G‹ï"ÎT2i<›eî¼u"(¶l†’§åâªG\{Ð×-úG™) ™J²®ŸDºR†Õ›¡É«*(TâûZôéÿŠ1!"¨¾31þŠnÜyÎŽ‚TZöê¶j­nLs‚‹´‡ÔõLM*&
+Þ‡;@&¯pèêÍíZßK6¸n|‚¸Œõ”•D"…"þ”ÜÌ$½³YÔ
+¨ø¶‚Œty+Þ£5?é‡Wv…ÃÅÍpéÉa6¨™haOáÏbåÙ i{7FkÿÁYý6ûÃ,k¤M,
+yo{
+Ú%gö2ųdÊõöKþÖñ s°ˆñŽ0 ËEA:·/vm©ÿXŸÍƒÒ:W…cKA· T°ÇÑdŽfd¬¾]¼+B†«S'ßl=]ãä0¿1¾lÓ<?DÿtšRI™ÙzåÅv>o\[ãç*%—D¡Mã¡bìÑÍŸƒHªy³¼5Ä«x>Q a ˜ÕÎAÙ«DX_Úq£z0¢T‰SƒËÄW乫[‘Q~xò8±içí×%@å]™8+É‘”t·­: <‡¯bb…‡ªqQñ|<]ÃûCÚ0{ÛÔlh9c<$nÀ¸t«ls%•-Ћ!4Š^™Á>·?” ŸT½0"½;­ ¡A¸ñ“?Qºe„ºÙ®×[{ð‹6~itÈcГ®g.JË÷ŸfЩ0'ݲn÷©é!²¾/',**é@l7ˆ“Kx|µ£›ôB£Æ±ŸÞ¢b±3•áƒÍ·ª®uY¤ªÃËöp‘sñü혧ƒÛn%Ò°þvàXû×–qOZõ'‚bÍ P¸ïÄÁ´±~ ©ÃÄ&õêËú2e¼J$y¬ÙcçÏû ïÛ#;c̉'}¬1å9ÿ¸§E99 ˜E'ÂAüWå®bß–îÒ1«ÍCqüß/²®Gž›è_Šà¿ˆó5T¯-FyÕfŠnCAóŽ¯qc?„öŽ6rCºÐ-§_Í_²UKHø” ”Ú;á¢P8vPzÛ`Ÿ| dW„Œ5ög¾6C*~µ<cD Ó¾ca|«“.ÁI¶;ñ<{-»¨(Q,Ò}uAù®¶%:ê›rŽ™¹!ž4+ÚòÀÍ°†þAd_©áJ‰º¯bKíš}c5‚ÎÓt¤8Ï
+Ž¹›þvC¶Y¿¬& ÇCS"·Jè^»X…í,ÉÃ-»›š†{’øÈM¾]S“‰ƒSNϼ¤°Ÿi3œ8´Ë,
+x€fž¾/c-3½¡gÐäÖ/ÝêlÊóU¿Ø5¤uºÍmº }MXšŠ¥,›àî©gûhÄ&7. þ
+:;?º/}‹g(ɬ²5üÜŽ¾îÈ–ðG;tî Bþ©|‹ 9÷Ãe›œðÊðb?ýGö` Fœ¼8Jnõ܉Î\ñß{zD÷¿gsööÈsã"‚éxwº­fÐû/]Ôf— ÃîàiŸ…q E×Ê·‰ðÏqà|Þ+÷BAÿȸíÈ“&–áçJ#iƱA×i\ê•–æ-9{àë)uïYP•~úP.óXªŽ³Ü+ó XèO¹<Bia»Z›HÂÑÐe23kä6{×6ŽŒ}ÄIOSUw+
+’¤Á¢$°$—-?Q㓪"+Pt>Ÿ#°Ë©Í|AbMfvDk"þ’Cõb¿<§Ù b¯ŒÐ6µ³bOFØY‚0®ÁðŠ¿+à YZ-«UFå,¥c1Ö n|]Æ+^Yà¸lö¥ß˜·rªÏ(˜ã(7*í_äœf*YËc;ùùfO(jxÙ*j
+(-xÃaÿC"‚ F/ô® vÑP¾ÍÉ°6cÊûži$ã©- imÊ߬oêdèy´M÷sÝ[…–¸¶êk‡}äÖ—sD»qY ò¶<$"ê›áÂÉåÐØ6L“ Âi‹å‡S7•=·Ù–L¤9ªëù_q\ñ­{üƒcéaÇ=;¦n;N*ÉA N¯'±íB‰›»“Ï¥]ö!ä`%Q.ÊÚobÐÄ–¡×œ…!"BÙˆÿbGŠ|»þΓÏù(ÎX¶n›¥R|P1j?{u.÷ú{_ð´§>ôöGg„ o>Øï?=MÖ'·ï ™ÙÔ7H¤æˤ°—XQK&Ú Ú3†ÀøHHab7Ôøö¨yÕû6æ »ÁO¢Ë³óÚLÍ&!«ҋòmK8åXw÷L²
+s…™Ï0á¯ó#' E–󀵺¸+¨æ*%ÚŒ‰û…±zXp ¬ô]ÿ:ûbœ ð>¨}ŒƒÝß’IëV\e e mÌÆ`'P¿:«mÎÅÿë®Rø`•«ÌÊ@L6Ft<]†Ä®û•q®±G
+6³H Ïæ¯~6µKV{ùV“è®®¡Ûw–±cSC àå®üñ §Ùä-~÷ÓÐpa…6³³$Uª÷Nž «€´Ó/¯h_€ Sâ‡Q$’äüyóädü$™=«u%-Æ
+ä#4UW]Á·¢mâ”ÌÞ)˜IJH_Úø®Tg¥®x2ÚëË=Jo8DGèûŠ¬Ï„zÎ"$u‹Ë®™¶'Xg¾ìm–úÂO1ý¶’ò¹=£'ñšÛ”Ü…V7)GMGìûñ{´ín~LSW"Ââ&­?®/ïÁ}Ò-Ÿ1ÛØ«ÄüXÝÕí’'+'ˆQ¼l[Ë¿"P™+å;k(av*쬔Z¹¶{J  ‹w_p:ÝL)e\¸©%õ´‰„#IÒwIfÚ°ÒKGìó§ÝÀ ëdùFXp6P¾—X[šÍB3Ö\±¦'<dV€ÿTé
+°YÇ@ð”–ª)ëÔ飙Xâô壟é^PÈpÔpÇó8þšï5¦Ã÷'I05¨=âfZº´Ö8ùøEd¤À*^<¶Q™p3X¼«p";ÖÜž}q”¦Ã¹© »ÒŠM¼q´‘}Ö‡¤Ý²ÿ2Ò±‰`JŸ@†øìY —ò¡6ÖÇôqÿ§ýNmikJ2ˆjzp›<Ï f&Ñ äº2YKJ]•?BŠ»ÄýÏ‘P”ÿkk‘
+3ʽµÿ|Ú¯lC7N@ææNÚcÿ™OŽPî&X5(:â ý‡)‡,Íì[d€Æª¬U„Q4%¡=`'»ÊÏþþ.¬ ½±©OiW‰DRÿ«Ã-O·”‘¬‡úcÉd¹\$/ßæÇF1|›¾ÀÐ0(Šoóí?àç[éÿ¬^ðîêRyâüŽTbàË›‘œ¾ñÎŒƒýÓ´í&®õÎ"EÏŸ¿Ò sfs5ØÂG ƒ4›99~ó5¼óÝΉôÛ.¼²P•CÛa÷‡]iðØu†)oât§ dÄ“„þîgµ?eÇÚ(w+ûœ…çb$¸Ž²°/!ÆÕxl%aÄqº$ú„eþ™ —›)%{® žëî¢Û„ÚdÀ k·€Ø4bÄn¢{Iˆ”S”¦3.ßH€êãŒ8¹ù…P”³}Zê¼ÊIÅ”ß
+…Sª6O[C[Y³RXrÑVó&Q¦ûñskÈ©R ¢œ„)%–›vîKÏ´ÝŸav·-HÑ–{#É
+¬®Óü^Jˆh«hXõüLóbÛ½{HcVµ‰u?e«Ð/&éoçèK®”+9Ž$æ)‘26pTÏY»X
+QÃQ$wý>Ubï%>QšGî²úÍEÆMq’áê¶9úŸ˜?ß”p¶£o›à©èp.E‰~˜ž´ ™QæqE)å Š{
+šÙŽÊÉ7=µ;‰%puqcú0=Cë̱E62â 0å¡ÍÅà{më?»Õ¦¨ú‡ÀÅÉ…T8[ÁŠ¼2¶ÉYJ$+.°82WE5PCZÂÕ¦"~ ðZ‰k½Ž>T/Ú×íBe÷“¸ š¾ðQÆFBFœA_s={fm´aõ~Ž+ÀÖRW…ÁŒfC©È¤“ëÌ{5ùµ<Eû»á°DçàÀËóÊÍ›ï#ôb ë× Á¸‰ç¼§ém.ÅEì-/k:†´
+Œn/wùªB:¾x‰§ƒ¨­Þöª…%¼&z[C÷¼cÛ+Ô(Žö=7ÇöCtmÖ“OHÀbÞ0j],G6!µÈik|GÐ÷é°ÚÊ~Øfóf>´ˆHni‚§§:vƒC™˜9žnͺ¬NõDljS“²9ÿ¬ZµL†¾AE?íz¹¾è™AvX
+9ñ*Èî«“†].ŠƒøÆâZ%×H%û«òWjOüìdÈcäyžAÐì9c€™!áàU3ÆkoMéwÇ©Ã…c~5*xþöw;Ê(ÏÁ½&eKeïSÇYÁìì 3(k·>­¾Ÿ~*LŽeŽ·új€..SR÷ã+q2-ñ |Gñ6 G8ÌÔ(Ì—îWÂNkY0†
+äwÞ8!´w§’–³à0an‡Æþ?ü ý‚ÿ'Ìí-MÁ® S°ÒÿíB ìendstream
endobj
-1328 0 obj <<
+1333 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 34
/LastChar 122
-/Widths 2816 0 R
-/BaseFont /MFAGBT+NimbusMonL-ReguObli
-/FontDescriptor 1326 0 R
+/Widths 2833 0 R
+/BaseFont /LXSHKS+NimbusMonL-ReguObli
+/FontDescriptor 1331 0 R
>> endobj
-1326 0 obj <<
+1331 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /MFAGBT+NimbusMonL-ReguObli
+/FontName /LXSHKS+NimbusMonL-ReguObli
/ItalicAngle -12
/StemV 43
/XHeight 426
/FontBBox [-61 -237 774 811]
/Flags 4
/CharSet (/quotedbl/numbersign/parenleft/parenright/plus/hyphen/period/slash/zero/four/six/colon/equal/B/C/D/E/F/I/K/L/N/O/R/S/T/W/Y/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 1327 0 R
+/FontFile 1332 0 R
>> endobj
-2816 0 obj
+2833 0 obj
[600 600 0 0 0 0 600 600 0 600 0 600 600 600 600 0 0 0 600 0 600 0 0 0 600 0 0 600 0 0 0 0 600 600 600 600 600 0 0 600 0 600 600 0 600 600 0 0 600 600 600 0 0 600 0 600 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
-1252 0 obj <<
+1257 0 obj <<
/Length1 1606
/Length2 17489
/Length3 532
@@ -14156,102 +14158,104 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬µcx¦]Ó%Ûv®Ø¶Ù±m_±mÛ¶ÝI:¶“Ží¤cul»¿¾ŸgfÞ9žo~ͼ?Îã8wUíU«jÕÞ›‚DI•AÄÌÁ(á`ïÊÀÂÈÌ P°²3qs‘w°—cu°5ü5rÀQPˆ9]­ìÅ]¼
-`e°ðððÀQ
-ôtý'— `fåâhkìõ7÷_0Gg«Ñps±²·ø/ô
-ĬsÍXŸë%¹Nfß{SÊ*åP„3]lÎ0×Ï4dîÅäOŽHþ¦ ˜Ý(Í hõ%gç”)'ÏOTCã£#Ã}·‡øtù °|1NùøB:êÕ>Q´ËGÙS¶XÂçÌ}#ÒÜXœ‘,‘|[Õ#~WØw'Š„ªð£Ê#$n6ÎÞÁ)óýxCÉ]ûAÍæ”=$w?º>1$S®ÝdÎ ÖÙPN< 3±ÌWêGâ¤Ý£âò
-ã@]á~?ÅñïVìÁ¢ˆJM†³„‚ô_G)|æ¦jœ:ªSÛbÈ ~,˜(£ÜÖº“£xõdñÔ¤3ÂW¢säbÖûº.Ÿ†Ç“Xœ¡f-TûnÝö†hRâ/2z}•wKª{ ?…†|ëþ÷(¦¤I{Ôħjäß{ôb²4ªR{È2Ý· 5ꮋ®¥o ¼WÐÂÜöš¢ª
-¡s,ÀñÙ燨×qZðoñS-Ýì…|­7€°4\±uhò2â·t–û
-C…Cmkj"úðÝãûò? ¤L›_LM‘>¨J£M&ÂÃ¥¹Ö›Bnv“EREŸÇæ« ÀZ§*ŒVXpÈqí$~Wóÿ˜\¶œÌÊòz¬©«TX¿Â4›÷T#x0E òÄ‚ùäNÕœjÛEƒ²¾ñâÈø¡Î¥7µ<t“[ß|šytl"†‹÷|ÊÍ6g"„¤jèŸe¿âûežU~¤ÍúƒŠö!8—q7¢rDìúøÁ‡~Y*ž÷3ó²ô½6"’E/ 3A~uâ„E9«X¾9y½L45˜>ZÇú~Vr—Ž!^Qê#®¨çS{„«;B¥9NG
-Y 'B
-MüWVM¸òØšSöÏsˆÊQ;ôà#tîWôÕd°±ÌêÐãFþY[G5Ó»ÒÝÏtãâ_± ;!µK°æ¾3’ØmÐð¼]ˆÂ:c
-Fú¼ªF&/0R=5;|¿ê°yöo1ð„­-ÓkÕG#w©V·‡Â6 ùQ®ÇÊæ [Hd/w’#B G8MÌÉ=VÐácn¨¹)Ë4j†c¢ Û?áØ3fž¾òçƒG/’Am eDz!*ýáY‘’áÞR¾£Q»ÈÞYuÝÍ» ¡O¾:¶ºà¯}uiß¾Øýh;/²kvôâ¿“ÈQýÜÔ¼ýܳôŸE£ùÕ gá2vP…——&âÐ{–ë|þVÑŽ@YaJX°e>(§*³ãay!^™Rq5i—öS·Ý¯¸£ïW]V€Ó±¸ŸmŽZŸúûW†Ùf. ´¬%h§ÿB¶N@—B£(ŸK×koZb±3ìó ÊÝâO±‚cõ®wíë¨F9j,¡dÇ*¹´ dà Ã:ôgý½oZúi`Gg|e¶þȯ Ë eX:?æ˜ö•~#3úºéµã<;‘ƒð35&EAžmJ–á6;©Aæ‘;î '’#ÊoÛD]Ñ,À£’}¿wá<˜?&HA%VÅGŒÇÒ›Ü7³„ÊÒjE 
-~˜›ñÑ $¡ØAÔ­Ÿü;\F$Ìß<³kNÔÒ5‘~“Oç|ŒmýŠFøãR@E_Êw4Þ"X!ižøNqÝ[åûÄôë'ˆ
-}ìD"`ž,èÛ˜AfU·oÚà·¨TÛ[³'œM£L²Î;òèeñ UU=O¤­ÃZÞ4@Z3uò7­ÈñyßÓªsÔÚR0’ö¥1¼7/‚¹R:ðw›@»Œbâ¬ßÞ>0éÀ©ßŠ‚ß˼n8—¨9KÚ$>NÎŒyJŸ¡ÀE/àoGÂù4°·#îoî–êi7uòý~ý€¨¶Öá÷0\‹@x:ò§tà^c¶Zí=`±óoö"´“BY7±ÕLf¶û2HöþQZd«‚mßha.—wf÷ û¡ÂF®0ó l8áîcä
-…Mußɾå" Bû«CŽ¸ß¬Ìqq/سÖn%Œƒ´û°&è
-ÉFl§?Xº„×Jf€^."+«^öyvðKÛú x¬/|äô0“Ëm¡Ù¹ê”_f[5·Î®?°UÄظ‰÷­CÕ*a…Ç.ð™¢5I^Yko(mOq†!<]ÖÏÐÖFßôd„š@SÜuýÒ¸íÝ7$PâÀ¹ƒßZ<RÕîÜ7†vzC3¡,oÁbø§¾˜¢æ\o, fôüÇ7û5Ž_‡Ý7í¼ »'h³P{Ê@sn­½»éõ@‘åe¹}Ø£<WõÁO’XÁñö7ÇbUd¶äFÛqÊn—ú ¯E‘¯ÊX*IÈÎØTØ„èûòÚÇÂ%N…Y~ÖÑþÀhYú„áÄ*bÂéyê\’/ Ñh¾öc¥æÒÑãÖŸÇ”áÓ#MôI+þ˜gÎs[¸1—±9¥ú™×„¢[8|×úÍí%÷ÊJ÷ŒÐÍUÿᙨ‰ã=¹di‘¸Ô8L5]£°+<õóî Þì+Ö •‚C´áõ…fiMŽþ<!}>ÖÆHJré|·ï•ó’’*Lö‡]KÈ®wÛ'7/š
-“OÆèïb”£»$„ß#´ï_åË^BYUÕò£b z•âÁ¾M«Ø)E r)àÆÀQ¨¾i—¯J× >¨F;.@.Œ
-œ¹Ëì™J‘Œ?±¸Â0í ,×fƒš¥‚®Pú±•´a¨ Ž¦&¼/N"Þo,SÙžÚ©¶ Õ~2FN¥r¹#˜Íõm€o¬æCðfÓT…ÉPé¾IÁ~#ˆ)oÛå´\s=QÕ â/=¤4{ PÎ`ÏYuJN•¼JÄ/à
-%¦j ý–Ïy´c땘ï,ÅàŠ3ž“þc3c$a²…{s†¶Ïƒ¢Òë6ùßÜ@¤c™2Ù½’ "Ód—§$ºNŒî%З¤K÷"#w>RdÝ<4O‹ñoÞªÏ'¯>{´C=ÑåØ?”>WFƒ{ ËÁúydlõ«0U})¸Úl‘pì)¬ýα˜žIÙ<°¤kñÊG!å tˆ­ ?ÚmÈP¢Í8z‘—uw¡Ðêaî¦ß³)ïe¦Ž¸bQëÆvÄ‚VU2㓆ÔÔ k)|j6t¿ße. ÙË"èŒQƒMWP[ÿ\òHÙõd<½C– Î!›ÉIÉuô ê»Üƒ }cr$¼´`’“†¦PöX‰¾è—–X-Xü³5V~ºÞVâµF;«ó#ìGÍD¯€ÎàKêM õ yû`ÊÂcð…º¿¸´6†çÏ®ß4õìÎfl?£i!e5¿bßg>Õ{û9A ® ”rÁ
-Ù*¬×'5 öƺiz®„‰Ýf
-+Hê!± ®Ëö'Óä
-ÄŠ§h÷„Ü{É=Âݶ¡øU^–ÀàžèUS­œíê±¼ÛgéE¦oDs?X™W ß^®‹ B¾Óÿ…X÷Y(6ËCÊqZnÁëà¹Ïë-ú1ÿžæxñ˜²[ö©÷VŠ¨d­m1i0½ûùPšÒNövHûs úat=§
-©gÖ<L®CRÁÐöŠn,ÆXcñµ;W«`S¶"Sÿ·ˆò¥“O‡˜E
-eð5²v'úå„a(»¤Æ#r)†‰çðøË6-E£Í5øÊ÷5†ßý+f¨] ¾Â.ª…¥ábAðó³òþ7_†« ¡Å=ÚEÎ_k•-ó%AQIH„¦Æ.%í‚Dêä\n4[*37]ÈÉr4é*–› V7m‡n¿‚òF#²À›ô,y*oö#¨“÷©$Î9f¬ÒÏRÒÙþ\ͪL0¥Ü¦Ò>6 1ðòê/6]³äv®µZ
-_¸¨Àé«ì1ßRmþåEÆ„üPñsKªP=.¸#`@—ˆ>Qô›ð»Â¯_ƶ„íd¢ôN3×'M˜.ÆFrÔQ?žI$µ_«°ú ã¸åÓ1æOÊÊ; "ŽÀîÈ?²îwó:FÅ“|/{;þ¯º”ðE*´V÷$ ÷PŸ†¼ï'E›£u!¾$Hù+BŽ:´æô ˆŠ25íøµhÖ¦2Â1¿úO€¼ŸÙ§hémFƒjË[ÊÁsFó…ì±\.cá>—ócÛ—Ô+v©Àâ"Tû¸hõÖÉÅýLQH+VÊ
- jgìzï½È=dql£1ÓÖYkû^PÔ1¦\µU1…$:$a^טôNyãLl˜9‰“Ý\Uäñ’E=Ì«}üñc×(Ÿ²ä»r¿Á¥E—j/&è;»Rß»•Sé#4¶ÇeQõ\G'.*ÞÁ8@g` ÉWQ>æ‹—qåÍ6K±{ž0BÏM­c×­ûëжÜf¬¬¼ÑQر!kᣇ‚§›-9\:­ R‘ Må‡C¶ Q›ÒRÛdšÔ$9WzC&Àç=²LƒzWuØ–`…IL €© úÀ!Ç NãCZsüôJ^ã"–ë ÂçíïY @ËA(>S9|]|u À+‹~³±ïL˜°Pš”ú®W ‘€
-õ‘%­ßÅ Ù/»" )´žTŽÑÙ^ì¿%.óR/ß2{ß¿)½†ÍŒÖúà ýÆìuQ̼¶Ç¤±/×ÊWŸµÂÖ~¢®¨ªÓDGë »+é,®ªÕòºY9ç#yÔÊý²ûX£Ì9þMd4u_‹´ÜÁïy¢¿˜¢Ñ#é©jr¥m—Ÿ¹iŦ—劒*Ã!=C˯ëCÍ>*78ö<žã$`V!”¹äÞÜÁš¯Ä®x8ˆ"‡cÍúÆâB“ˆYíHu›ö( Áz ¢
-ïà`íír⺰¹ò4r–ú¥ÍÃ_»øf¤¤ï§cžç¢&ô˜BoÂÕ¤7YÜ;ôXæëõsb‹W…«L9 ž:=\Þ«jö¾2–œÐÍ¡§³T®n1‡VtÈÓ¾LÌCôŽÕì=Ë÷ù”°tT¥×ÕÖz…ñ$YZ<*4<†¯i¤&A&Ùõ.˜n•ÇDÿ,égüáHÄ|‡ñ¶™µ“EÙ:O¹™6§ª ŸHÚVW̨VˆS­Lĺð˜ÖH9%Ä®qdÄÍi²Ý¸faîxqvÅøw»…d%uó¢0ÉÝœÖ|U’vKãº6öøÌ@!wJE÷²t!Ä möˆ ûjVÓç[Brøj'Y×öÂNY
-ˆƒ÷ÎÁõs½/’ÛÖ[0ø´ÊßxÃ/¢µÚô"ü(Nc&uy âEB:\>è³€v¿/èzw–>Œ¸¸ÙŸ3©å5¶é¿U@<!%^>ÓÁ£*8Ë•ÇN#ü^.¡ èFj$eoq`Ì^r¦è8OoLe¾À´¿öùh `üLêEW*«
-uóÁBˆ‹Ûª–õ›ãðü†Ké|^ŸØ$ÉÃö¬:ÿÊêÞYdäÌZõ[nðIZ¥ïƒ&ýMp‰£5ž×@ÄqÙ·dsá×mSY#Oô‡àáiÅÅžØ'u0övFä„ùžP( 1•}äG&ý&Ûrô€ÂŽXtc†BZsÔŒ¹h Mvi1ž¡!„ÍcýI‚#Z«ÆOv5„±^0)ùû¼™T8 ÿLñ/÷ßÓª"cÉ\Uå»°8Z›8´ŠÂcçÞ
-Î(ÒÚO¨²?1ÐDµò r8!´õ™D±h’­ úÓM~ϟǽ²…ë†î~µôqÜEÌ Ã7)e§Ì£ÏâCÆ'C_{/[ߪÆ>O
-º íää
-ŸNvYÞb¡‘±#Æ™uiÃØþáòD„Jº õJÌ)±ùQ'óŽéE½•+lx—.U!’o4Pe†»> ½güÏ/ hß÷ VŽO~^ÔÌðåHàj!Ï_®!‰7¡†:£L[‘xs¡°öJƒu-{—mR” ãÜ>1]ÃdKFq¸7}æ@,¶¼-Ç¢ÎÀCþ¨Ù³GìA YJ§øÕöú (Í¥ãX¶2À{ÅõÚ¬Çú=A$ÓbPI²4¯‰x¾V„÷c½áÄUŒì‚ü¸Úº»H!õ
-.ø@úo‰.Aµˆ¤l”é
-ZC¾“üxŠ>èï‡P‡ˆ%<ý`TTþ<¸¹Ã¨ò~ROI¯Hµ•·?}ñ7lymþÕ‘¼%-€†|~‘@˜†l
-û¬D¤AôùÙL—[€EfZæTVû=ÞžWðó‹OõtG 6ódìøÒfÜ_J‡ÁöR*iÖƒ¶_Yx}|!.ü9l½~ÓËöžû–4)¾ÜS¿4ØX½½ïü1Xš¹•.Ä!O 8×û…m^üÞ£ql1. ü‘B&xdûÎ !<ÏH›?©³Kì›ÇAà’°ü‰‡3ÌXo²°2fËÔáê.•I¹Fÿqš.ÜJ’ŽŽý¨Ï;µä€Ø”ue½ãVX ä¯u¢èLJ{BÖ´Æ ±ˆèŒ×°ìÇíç&íò-MÁÏÌ b²á—“­Udf»[{¯â…LˆÌCü¬¸"ƒƒ‹ '‘‡x’cEµõ]G¶ò¦‘îi­æs*Íd&„ç­•ÝÖskÍ6ÓåøQsèNíË°k—ËìÉ_ßoQƒ.ßaÌ/ÁsœSè×òy® ëW žc.©h–C>½t>! |x 4oÊ°úÀ׃Õ,o-LaºA7Í°Í7)äó3̆VfŽ$0T¸Ÿ9
-ÚŸ¸\@!#^dcÉqæ’ù-$ õR‹ÛGÐÑ‚ÄOL!¢köæV¡Rî6æÎrMˆã'¨_dœjÜõŽ­»¢'Š@z£æìôü,–NÌüua„¥¤|a¬hž~"^$6Â^°|ÒR4€†ž 0©Vb"óãÏ ž‹#A†L6G²»0… Â3ê6ùD ¿‰‚9È\Dá:ÄûR(¸ë?}=$7zOª ‘—?…!<تyë<Í÷Æ Qš?ab{¹F
-Mp.Þý©\B„$–AìÔ‡‡}Õ»X¤ ñé£×B?¢)ÚãŸ@´Æï 4pÒSËý
-±5Á¿Z¶&
-Æ<H)]Ì{Á}꺽î¡›0<aÔÔ.’mWâ#ªš,)=Îܘ’)nÞ ˆ=@öõÕ<jÔÜId¶QГörº+ž¸7rªXb D¡jºçÆœùaŽG¨¸Y/°kÀµl"%¢´™º:ô7“ˆucË©èÎi½ÔzZãß'W‚Qn&Z¡gßè!ÕÓ<¤Ý¯/Ú€àuÖXž·0‹ f_6ÕaZÀv`M¨¹ª—1bvÕIü‚Jn.ðK5bø½ÏÿãΔ<élS+1ïµÁQ¶ì…Æ7õWv[¸!MEXZ3tŠ·`~¶ý¢fìZp‹.fõ»c2p&«7^ö#ô ¾èÓ ÙÖ)xµ¸åí]££Áµnešc›JÛŠÜ|g³v$BÀ!W’Œ ¸U¯èÎViÝ
-§vÉ×%’Hð«.3„ŠŽX.òï˜ÀlŽ²HñÍgÅ«ÊFýri4(}õÑH!çDCOÌ|Iuúà%%Î%³“r)¹X!’=t’ ¡“S£*b¼iV½è6À.?ªQ7¬¦}jRÁšm‘œÇäÖ•ÇpyNL0¤ÝñÜöè@­³Î¾áµ’2רcíågE*ÉR™Ò\'›˜bàáÂw½v0Å8<'Ì÷’B'Ýg‚§ îŒÁÒ›=¹Bäw^ûÝ¿`³Ø<9øMä\5ö5ø•ÂñWÈ=˜XV’¸…­yô„i 6-úDA8qN!ÍŸ$öÊ“ó1  ÔV¯çÁ¡(³h—µM±wæ=Ò>zoØMé`w%óäû›ÕR÷bO飅Žê>‘ÍZtuùª£F&¼O¿NAJȼWêÉïÁJƒ6‹¨ÌjéE¶~‚ÇÑAxH:ð0î֦̽×A{5ë?]ñ-|Ùë{É·"|ÆÑQÿŠ D™X<èkeà 8êª=§fÀ¦•[ä<wÐÍ$YÆeÀWw©Ž…Nƺä ÷}‡è4×ä+Z—¥dáh½óÙ¢·Ö!WŽt×…³\|çû3[ÇÍÊ´ú«ÃyÓ
-6 eœn&`±Òj¿ŠäzM’äÙõDè.TbaY˜‚ì!Ɖo36ðõ‘nFk„§‹pi›ÇýÄŠ»iÈt‹Ç®:Ó5º²0“¼/ºI´„SyÕïɤrJÝyúì¡áùU4¤éB,¯˜”éZö}
-Y4=ÊB<7ïm覯üë÷¯Ji/¶Ov¾“…8·-’¿láöiEçh¤3Ókɹ[x)ŠcÝk™½¸CþÑy…Œ ¨Ÿå3j¦§Õ5͈WÝç9XÁ,­2n<ÓK{ (¶P2“ÀŸ^Ši’;VèìVúJ)'¬ð°<ô¸O±Ó_ì'Ñ« FX7Ó
-4çv웞îãU:ûò¤]ªzrÔîtäÆ?+ÂÀ½ÀÚŸ“rñ\2V,†mg«@bøÂBòØÄ*†N½àgÓb~õÛ_æ<žo²,Bÿ§X``âN¿aÕ)`Ѧàt8hOÐ=Ð ‰CálC4ƒÌN©Éce)Aù1éËua‹¿nôDW“ôÁëªj!±”/À·vy²ôI¾å”®Ý‰¨hß[sÌÌóo|ð›êÃß.£VƒžóG½|VÚš\ä‘®X+¶J`sEsߧ¬Ðû´Ú0§Ø¥‚ÔÑ {8–À}µ‘~ ;¶M”¬A­?¨Ȉ
-‘MËÂ)ÚJìyï’盾°+ÛAX•¡<UuÆEÁ°ý”Ï©S«³ óõå0þ
-èP…ÃR œüZþ¸» ÈÚ—F*þ/\<>c43‰0ÿB¯u!u•ŒA¿8ÊNÎØÙùªycPÏ¢/’­ü䄆¬äÊfI˜vÐi}°´ù 1Úd„fÍ9~%Ù ’Ã"´ÕÅkƒR†à<Q9˜ñ&å÷ìôNJì
-ü•Ä;÷´ìCc6g¨FÏ 6Z¸ñOÉ4nFíÌæ@Ÿ(’j½9ÌRi|ûÄ«ÎÙ 8-J_ŸW䛉n¤ÜLá J¯:³Úl j]­)Tʸ—iÉd8r×KÕT˜²†÷A«—h,‰BuÖƒ}͹‹Sðé€mWõv¬Âë•h +Úþö…G«I.& â ´<¼Xh
-¿ˆi_þ´° z`?ªÃÖRf|°¦ˆŸÆúµ~š^Ú¯x¸m)h³zã%ÚºH—ªíAéºl…Ý”ç68c`Gàw©XŠï[=Ƹç(àï–†ãß/ìת}ÅÙ+¹†¥!\
-ÒTÅË£A}f–ü™‚Ï$±*AËý¬zï„ži'ɉkê–8º[ÎÂ!w@ìfsñjàd€‡XH+ýèNY}aK:Pä
- Š€øÞ à ÕƒöEñnhóJ×T—öД‡B!p±•ù¦—l“{^.¯Ð ±LíìØK˜Ê9ˆGxC‹€U¼VX–ììÆ©škð*û}¡óŽÌTÝF[|¨ÔõÙa—UÃÔÆöIœ¯ÁVÔæé„7½&$¡N‰pˆ®Ç}E÷År{U­chX•è'Mí¶Ì—ä$,ŸëeÞ·ž1ÍK™•aFïá{, -ÓÀ‹*øg•ŸÚ6`F…LÎsîã$’tdÜÜØy”®Ç¢%šð¶1W´ËL Ñ,uþ©löW' ¸nºó ³«öÒpÓºåÓfŽ¶ª¿sKn?]j‚°Ï Ó¿¡gæGˆÀhfÙ{Ô¾ Ô‰í’MPŽEoødx€Q²t•y Q ”î§V¤óMÇL9‘5òh°À!e­Ÿ•¶¸¶ù8¬«”{†ÔuQ°b‰¹BM‹sÙ²É “ÿÆÌ]ƒ ÎôvÍ&Ì‹Ï‘'½8«“’ã*I5«6i²Ë iw ®š@¯Œ!e$}‚s¾{‰ÏÑëŽ!!cPGÛD<À-€s_|ùbò´ùAðËQó‡ú-š"ñŽÓ&”­Ø5‚µ3~‚Šz½òh!Îi‚é!ƒ³ÈÒ"s‡¹;o˜n¨Ë¼ 8þßÆ”$'U©
-v.Z[våe±àÞ¦§°†`G‡·^—‘žÄR…ÒǺOƒò^ØÔ bŽeõþ™ŠÄÀ.2¿AÏ»bÁ²¨¹zYÛbÛÙR8ÕohrZG’Äý2
-’k­~ºk ´,x™-­å®¬¬HÖìFÉÞ NžŒ„_ ð3¡¬yÀ=ΑYÄCç­²(/ï?çïIþÝRˆ²¨è‹[_³r'Ÿ‰T™'´7”X‡€ *ÿ|xÖrlŒIìèUFìžovñBW¨é±½5à+[™ƒã·¼Éú×»„&+åœÀ´±Ùg/<R4:ë&ŒCG"ëiŒTâM•3_ßw¥èùiExZÔt»ËŽ´Š<«7@µzi|ÜŽÄmÜb3]²?4¯ƒMÐê)ÀžX~j8«'Œ½sWst’g9èáѨVóìëî À–Ës<|ÚËò!Ø!í®©±¡–¸ªŒ6Õ¸ð‡Ê…²¡ŒîÛÊX©|¨_=›Lè£ØÏÇÿ\RS³îwŸ";Og0N¨ã/Tl0ýu[£HÕú¹ðλœ}¾f-õaÌâ{ºGüyèQÔïÊ‚´q¨Gγ *{b¦¸¿ŸÞ¤~+6C¡¤Ê:j]9Ýô¼w©Ûبþ4õ6Ä^ @+µ¡‰¶°l;âÌdýdRCúN'æ“DÀUzF9ù ʳ>XJ²éžÿõs.noÙa“’cÒ;c»öZ:ckJc£S…
-Ò§ôSëÓ&áî` âìð2«oÜ“ýÛ²z6µÚÚ±]9̲MŒ¸#úSýª½©@Âs]¥`Þt:õ¢q“ÙtìwnÒä˜×j¡
-Ò¨tWj¶q,£Oí×Aò*úüßMî´tùó—ã´Q)VÅ1Íѽ»y§ÑÁL™¸Áì$Ó~ݯãvÔå\ƒóû ÝÓTùœJ̹`¿ÅŸ
-ÛÎØ,kc4Üò9¨3~`"Q€p ¶¥Î6…y»L3ñ|hk$XÀ­MÁ=3Èš„ƒÆ8¯ó÷øúãÁWæ§ËH‘þ#9Lñ>Àü‹tú“ïüú†Çåħ­ Ù§=Gß™nÚ[ù²kcñ>þþci˜˜0±½ýÖ$dï4ï–7ƒIÉ=&ß’(LaË­<ü;±! O$caf%ïâõžvefÁþc›k?2H·Dâ"V•Áó §›#„M韤ãب—ý™Å¨A·”€JJmu`UßK±ýj”ùŠ÷Þ£Êä€ÛïÖ/ÊÞ?H_]x3áÂýsÞV
-v£–%·;®ÄÙùÈ[Úãèß( v~݆¥À¹&=/{±¡MJ‡³ã™#ªCò¤›SOæÈ :I»ñ£WX{Ì5ö%{›ñp2‚D{j)Ë©‰ë8tT˜FËûU56…¸×¤à 6ž]¼Æ˜6sÃ2ôk£ªXÙ?"Wª¨T&ãUÖÒÊŽU&iÃÓØKwzK‘^ :àra‚_Ò‡mJ¯Hd—&—q̪·Ïöz—7QÑÂÅ'ø ¡‘Ô”|w»Xõ­©·>uC·Óè/™¾¨öƒ¦»Úéî–÷üoýËYtpqSù¡l¥®qõãõª9¿"Mq†ï³€xºôEÅŸK·š‚¸ x÷O¢&Sƒ:À!ÏbÖñP|iÁSG³hlÌ0Ðl†˜/?Êg°‘ê§4F ½  OÒ
-¬5]“–Bþüd?Ã!Èa)±Ÿ UwW¬•×½é·@LôƒoÑ|p¨ôÞŒú˜Ë°Ôð¢‰OØžfŠ\ãà9]ËšJȪÈZ¾P„ðôùPŒ&†®_vǢ噗b;ú­-aéÆÉJ ºœÕ7 ÈZœZ'ó¥ ÂSïtj‹¬¯ÌÉÊ[3Ù?–¤2ßli|˜µ…Ü©†ÏÉWßg9D‘ÉÞÌŽüß×âÙ¶üô&‹÷‹òBø»&‚áa!ìëky`¢4¬[(TP¤[î_±K"b·q>ë†L/ozÍ°~ŠFp@8uªÉJ;EFn$Œ©
-€­^A%CÛåÜLrjùY¢žÜn\4ìZàT2'c6ê
-½‡?„i¬yè-†ÇŹ(Tv–lè4Ä¢TÁÀô>\Jf>jϘøaøÀ1•Ü< m§afæ»'Nê8¹kðèRž;|(¦b.@nz# g[Á°½™­nÙ¸œLz¤Zõ’Êáa+ÿ|ÿ)\ØÇKΰ‰b0ÕªcÓ,îó5Q5²Fg:Ë$nÅáÕÒõÎ €Ð<‹OŠsº²ÝÙÿDÃO´0yw·„¥ÇÊ2ø½= Ó{ú¾í‰±Áh%‡òRsÛUc"g×>ÈZô3MÃà^ÒË«gÔQ™¯£—k½5ÖCÍôòíyÇtÛÔ¨Ù`X¼’ã$’¦½$85Éi7ÍdWꙩ/ABI±Õ燷Ö\šÃbEPE «Î~øxâ;p6Ú5´£„ÂÄ|öÊ~Û`¶­\3þ'q¤ÃsáÖZwüÈé.4v/'Áxjµ¾%Y3† #óÇ6¬æìy|^Aj¯ä–Û4ÒÆÕˆÉé
-V®ØäÊÕtßJ¿Ú™\z?K*¸6¥!ÑH³Á½Ù¥‹Lº|_‹MœMI¹$Ö›­»Zƒ¼ ¡¹ ’uºKÅ“ž
-·ìÛû'ãD¸Ø“²x};èþÓ–‡úŒ4D'P{”òeéø÷ÊÏÍùøëjˆ¬“q~½©ýë¼ñ<ZxàM>Ê€·ÅV¥V˜OëüÃwK,-èÄJ„¨Ôq®ÐÍ°î
-sþo§ý™
-#¶cër!¡W= „´*¯g±+¡‘À#es_‹,2™ÊãœP+ÒpuMYÖP/ºÈ˜ü‰‰;°>Û[¼”ZDñ½"ºßoÅq™Ü
-èEHÁU 1u”mLz‘ìåÃh p;ÞAåO‚¼ïw2}íÞ–!F¦†Ÿ’)fmûì‚Àü M½ÿÌ{<ÇRÚÖ[…§—Ëu Íc_Tž†t¾Ö“Þ©Û÷ŠUé„òPZÜ~›…–nX õCg›
-ÌãR7ù†æ9`ŠÌy8”5bX%2Z}ššÖ<.Ÿ3 9‹o§œgéJ€’Ï Âá·‡GæõÙI°g Ù[ããÅ)d½ T¥1vÙÍÅï<wú¤ãïWÖLœš‚ œ†ÇØâ3:Wª}ѪìpH¦Ü­|œ@l¯÷ŸS8±åëz,††ý;x âMJšÎH#œxå8Ÿˆ„‘Þ¬ÝçÎQøù—ÈÞyK|8aç*Asabvª†ž˜L)"Ù ÷¾¤B,ƒšqe>>þ$h(O®Ó=Æòè:ià·ãa(×ÆÞc1}œSBª=9›öÁï‰âòí§ÇØã®LYÛÃ%¸ö9¶Z³cçÔ%ו<7oø÷¯÷pn=¢+‚t³@wFQ´-Zå§;VIÿòÉòœ›¯ÀémÂYªíÎ)[HZe4;ä]æIÚ1Ô
-ë¶ÓÍeÖåW[v»óœ ¨ý³®èM6W(Js:L9þfzoÇÕÊåÄôq7ùX›§¥å;#=)GMjÓ§§°ó>7W7WB±Ú[·ùÿz¨w&"L>bq\½·„Ѫ~yQÕák Í«.·úû˜¿W?¬>¥¢¡@#r’ô-”‹Ea]eãò£»JÅ™|šŒ3’ÞR£ˆÉ½ÕÐüJåñDáÃhºÂ’ð‹²wíª[*Øà©r‚kº4\¾`fÜ^î ?d:ÍûEËf™³¤‹M”ÖCÓ„osCü>Kñ•¹4ÉÀOõ62|3ÑÎyõž=¹»ú1¿¾^ž®´—Ÿ5x´ !'„ú÷On,‡ÒoÝy€ùbº…q²{m Ì±ÓOkÏx†E+ÆÖÒ7ó!xìòŒF™³0¬·«H{¨˜þMû¾É^Ù^ÍIösìëôòC¨Ÿ/`u¨QwO¸øˆ”zŠãDÆFgÃî43ö¼š…¨{ÑÐ÷ É`²lAoÄšCÅôìc #sˆƒ6>Êjv*AjNeMx‰@³ÓÆÅ£4ìæh7ÀP­–gÂýÿµ3çÿL0
-Áiz“æÚæ†Á‰²ÍÕ²Ïm7ZÄUé×4(ê6•…zÌŒ¢PMpêÑýה¤ù†Ô(Y«»kªWÀî!`Ê£mbÄ¥„qgˆœíF2X3ó£æo_ÞdõÍd¥:»T˹’E€-ä{.1ëÉ
-dÜp®ÈVã _¨¦1³å{?î:Wõß~Šœ©"LùQjƒÖ±:KY5bx„6Úb ÿÃÖëlƒx¢¥ ~¥,£Y§Ê½I|çȨ!VÃ3µÓÂzG#•¦n4’£Ç¦ßÒù»oôu¶Ô~«Ó
-7Ÿ+ó²Vï„(a=ÔÅ>\M!†rµmè÷È%
-^&ÍËâJ€°—Ô²?\9¼h¢Y§!¥EÇÊ·<§ý#QÇÿ9ÚQ ·nºÝ's,ÂøŽ”¢­y–’Þõ¥«½ËÆð›_ÙïϳŠ5NÒë%Àv<¡¡ûÈ<{šOS*%älõËU¤¿\"•e†tçù›ß©s°tvܘ´t»Ç(Ìv« k‹qµ÷³ƒø™l9^÷k%}+oµ©´£‹rüR·JôQ3ül^{´v;¥ r‡³°åg3¯¢Ɔ’¢Ó¢\[#²Z̉ˆfû½Ç|(„›°ö5ÏL‹d•­ŠîhŠÆ.5TËúé䦆zp׬ó•ÓrMΩÄq¥r.œðÜ´›‘À4€áÜjÿ%®ÿÿh
+xÚ¬µcx¦]Ó%ÛfçŠm›ÛöÛ¶mÛ¤c;éضmwœô×÷óÌÌ;Çóͯ™÷Çy箪½jU­Ú{“+ªÐ ›ÚÅíí\虘x
+ŠZRò
+ þÞuû[T9Pƒæ¸‘WÅЯçøÅxqD¹ædªw^sÄM]SÏx .¯‰¹í9I1X0ô®-ƒHG¹æ ê¢[UØ—DgŸ‡ãµË V«å0çÛ8æ£\¼Ý þZ¯a®¿fm×àaÀ5jî(!ò8þ
+ƒþ¶­¡^€èÍ{[„ïÃ÷ˆ’<ev99Iò¨"…6‘
+†9ŒÍÈÜ—Ñà£o©¸(J‘Ô«‡¢£Ú>áØÒû§Ÿæ¿òç‚F.“@mô¤…{ *üàYa^’>#‘»È^™éµ]M»ñ!O>Ú6:ì௽µ©ß¿Øüäi:.C³ªwtã~êËRþÚÐxùܳð›A£^ë€3w=¨ÄËM¶ï9Ïqºx+ïˆäš§(·%Ìß2U‘ÂÙ‚q·¸«H.¿ž°Mý¥Óæ[ÔÞ»V›éïx"æk“­Ú«öþÕ—n:™C -cšÈá7Ÿ¥íß)ß ÂëÜùšï‰–PdÊû<€‡2¨O»ðK4ÿDí€ó]ë&²A–
+K0É¡R6uÙ ]Þ ½ÚIoï»f€^êØ‘é­?rËÈÒhéN¿³MzK¾3üºí±å8?•…ð51"AAžiꘫL’æ2=­Fæ–=éû&û-¯uuY#RæýÁ)„ã`î„ •H1KwJ,b#DÌÔ*S³=œ2èqvÚD‚„ŽQ§nî÷ßáB0$fúî‘UMpšà¯š¦tD6•“ÿ1ºµ…ðÇ9Ÿ’®„÷x¬Y \Â,áüº§Òç5qí'
+!ªU Ïš(6ŸN{=GÑZœbIPÔ×â·ß¼<O™-¸œÕÿ²r‘›ÄªAhøCÎ1HltÌÇâÚ6TŒ,XÇF¥Ên¾ýF6
+»Ý¬;öh_j%Ûº†@ßs ãµ×Y—K ­áÛ ¼ù[Äv—ªÞ`½¤ˆv¨Ñ7‡+}œ¡HŸÒ|v™ùËÛ¬Ð,!J<¶ÑSqÿ9f°Àï£î˜•]>hß#SlîLŸôq6q 3H;îÉ¢–ÄÆUTt=¶kxR©MTIßý4#Ææ|Î*_ ̤QkJ„Á܉?Ø?DñÞ<Ý fKhÁß­wl£1Š¸‰2O}zzqÀ¤&~”zÞr,R p·Šœžq—<%@‹ \Âß ‡ñªco‡?ÜÞ/ú×Ñljçù®ý„¨²ÒÅ¡s7X Gä:ö£°çZe²\é9`¶õkò$4•D™—3¶ÑHb²ý2HôüQ\`­„mÛhf*“sbóà'ý©ÌJ&?ý(d0îæmè…MùÐÁ¶å̯L³Ö.KÔgZj‹¸¿°äQc»ÊÎ Úˆy\•°‡3À44ž•Æ‰×O8SÀÊ›ó‘Ëm¸4"Ñ6yøâÙí
+vJ‘ß¿p鯛l›:d_gB÷áú Ó~»t
+Fê^4½¾sŠ5%Bw/k~Ýw½ªˆ˜;ÿ\'’¶a†òñ͇ñ· .’µèN~T1”t?9¼lxffÌóÌÀ— ¶ÕAÐX-^ØðÙa–ë|“Så;(Ÿô¶JN­m;~@‹°°a-ö{»Š+eü2·mÀ3yK¢<’æÞ`ê
+Òõ涆‰Ÿ 1ÿª¥û<âÇh^ü„áÀ*dÄé~êX”+Voºñe¡âÔÖåқÔæÕ%
+IðN-ú˜cÊu¿5“‰¶>¡ü•Ûˆ¢…[0tÛòÝí%÷ÚRçœÐÕEïñù[#û{Rñâ"+Q ¨Q˜JšzAgXʦݼ™Wú-cJyû(ƒ›K’êD½9Bº<¬䤒¹.Ÿk§EE˜¬Ûæà]¯@w×O.4~Z¢ÜFµÒEibK<kMâ;(¬Ð0‘P×’ h#Ž;·Å›œuN9À)ƒÃð9˜t§˜¯*YPgb@É:óÏYpè?ž}3¡“ÑìÑ QÊR¤'Ã9íû!ëÎ|óNU²¦[£2É0©„ üà{¯ Ñ©#Öû<…Áü4Êþýùa©?ü¼Ú¾A·¸—KƱ¡i}l}‹M¦ú(vr«P"fôŠ*^ }YÞ£K®ðË™p&nä.—þ5FU‚ñF4žkò]a£µDb]6ÓìD#0Úõ+¹«ˆb{”^™R£Âj>7 @ÆÆ=óYZ[åTmWZ2JîQ2²Qeì£r›+®¦~"þ•»Íá i)ÃL3œºØj/:ïñÙÒòЧDx:sIßmšÝ?W\„¤˜0¼<ai-hT. ‡¿¯g’A–öŠ~Юo…7keEEÓ—’!LðU’û.µ|§1Ð9Ÿ ?Z¾ê¶M®2_n4è 66å0¹H0 ÌôoÈøa[ôcñåï˨¶Ë®JÏÛXµ2åwdíÞÔ Äí}îîÕÓÜŒ¦µ
+ã{õ{;ŒÛ±Ña"_Ç/„°KÛUàŠè¸Kh¶kj‡w•7ÛÁʤ§^JóÏjVJM¿Úí$å(žDЄ¨³ZÇÒéy>‰|GZ5÷tp4.\P,5¿
+.üRø#.c+g÷¯ð”ãlkÑ´Eò-P›æO&ûïÓ ³ŽfsYÎ5‘²p™¯ë"Aå?©ëÊqf¯²¦+„ÓÿÄà
+Á´2ߘŒk”¸CéÅTÐô‡²£‚:˜ó˜¿8
+{½1Odyh¥Ø€TùJ^:–Èæ c6±×µB
+íP¾æ~ê=‹âAzò˜3æµvtG4pE9#.‰PUº†Ü»zCçÇ}Æâ LP
+L÷a.„º¤ƒ­ ÒîBœn]×qÀ~æ‹yçÿ)‹'•üD#s‘&Ç>1˜`ðÀ/kY'c´¡èƳE ‘1K±ï{ø<Ùâé§}ô¹ø*i›µ#ÝRüÈ}bÃ1™$ýøsX?üU+·¦‚áæª2|Ų[°*}¿Ïþ5Ô®z`oA'å|³âÎP‘
+7Gjƒ}> >ˆ‘òø—´iÌè@6¤«ÛðkÐÚ­L¤…¢×úN<üŸYghi­†ªKí[JA³†sl1œÎ£aÞWsö£ÛWT˶)À¢BT»[¸(µ–‰…ý HKŠru*'ì:¯½ˆ=d1lÃQ“–+»PÔQmÆÕQùDZ$!—è´9£ l˜YñŸ]œ•dq…ÝL+½|q£7(Ÿ2ìd»²GàR"‹5—ãtí )ï]J)táê[ c2¨º.#ãý—åï`ì Óö°d+(sEK¸r¦›% ØÝÏ? g'×±j×ýtòišïÒ——ýß
+iÉmYÁ5ñÑCÀÓLí¯Wù )É'³…BO  š‘¨Li¨¬3Œë†*¼ õás3OzU¶Û”`…J#€©xÃ!Ç
+LáCZ±ÿòLZå$’mÿ†ÏÓ×=O€–Pt®|ø:²ðj?âWˆõfm×?n®8!ùC·"ê5<SJ¯“²OfY
+Rp>9,±4 %¢£¼ÈoJLú¥N®yæ¡oSj› ­åÑ úŒé남xM·qCoŽ¥K¹=¬ÝxmPE»‘– × vWÂILE³ùu³bÖ[â*°…ë9x÷wµÇØwá‘”}M’V2Cßçñ¾"ò÷ħʉåÖ]B>¦ÆeëækBz
+ÊX û´0 MßÎU»Èœ ˜‹8&ŒSÿùnärKx3{+ÞÛnàá
+0ʬpÂt)ÿNðˤ—zÆŠ@̳k^=]©õnuœ§ ü…¤eyÍ„j‰8ÙÂH¤i…”]LäKjOÔ”*Ó…kê†k[„Ÿ¿[@Z\;'“tÐÅaÅ[)a»8¦cm÷ˆÏt£Pp+MDL×bû|¨b1y¾#4&ƒ¯âw”qi+è!‡hæÖïxQ»Ðý"¾;e¹ƒO­8Âz©Ñ¢æCq5®Í¥+ÔæôFŸ´ù~A×¹1×óbÄÆËüšN)«¶I;Rñ€”@xùL,ç(S= ÷}¹‚Χ®–¸Ã1}Éqœ|¤å8»5‘þ·×úÚç¥!€ñ5®Y®
+îJêÞ5t*¹D³ã9ŒþÁÔ)AV)ýK\Žd@ æ0Æ[‚‰00¿ÔÛI”eIõ Ž¹¥ ŒaØ&oäx¹—ö°ÌëÝñ‡þî…\¼%½š.²™{!µ£ 54\ß!µÆ?`wÒ¬E»œSѬ(› uѺ?^|êƒßvkižGäZ³6ž€Ï6Å*Öí…y hŽÈõ›\OôÜ`&;\ô­(áü­:Ç©Ýân´v(Døâô<i®ŠÄ²Ç_ïbÙÑ!dá*7 b¬écñ™GŠÙÖÇŠ´Ùå›licÈÓ©ÄKVµõ/Jw
+,J•zíÖï´YíRú˜W™ö<ooÑñ+L]rÃÄ3¿Ò°¿C\½±bc·ªd€ßúÌp¸àR‡;ž×Ç7I†s±=*/¾2»v8òžV|—ê½Wèz¡IqïâciŒæÔqœ÷-XùtZE•WÉü xA¸[p±Ç÷I켜…8 ƒÄð«Ofû’J½É4?¢°!Þš¢T7áD,XG’\…›¦© asY~ãˆÔ¨ò‘^b¬çOH݃7’¥âÿ„)Zs;šRMâ¬,Û…ÅÑÜÄ¡Q½ðØœI˜K?L.!Ç+Åîí¾ž7صª]äàðÀE>dˆaÖgÙÛ’ñFþ148¹¢ßŒÇ%‰»13#r¨MÔ°4â8‰ÜéTÃÛŽ bbÅiïй$Üꢙo¦žRk¢l&ÃÆ«zëKB{¦k&×;ô­Ü"di“ óGîÞÏèô•D§S5}¾ÒØ’Å*ØóNFoï@Š'}è/矓§¶Rf}b ‰hæBds@hé1
+7`Q'YBô¥Í]ľ²†kï×Zü{Ùïç‘á ³’çÐgð!ã’ Nn¼–¬îTâžÇ6™!x~Áx¾¾†]¢ìñ$nR“ê
+ÜQÍàæÃÁ«ñX±Ø%ZxNç¨ç”tºðà‡Um½_a°H R¶3Õ"Dd¯q½›$»! º[êуA±Ë;]3Ž=ßcR|ëù’”ŸÆ_Ý™ö6æ-þÄ{–2¨2ÏRu6›ããžVX~V ±üÖ
+ o»˜š=ªk¤íѳ€ú倥¨ûü
+Åq\`Þ³ ,‡­1ólw:)*Ü F Ï_ÁÓ+øªÑ"¡8cöFÀ5L¼{ÂrsH¦ D"('²—çReLüƨ“sFòZ«ƒg[>¸´b‹¤wW,¼@•© tNlÔÄ{=ãÝ|üS/³Ì?!7vw¾¡Q@ØÒ¢lÎAµÅöö&N¼ÍÈ
+o”ã©J<ÛíŸSš ¤i˜Ê§~Ĭu;àÍbg8³L¥w}²­³,'2iiæýäzºk×Ûº„–~NûºõåßÚø±Ôuʫ Œ½NÄ·Ã,Ñ/YÔèO”Û’ïÆ19øC00eÁEc•æ¹v\¿MÛEÂÄk%À'½‰´ëžd6$kŽŸüHLب¥fà"°ÆèQŽºüqwÞ¨Âõ–ØßHªU-^?P‰1r;Õ0›,9ˆ¢
+#ÞqÔ¹¯WgŠ"=‘H;n&¾³ö–2Y‰BÙ³ç²)î?ÕçŸ}4‹Á]=F5úË—nÜŒîôwçá,tµ¯kΉœU¾k£ó‡s“VKZsÕ‘/d?‚ÛÛ;î:êzpµúíÀ´""BÛý`“ô†v℉eÌ"¦>‰~6„¥ï'YRVfåŒY½’Ÿ–óTîèæ‚tÚ«úåÞ,
+R¥G”þSÂ[ñ¨E«ïäß:—’LO-í;¯®It• ñDR¬\$ò³Ï;•&ë÷ã€^j£nŒüî£?æ}8Î=dÐÉ…¥ç…„
+¬sÉ«t“J¿çî‰ñ&K"’Ý™¬ñ3b¡ùm)pògõÞ¨Ò@7ZðbùZëë3 $‡–}ÉR?Vô]×s³ëhœHª'H¯œhaVþ|£
+fi§b…¢ÃlùK§Í…ý`èñüªÅÆÒ?ÿ à9;¤Kg±'¹ ‘[3£!<£n“7ó˛̆¬C<²ý|1&‚»ù£ßÛÝN|«‹ù¤qµñKµŠ§nÞÃlo,Á
+§n ªþØü‘¨n9Ñ羘cá*ý®Vó,CêpÍ›„H hí&.ö}EMÄ¢]زÊ:³š/5C¸À7‡‰å ”Ûñè™7º5¤:êÇÔ‡õ¥k¼Žjs‹f&1¬KÆZLsØv¬ÀqUµ¢RÌÎZñ5¨¤¦|ßCú£•Ø8ú¼Ÿ÷&d‰ç›š ¹¯õ2¥/Ô>)kY­õà¸s†Öå¡©½LÐÝ(^øYv 1«­À,Út˜•IpÀéÌž8™? ÐÓø~!OÓ¤[gàUbw³´ úT:Áh­Ê­Ë²sMZþ÷œ‰Òb–= ;[¥$´ËZÅ_WHÂA¯:LÊÚ¢9ÈGÑYì¥b›Ï
+× zeRhPzj#‚N ú˜yújtA‹Š‹¦§e’²É°‚ÄÙºèÄé‚;§g†•Dê¹S,ºQ­€]>TÃ.X »”ÄüU›B]8÷‰­k÷¡²ìè HÛa¢Ùk^ì‘þ'í}ƒE%·š«Ïòâ[ÅRÅÙ, VQ…€Ãù®:Wì ò1x˜ÅÉ„ŽÌ:ÏÃŽ]é%·{²Èï<v»Ã¾A¦1¹²ð›È9Äîªl«ðËc¯{0;§°,ÆıÝò[sèñSü¬št pb‚¿ˆÛí”&æ¢Aã©Äõ-!_/‚BPfÌÃѯjcîͺ¥¼uß°ÓÀî‹çìÉö7«üÝ%DŸÒF
+ÔÚ½#š4ikíóTF yžÖÎø AŠI½–ëÈÀJ7 )‘Lkè„·~ÇÒB¸KØs3ì֤̾ÕB{6é=]óÎÙéyʵ üÂÑQû
+÷§@_8èm¡çö? ¢Ç¦‘]ะ×É ^Â¥ÇWs®ŠN¼â óy‡è0 Óà-\—¡`fo¹÷Þ¢³Ò&S
+Šp׳Xxçý3SËŸ²Öî´©–´…Wë¦v¸þ¶_úÙ"d–üSe¡ýYêíÃI íB}¤ÈÜ`”¹ü.E÷§íÖì
+‚HåéBÙ+~²¸Yé"ÑY^ºÈ‹]¶a{P!>h¬Wáæ,@a&##€)E+6R]¡L˜q“Ëó§G8ëBçŸsJйSjú
+–%ˆß®5[/ty§åVëÚËè©2—f&,b0C”¼qbÜ*ÚÕæWÒ©=n7]7Çm2ÔÚ$Ú7/5^õÔ?S¶ý®„žÈòNòvÍOéC¥ÜC½‡:R×j1ÉK–pùÁÕ¸´î*ÓŠŒl È:á4Ñ¿„0L5‘ð3[j¶]Gp¾€Œ¤Jpïz t(23/L@öcEƒ¶‡Iüy{I6£4ýÃÒDò95‰ÌâaÅÞÖg¸ÆaWž‚i…^››J<Þ&ØÀ© ¿Îèug P:¦ì<}vSs¯j8 À+$f¸”~`ŸAN0ÍÎy¸ê=(­­UHyJ³þ|²õ™(À¹³o–X³Û§™E –:b¢Ó”u³ñTÃzÐ4}qƒü£ý
+á_>ÃkØDG£c’§8²Ï1|°
+‚XXÒ§ßz¤•tCo¡Æg$‚>½Q'µ/ÓÚ.÷#SŒ[âa¹ëÎsœa§½ØM Wå³l¦ækÌîØ5>=Ä)ËwôæJ9Wvg«ÞkËŽ2|–‡‚{‚µ='æà9§/[ ÙÌT‚Dó†çʳŠ–žyÂϤF¯õÙ]eÿ¾Ød^"„þ J¶ÔÇ:ÅÄzê9âMÂh³#P7œ¢»£…ÀÙkšžò7(P‘ÅÈP€òaÒ•éÀ}ÝöëŠ,$ê&€×VÖ@b)]‚níòÔgê?Î. X½VÖz°bŸžãÛøà3у¿[B!¬¸à‹0|ù¬°1¾Ì%Y¶RhÇæüÅõ¼LçÝbÍ”lsœRK'äîP ÷ÕJò5äÐ:^¼lµþ¨æ/-"H:%§`#¾èµKv’cdò¦d aYŠòTaØ ÃløK.»VµÖ"ÔÇ”Ýè ËF0QÃ7šÑájR°šðð:?­
+ {ó×Zû0'æ^­^TK‰)—&ž×aj ¨%ùìczÉ€a÷ô…¦‰^n¸¾‘³:òÉï&/_!•Æ½:0~¾î»ãÉ„G su©“4ûºVÔn:-}5Ä} ŠRúãmïåªàªskŽÌÛd‰…(U¡\ÂzµMÄ© ÑEÅnDµº“o,zŠþJH0ÿ\™Úkõ»mqWE)×¼ÈîÐÖ̺þâîocé» Ž[œI“QW$JÛJj¸ºÂ)'Ÿ%Õ)A3uñFéж۵
+õÇ*"Åô»ß8~¡¸à~†‹!‰zךb§Êg´‹æ¯}oÔý¢àÐæaiCÇn/‡‘?,ÊÊ­æm»Iƒ¬~©§à¯áâñZyó§ú™Š‡úx®ãª)§øÆRtpÄÌÌUÎz+ö$ÎÖÌÇOŠ¯ÏLªh’€¹eÒKÛ¡IâGhÒ˜åS” $¾5(D[ Vx±Ò/¡Ê‘…kTzÏJë À.Ç_N¸wKÍ:4bu‚jðtg¥+û”HåbÐÊhªôŠð%ªÔ™Á,–ĵ½A¼jŸŸr‚SÛ ôözF¼ëDÈN Ø£ô¨1©þÁVG ÒÑœD¥ˆ}™’ˆFV†#s¹RI)­p¿ÎwŽÂ/Pcé×ßט½<ŸjØtVmÇÈ¿®’RŠTC°p¢íßj]ºç²ç` ¾@ËÁÛƒ…Ô ð ÷åΚó"v#ڬ͡F«
+ø©,_ëgi%}
+‡ÛÖ+·ž"- ´é¨Zî.K–ع®ÓúÖàp¾W
+%ø>U£ {ü~èð¡É`8~}B¾-Z×=üé«XêBù ùùðž^Q@e¼tœ»|ìלPC
+,ùÒ’j¯þ¹òÁ;çlñ{ªýö„—¯K»pNÀk)Óè²É ÷Y«2Ýœ z¯9ó%Þ¥ì7þL³ {¿_­…~¹9Lé>¦œaO*x¢¹Ô¨ÏL¿’ñÅWÄi¸žUÑ3l%Ø"pM|C³FvËØAØeˆÜѬ!^íüõñ h¤^¢Ü(
+¡/ÍÂaIú ]€á?êù=à"»Ñ¾Èß ¬_ikS?ýsQÈù/ ¶2>ÀTá’¬s.ªÃää; v€)íÛ¢ñ“Ùqoh±
+JO­›ó0#‚ÆÙ±âI ýÚÒ®®lÜŠ7£QâxÛ˜ËZeŽü&è?—Ž;þT4ù©Ü4Þû†ÚVyª»jÞqƒi1EY–ËÝ»&µ­6BØ内êÝÒ1ñ!„c41ïýÖº Ў锉WŠAkxg}¸ƒQ0w}+õ¤ì/ÙO)O ⊞t$màVg†CÊ\?/iÑwi5ô¶_W.ó®í$gÁušã´a•F&;ÂÌY… ÊðrÉ"ÌË–#¹<¯•”å,N1Ä«2n´Íõn³§ªG¯ˆ&‹a y‚sº‰ËÖíŠ
+¬C@º6¥_ž¼6<K6ÆvÔ
+v÷wÛ8Áß×ý¨iù1=ÕàË[cw<Iz7»„ÆËeÀ´°Ùf.Ý“Õ;jÇB†#ê¨ •ãL”2^ßw%éøh„¹›UùuºJ5 =«6âA5{¨½]OøŬ]c2œ³>4®‚ŒÑêÈÁž˜iê;©žsU±weÚëâQ«TqïëìñÖɱ?~ÜËô&Ø!骮¶¦¿®ˆ2™Q¿ôƒÊ²¦ˆê ÝJ_®x¬[9Ÿˆï%ßÏÃÿXTUµês‰›$½H£7Š¯
+å+P¨7ùuW­@Ùò9ÿƒÖ«œm®z5åqÔüGš{ÜEÈOÔæJä4걨ÇN3ôÊ{¢&¸GOo’G
+MP()Ò$š×Ž·Ý/F†jÖÖ*¿L¼ °DüÑJ,Æ@¨£¬!,Zf92X>À~Њz'0E–œSL<Šp¯”¯Cºå}ýšà]²ß¤`ŸðJß®¹‘JÄšTß(ÂT&
+î€þT·bgJÂÿ\[!; ‡Nµ`ÔhH:óƒËž$)úµJÐßù‘ëBXѸq•©eÝ÷ÛpÌc¹Û ²
+ñlF»ÄË´“î‰Yi RÔtõ«= :tIBd•Îͼz54fsÁ¯jÃ-0D¥êÙ›Ö½üpë¨Õ¥œ$2Í…Š¿u ËÞðSëu€¬’.ï¨Ñ†6oîjŒ&r#ùÀ²(º)
+34‹>úË—âl¸ê)8•C7ðÒƒ¤kUǸ¹€//É×`rHRôHåý5KÅMOÚ9ýà{/*ƒæ,¼HÂƶ‡©gþxvç’†"²
+²¦!<]ƒ±Ë¿í‰HYFù•èŽ^KshšQ’b½Ž=GÕ-=²&‡æéï¹z¡ÉwZÕ–W¦$¥­é,ÿŸ‹’óé¿ßým¨½™4Ý(‡.ÈVÞgØ â…#“¾™û½ ¬Æ±nùêN íæóuŽÁÃBØÕÕpÃDÉ«[5“+£H5?¼üÆ.ÙÆùT¨41ººí1Åú%ÎáØ¡*#å±?ª DúÐaó‰ú00wÛkÇ­Nó ´ß9ÒÁ¡ÂC
+ïåIÐ}¾ËûÈd–@OBrÎ"ˆÉã,#’Ë$OoÞ
+w | »âÂöÛ ´Týrˆ/ºËè8ˆÙãÐ8m-,ªŒ£ÛÃå éíZ{[„ðKšçß%[M"
+ú"Aîû˜ƒs†#X}æÌ—¸~6³1*5Å-:X¦r½U\‹EˆföŸ
+æåS=¼ÒÖP9û; ¶R>Eã¥4ä ñ¥DöLå«ß"­ZìÆ .5à‘Î/è‡û"îØèMÄK²ea°gýç(E :¿µ#7­‡
+kµ·¡¶Â 3íÇTIøᮿR­´ xÞä¤~À2KY¸7§FtP‹õ*ZÌÃÀ“ï}Ô÷á…÷`âðER߶@¦Æø"ê^3H*ÍcéZG¥~?ŠîÖcÐw¥¶7αÎ_zkB â½ÈþvÕ¼[Š"e'ä ±ï¡¯‚º&Õ‰ï¶/¾à~áãCºƒÑW ÀÆÇŒ~¶ê E—ì v¥÷‡ß?Æ&*Ï“âsÀlÕHú”í,ôœà×›CâܗWJûmð3º^LrŠt›ì4?æ÷bÙ†Æ`’Ôi(„%|H%"JmŠŠÆ,6#9“w§Œ{ñŠŸ‚×ÂþÈÝ=óæüçس¹ÌÑÉB²$²î4ªÂ»ôöòƒçž+mÂá¨ÿ•%§:¿ÞܧþwLÑ9­ å¾HeV˜zcÎVN
+îÛ7ü‡×û
+²VÄÒ`.à›W—û·ëŒÓ²{9?Š/ÄB/‚@ñ9RW~ÑÀ¥ŽJûáÞ¹¨ÇÓoÚ1À³‹0zhIÊ$@¤¦>Z¸3W\pnŽóî|#~PWþó&¶ÞUõ§<”s‰,ÊØh>„ªÇ-WôÙjäkËom=8_
+Í6Ë<dÿvÐ7Äëx.#r ]ª’ÆP’}ÀÏ,˜z¤*†—ä&½ò-€MX=¶©¤'UÍs5rbƒú#&Š;~Xûª «´ Û;sÇÉ­'³zY#Ûf²‰t¤RW'u% 7ÙÅÀħ¸ÇòåOËÔ.ª‰™ë21ûZ©lT·B3KÈz_zcŸ{ÞHÅ&e‚ó¶ˆÆ{Á”ñE½¼»Üš‘ê‚FÚ±AGB¯Þ-åùçÂèmmz“åïáNQÅ¢6—3poÄõ0òb[×¾«ê´&gtN&=ëõšÀ­çøö^Ëê&×).•
+4…)Ö ºÐ1/ÀÞŸwu­ZFpd÷KñÛ IÄàŸÊŽ¼°<Ý0’]ù{ÁO èp¦C×¥âHv¿ù7í¤š~JµbìIú zÇYŽí;7@VäÓñ»Í-åpª·~½‰*xÔPdlÕã£?•`ù8n‰’^;+SÄSÐáÐdJŸz“8(ö=XX–Á†h\.›Ãá+ÞŸ…xCÖž²JSæmÄ[ h}*;ò­bj»IÐ#ö\[¦Ü.?3ßø– ÀÕ,úIީПk ó‹Húê,­¹>0æÉ2Æ]IÓOÌ v]²H—Îy©JÞ$"ÿþz¢19¤ÍƒƒWÁˤyù@\Éö’‚Zö‡+‡M4ë4¤´èXù–ç´$êø?G;ŠáÖM÷£ûdŽEß‘R´5ÏRÒ»¾tµwÙØ~ó+ûýyVQBÂââ±ÆIz½ØŽ'4t™gOóIbJ¥‚œÍ ~¹Šôá—K¤²ÌÃî<ó;Õc–ÎŽ“–n÷…Ùn•am1®ö~`–`?“-Çë~-" £¤oåí£6•vtQŽ¿CêV‰>j†ŸÍkÖn§tAîp¶üálæUÔ ÀØPRtZ”kkDV‹9Ñl¿÷˜Ï…pÖþ£æ™i‘¬²UÑMñÁØ¥†jY ÜÔðBîšu¾rš#P®É9•8®TÎ…ž›v3˜p#œ;@í¿Äõÿà"ð €GFG„Á#C¸þÜ@|ºendstream
endobj
-1253 0 obj <<
+1258 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 34
/LastChar 125
-/Widths 2817 0 R
-/BaseFont /KDQUIR+NimbusMonL-Bold
-/FontDescriptor 1251 0 R
+/Widths 2834 0 R
+/BaseFont /PKANOS+NimbusMonL-Bold
+/FontDescriptor 1256 0 R
>> endobj
-1251 0 obj <<
+1256 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /KDQUIR+NimbusMonL-Bold
+/FontName /PKANOS+NimbusMonL-Bold
/ItalicAngle 0
/StemV 101
/XHeight 439
/FontBBox [-43 -278 681 871]
/Flags 4
/CharSet (/quotedbl/numbersign/quoteright/parenleft/parenright/plus/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/at/A/B/C/D/E/F/G/H/I/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 1252 0 R
+/FontFile 1257 0 R
>> endobj
-2817 0 obj
+2834 0 obj
[600 600 0 0 0 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 0 600 600 600 600 600 600 600 600 600 600 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
-1232 0 obj <<
+1237 0 obj <<
/Length1 1612
/Length2 18918
/Length3 532
@@ -14263,7 +14267,7 @@ xÚ¬¶eTœÝÖ%ŠCpw),¸www÷
wNpww÷
økd‡§¤u»€ìíÄŒ]€<
`e°pssÃSDí<@–.
-tøÇEp
+tøÇEp
ÐÖ¿¶qÒí2”"¥ŸjFy_ÎÉmBép0kìo)«”¼ÁM´}s‚»|¤ñ'w+ðǤxp@ö5Mý‹ÕŽÚ†^Wxrú5ñèñêÏðà@×5tÏ]NìJ^7(¤¯‘þŽ9‚:ê•Þá40éMˆ×­—$šÞy”ø¶r/Jù+v­roIÐé­‚|‰òNR-{UZØW3‘|‰ÜÓ¹Ÿ«®”âÎ8|M„ãA½7SÖA“™°?‰î!®¨{üëlkh_zsg'•ÛKº7ÃìQ23 †»V!‹¶88Szé-ŠÈZßʲÃìb“ÿ<Ìišð·uO[מʙåê;Õeâ*1žü
=Æ:nâ(4n¼ë—jºÒQ•"/>Uöló½ˆtë% ˆ/÷€{`‰ÔÒE¨N»cj,Uoo–›U{Lê,þòÛ’`>8[œÂ—;1Œ"ŽÛd6k$T÷ó¤ï0ÃcÃ=­ò8Àëø‡ël2ø©ÙB ÿ-NE>…°­VQ?SÛ׊Û_ZßjcxÊSH£k‹_G–‘'²Âøøc±£ ~´½ Àë5ر3ìä=Í’ù9õC[¿êŽX? Cz!‹YÀGóµgàÝzŽD7 8’(GD¹‚Hñ%.fjM
ýÈ#§:Ð YœƒN o‰ÓûFp=)I%ú&Ç.½Ù™£J©³k´ ¾< ý6K†#„Rcxü¸
@@ -14338,35 +14342,35 @@ M¡„£ÉãB¤&vIA{}ɨüØ?òXcçR&YØÜ„*3cµ,;S˜©fKnLXӌȊeL§KSü,‘Ó.ýï)•òýX©"pnüÁúþ
î_æ7KbËͤ\Þâ?MÃòõ¬Î±Iž9ˆSïfâúó’Í¢qÖcU…D”R&ºP8ÐÌÉq‘púÛS¦™¾ì­§Ó@K¹¥í2y4,à nzñ~†ŠùÝB‡âw¡8²X7Õ…VËƶê ÿ/HñÛ‡8ž4ŸŒ[½‰;[ ]άT ¼HŠ¢oŒRUÚ÷q§X ‘ôö}‘÷S·‡¨õ`Yœød2¦ÐyÔ¾õ\¼Ã1?a#ò£uÄT!šÃZG=Q’›ü×Î]ÐÖc›9/±§dÒœ…i¬¬
õZ§¯‘6’4Lv+åÆË È/¾{Vsü¡æ;¥5Þ‹ÉÙ“÷°KqÐ@-Âú¥˜UJð¹;ÑÓn ïŽéU/"%ó<ÄÝ{ŸÉÖéFq+£¿
ªÎòêžëÍxì¯÷ŸQg›a+q%²½[ƒFe$™Mí%¸³År@]CÆ"pI“:%?0F»X¸_¥fÌN1¶Î®HŒ¹\Y2¾{Íï!"¹´èÊ­6fB®“»Åõè¤ÑO0–0¿Hú^˜4WíagUv;Ö—FñIôüzçõYˆØýÂè`²ËÁ¬€óÈ5è”CPWžà¾2‰ssFHâzS汕˳ŒÍ¤ }<.ëÙiµD{ä\Ì£º9! özד!î0Š²÷V;Ö&Ké¯(MœV}îüøQècL“ÈÒÎ3ïAT‹ëêןÌ&Ê'g®çÅVÆ´FÚÞùÊy¢tc¬óºøÒ-yfgA‘zTz¼ì®øŽ-:y@ƒ¥±ÿ\¸"•?PVÏWÕE†È3Ê lDK\$UÔw¬>rß©Dè%<»ÕìÚW”åv\ÏÓŒ ø¿€§Jœ‹ê¸
-A}Ü[®L¼«#²GŽ_aâÍ¿KH¤ŸŸ‰‚h ¼ª»,_&½òîoy£pB7vKŽ£¬NhÄO1û_¦¾¶®rD™91Üð)ÍÞºsùTAÍöæ÷Ý¥éëc5?Í‚ÒÚ.îçþy;4Ûú/¡üà"€ps°óòñxeç…¤ü?qCendstream
+A}Ü[®L¼«#²GŽ_aâÍ¿KH¤ŸŸ‰‚h ¼ª»,_&½òîoy£pB7vKŽ£¬NhÄO1û_¦¾¶®rD™91Üð)ÍÞºsùTAÍöæ÷Ý¥éëc5?Í‚ÒÚ.îçþy;4Ûú/¡üà"€ps°óòñxeç…¤ü@qMendstream
endobj
-1233 0 obj <<
+1238 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 33
/LastChar 125
-/Widths 2818 0 R
-/BaseFont /JNKLIU+NimbusMonL-Regu
-/FontDescriptor 1231 0 R
+/Widths 2835 0 R
+/BaseFont /SGHPXM+NimbusMonL-Regu
+/FontDescriptor 1236 0 R
>> endobj
-1231 0 obj <<
+1236 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /JNKLIU+NimbusMonL-Regu
+/FontName /SGHPXM+NimbusMonL-Regu
/ItalicAngle 0
/StemV 41
/XHeight 426
/FontBBox [-12 -237 650 811]
/Flags 4
/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/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/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 1232 0 R
+/FontFile 1237 0 R
>> endobj
-2818 0 obj
+2835 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 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 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
-1172 0 obj <<
+1177 0 obj <<
/Length1 1620
/Length2 20127
/Length3 532
@@ -14374,76 +14378,66 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºct¤]·.Ûv*I§cul'ÛFÅNÅFǶm۶͎í¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ú%ìí@ ,ŒÌ<
-…ü5Òß1‡PP[­B¼ªùÕy{Ju ¡glŸÏßüC(»ƒ¢ÈrÓÛFÁ÷jð§fÌÁpC`¶
-f†é”/–é„ÐaÆ)¹–ìÉT_ÄAÇDÆ@G’_²V ú¿IÂ>^"òœ’£\žpÖk×Ñí HNZl¸Š”»Ào{ö«OŠ—©™}½ŽÈïqM gÀÁõ@‰Î
-vÌó™\Ÿäsi‹ ø'o0=ÆK‘ wnÕÉÙë)ÕiÞ8©dÆî¦uË͈âL8{8yŸì'!HÄ`9õ'žz6±VÁ‹Ã Dp.µh4ÇÛÛ8ôÌÊv]ÊB‡ºŒŒžš¿ØKÕËËÃÙÏ£€_ë%ç=ùäÚâô%N¥¡[é ¡Zß—”Ž8¸³OÊÖÚvAÔÊ
-ųÎ:]Ní®¯jï‚?Ú1Ü¡}ú߬Eþ·ß™ã…°ä]x‰©9
-¾@£dJî'¾T¨×
-z õÊøjØNE'·M¼¼² _ÉHËq zÎ9W±O´à¼¢\Y`Gà^ùa“ñóQýÕùÒ^mš¿RDÓyYÕãľ¤w§fküV¥_d•ôúÁï¡qUåM»n<%ò„é±D}^õ…ï9ÜÚ™/˜zšâ.Øè×)ú/…0×Ο· ×rþ¦›§›Ü:;Òé:of\ÛsG§ys÷ÌäxQåç!X[EsèAm®¿NB(^WÄÌoÑÎÉ…qeQoP½'“ÀäŠÛ±vÅTäŠËÔ›Ê`Þ£>G}òxeVÈ#E²Á¯¶b@:4ÖëOØ,Û“œÖ˜ w÷Ý@)Æ óeîG£J (P å[ývÞ²zž¹<ú JŠ ÔÂY­CµŸÐÝ^R°¼k eMÒ]@KòB ™ŽtF ò°…&eð
-îïø`—÷¹K³†>E9‰ú¢%óeKšb¥6$O÷Àw¯sjºN«–'šuYv™ÁuC0=õOS‘GQ‰þ¯Âì{êMüqûÊ¿ûw^³4)pD^W¾i 22øQæBæeëðÄø8Ü+Î(ä€#x2dßë~r%³õç:9ÿ8¯%è5.Ý‹IáÊ9ƒnò )6Ý(€É7ÇÅåÑ Ú:T÷ ¼$Ó­jæÏI,n›Ýƒ0C5r ¦Ð{Ûôù4uJS·1Q¾àIÞ[°šùq™B·ã§ThBŒ¢$¹*3„
-j)ÔˆÀ9”‰©P͸\‘<«Cz„ w$;48™un¤£Üó
-yÍ:
-Þäâ¨Mœj‚ñí*Ã;øí3ÈñÈmľÎV¤>û¢{Ž'ûh„³vÁ›¤ÊŒ=N(ßÔ™Þ‡RÆÇâ-ë-U¸Õ¡AÉ^³Ø1!>•…k;oI ™&Z£Åó²A`þH¤Žš“´¹žÞù=&¬;îõ4vŸ ]Â÷žå·£Ë Z±ÔNnbáÓ1¦[^ÏÂëMᬯij ç_ÓTô²È§šl`îS ñö—›.²XˆGe(p¤.¿¡ CžFêJ)ËÂÀ€z®Œæ×Ô9øè¹'ÆÂ-ÉÆÞGܶ• [|ÛþTÿÞ l©5· BZ«àà"—䬩¹9£ÈµÿT*qq„ÏÏ4dG<éZS{Ëèœz 2T$g€ E‡úÅ3P&¶ãäQ,À‹é$‡(YÐF¥›Ýúg¾ÙþËœ;HGŸ€UÏ0/ˆF®A¶¢ºhÝÂüÏɬSŠ›?…ð.zì$ƒþ¾‰OøBw F9.é»°{IÛÖ]µYÎÙÛö>….¹©i>Öª®¤Á¹º·t’ÞѱûªÜI r<Xh[_lÒíÅU1î¤â(ÛŸŒÙÂp—)^ðC7¾è£½k¡ú»¥FÑ…ÝL”ŽˆÃSù8Ø'ȸŽô‹òôÝ´àvÛ\ûƒªH(dÎWs<eúJR˜)[ÈùÒ;.ŒÛ=õM"%Z
-H;\æ ¦oyd÷5/‚ZY¦ØßY‚x/ ÜI(ê_SVò÷O”ßmÛQ(±Ò´È{u½î}"ƒª7àú(˜"äa-/ÅGSkA˜M™É~¥S/D+âˆä5‘<šèaŒÒeÍž€RŠÕªµ«™£Ö½KxfÕ%S_olË+ÇééG~Žá^׎ÉñHž‹cCñ ûKÅ r„i/©ÁX¨ Eå[-6áËM*µÖ‡ßQ‘ÒY 3œœüÎ$c;¸™îÎôœóð!¢¸†„À×Ü—Ç+šž\[²7¸¹7ÚÆȈ€Cà[VZÉŽ6|íd›®y>vWL«Ýa%´§AX™ée‹ÇXço^´¡€KE-éÍBòŸ’Þ®ü1Ò^Þ€8ä„áU„4‡Ü46
-`YzY,lsÿtψSòé’üZQ”²8 !Êó@¨`öžnBîàñÃ`N€¥Nw§©Ç!ô$ÕæõÎ%¢ˆ(­Ùâ ÐκÒC$‚é‹Q
-=öRþ÷y:×S¨‡ÎG~.Ílñõ¤1Õß«Øg½ ?o!==çxQWP8?®~|˜Üÿ¸¾x¿¾tW õ/ŸU®kdY¸Åã–„ ¯iHxºâñ¸l±˜“¾ž?b™qé®yx@cÏ·è£P(&—.!ÕGÑ‚¢™þ=Wc7Ü1WÏ28'ƒ;2[.ˆxý‘×µèÀw,ÔE h@¡3§>WYˆ}ðùaæNy´59ƒ‚Oà
-Û#ñ=X6µÈøÌý/ùj¨5§äÕ‰X¦NëxþU¢lµÅ•¬A2fNyë BåK@z«1ÅÓÅ¿fÍÈnÿÙÒ©ê¹4mmÒmyŸ;þ-áu
-¶Šy­ŒØœX6$ XbLÖ¯Æë6SÅGó´»k%¾PjãdÉ\c_¼œMMâ›7IJÑ1è‡ÛÒŒÆî C¡oÖ)ëÆ
-‰} âx†Ü²t¼Væ–67Î5¥ðž)‹ôÇ“‚õ\æb—qå‘!̸øglnëNò4ü ˆ
-/ô Ä@þåí‰e2bƆwU†ŽUöq`æïâðÅFŽÓ⊂™¼ná{™š¢5¿áPƒ
-\ÅT»à^7–4N’’Ÿ»$$Tƒ-L3éΚ¹¼Ìè-h’T8 @½Okè#ÁMÁ[¯/³xO:"¨4áxüåäL—<kcèyÇÛb¢q¯ÐRÐŒñyn–yÍ Õ4ë1qÑŽ{¦í¾1'.ämŽNèÇ!Êâhkjìšû?nP:±³4¸§†ÅÜ9´mºAº‰=¥“º,fÂêhI­ ôNÖ»ïü'hä<Vk
-Á³‰Ek-˜B©äöVZq*ÜO³«ișꓛê¬ïžŽð°Á©ôÄÄ ;Òª_俽Qì˜ÎcNµ{pÝïbÔNÏ£….Öï³J–Þ­†+–½º5©jµÊâ?ÁGtiÉBs¸¯vëÔm)«[™ïE»yŒãn6Ägî¹ÖªÐR“?Áµ7ßûx ãcå«B55Ö°0§¾ê cu Çð'}
-
-ä+N‰Ø5ÞNj4xÐ]›€¨áàݵmï+Zf;ˆ?Çåe³ÝöPà·oŸÒÃüµ—¢I¹ë¼“F<{½*-5 …)ôcÚ
-#oÓÂíç ç‚
-
-8À#D=ÐÚ–'¼ËÆ€7aî^MXÛsänjã„h1B–¤ÖÑØÞt\§´äŠúã=/t2K(¦­H÷±X į̀W2­ál“åÇ W÷íÀyŠ|¸`¡ïì¹Æî§È…çÁ™kÙYÔë:½ |â­±ôÈìÓDáw E)³*j³sý«‹ÛV]öŠSl|œf&EÔô5L‘VÑ V ºZ™ÜŠ2Mù…%VÐ`ß¿1¹¦²¿‡T@@jLªPèȘ֨s*ô½§ Ëâå®è
-I³ÙêéœÆ–T©-˜Q§5߇[„þÚ@ÂÇŒçoT§÷sa‘‚‚Ÿ£;?®IÖB,$Êq®G¶qÞâ¯PIJ •£Æ»¨(¡àœ•SÕ`RHáRp”·Í/i¼™É6vÁ³ªÈ»ÚôÎvñoU;]äW¸é­ysQ†$Z k›oÀëãõO„ö¤Î£ýÁË2Uø˜>¼sUàtO?úp '@úÂÜdÛ¹KuŸCí½ìe½oÄÜóÏrž‹ëéEÓ3ŒžÈèÎ#$ûYjŒ²äØyÇúÚIÂOÁu )–8 Çúƒ}Ú |þ84G'.«2c2´GÂdL¡ÌàŽ6(­1¥²ò&µÂgùð‘ôrœP$A€+ÒádˆÐíçÁ¼_äÓôèä8\áä'wÇT`S^JkÊ_HÿΡ ÇÐïK”.±®:¤vìÓîÓcˆä"AŽ¥Øm¤.l¬È¤÷4³å)¸
-4=_A€ï CÎyëºnlT÷SIÆlBŽãÇD‰gÿ¸e‡Ýl‚È¢s›y|œRJ¥sáŸÆ%÷›oßú§gªDT+êg&Ÿ‡
-ÀáRLæÃ2–6çW0*¯bö"QÛ 8Òœ3,´~~ý¨yܵ±®ƒ!èk÷}“IU?û
-^ºö.ÕÊ;â˜<\éæjB† :æ‹ãk‡o™ùžËýta˜A=«(ÓÔ'ŸÔÐH•ÄN!z^“kðw¢ëKËŽÌ´«öߪ&ZÎØS³_­ž!¡ÑÐ9†˜mx,by5À,Ù{Ô´9s†s_=ªŒBÑ3ú§ÉÅé7˜MgðRSÙ aÅL4äÆÍœdä’¶î¡ÁZ’Ô§q½ ¸‚’6ˆõA3†Švbwq]o§æö§%¡×+DðXÚ2ˆPvêð7?³Í®=Dø"EL‰ÁÀ} §Û#WYççÕ"ú­Cø(øºÕèa ,Ù`­}Ta¼R›L΋ÜW’ï“9Ž˜oÖ”c/9ŠÈÀ°º·‹*£ÈpOˆjêû‹ ª`= à^SVnæ¶ô@&2†4.Ê0h-5zPÖz.Îxúƒ)Ë+™ÆÁ·ÙÃ!îˆF°²VóöqÓA#õ:ãF½À=Ca祥…1‰d1xýº¿ìø2ï«9Œ)Cí$§øV„" Æ1‰F¢rnêOèó$9žíÞŠòZ «>’qXøŒúÑú‡¶úIÛ¦Q!yˆ|¨(wàÌh"¾n£K²ñúB©
-/5ˆÝï9éŠ1)ëM÷çY¤Ò\Þ5ö £yLU!?䡳ìšýõÀªi›Ž}Ìn‹‘f^;àQb ù¸RÿBr Ï¿I-9:5Å·À2>ÁÐ3d±†Fˆc,<oäæ£Ocî1ü±St~»|Yù51DP!£í¶“°P ¾¢®tþkºô¡ßk˜8Á¦ÌØ$õc°ã9­•Qæ3EåŠü±¹ÙÞ–q«¿tÔîÙÛCCY^"fLzJ
-ÛnÊ÷Ù'Î{ü®ÒÿŒŒ®AiL–Xg…¸N
-£2„‡Œ°±hdw,}ýåÒps9KuN4ÒÝœ°T×£bK؆F–i$Ÿ‹‹'p‘}¾Ÿt¥™´ðÞɨ"3±Ut¢¡úx²Ø&x4D K¬ZógÜVú‘xC¶‹]äÂØý9¦yóï³t¶Úxæ‘…HÞ#ü¡ æh
-ø>_@[›cQƒY«]®Á²´%!
-ÚÕìΨwtŠÓ ?oAZdævò6I‡¼)’þ‰èRUÇÜ (Á@Ú”µ²âi·¦Ð£ñ ÛåºÛšÖ/ì¢ó&Å%é±ACF÷Àa¾šƒ;öùZjûâ×QBÙŒãωÎYIN«ä{Ïy|—hT®t²RML‡WK&q¨aMPjÍ–_ê›Í2ÖÝmYL¡£Ý§ÎŒrîgs7¨NãÚ‹+Aׇ²‚·`¨ëÞÊN óoé…%¦~aÝ–o¥­~F¼».û#3{9D«Áä9;â ´æÍôQ¤m£ÆgsHœ;“¯0C[µÐñû8Z¹Ô€î>¿œáƒ¨ÃY„Üá€ø¨e{MA\\ˆbi©O»‚›îöŽÁAø¡Ö3
-'ˆqqµi½á¢C°z³(†Jœ=ã€àˆœý]ÔÞ8§š¶±×†3`žbµ^0Ï »©uDA"e‰57 "jÍLLÇXÝ'N-ëZnˆhK$%JrrÛ­‹y¬ewyä¬ÏÖlv-‡åƒÑ‚ûvô¿L‡|ä‹N*<‹c)u4¢×é²=hIë&a‰ ét•ÎÉV¢z*ºìÃfÞaJž¿+uÍçWâèÚK}¤¦
-cþ1α¼ZÞÃbi÷cžç„ Š¢c;Ï\ºFý‚I ¤Ø-óÒF ¡Ù¡·ŒhÌ$‹™òjLjÚ¹ÕTãŸLàIHJ+øæö‡dPßÜlvÈåAÞñ GΓ[ãŽ`Ñ#&ûîR…j—ܬ'VuUÎÔ‡íëÌÒ†·r€"˜Ž†(¾WwPßSè¤u‚3ØRUê·€¥~²ýbæ³u«jJäþnÏ×íºÁëi¯™ê'‡¹IÀ&JIÔô0>e¾dÞ>#Ç<®å³Ü±éúÞv‘¹‚ΪçñæWêÕ‰½˜¥‹ÞÛd ³ªÐçÄsFÞLÖ÷ÍÝ">nfhx¬ºqŠ~K~áåÔZçW
-D9ÐÄ×ý«ÌNc­ü
-4Æg÷ÎüôL¬¾¾Ò?Âlœá¶_±Ã؈õ†ëî$àÝ-:ÇDpBÝu£Cbî›#13º;Ï
-*‡Kò·¶‡;¾-’"+ܦ˳-ý<ÎÈôXüöYëÁ’áJÁ‚¡$üé¥Ò.&>Ùe¸R¸¡3ŸÁÿ]u7üaÂõñ.R8‹zAµÓã~nTLûçpYTÓìª[7ÒøUÒð=|¹üº*ÚÂ_AŒ/–*CØ¿?CÞúh67÷ Wáïx,V[ýªŽ?RÆò^oH–èÈ;Ǩ=käàkáÕÊu3®ÉẇNbnN’²‹Y)êctž-yá¬JHÇd`‹“mó®úí}KÕ4¬½9«–øWù… YÚá•M3 |•Ð§D N¿"æµdYDé@ÖáÄúÑ¥õÇ*1öEÒ.úMµü–r± ÒüØ
-Á4õ5’+Äó}†#‘.ç­¤‹R‹ë
-õS׸­oïÖ‚•fx{ì—?]Ž{øjA}øé{v$õFBÇÃh¾/oF"U¹»ý´P‡SkwUŽçî0€8â…lù9|2öêlá˜,RºÆ,;?…Y¦y$…䯠‰+aÍB•¨ì5šEÇ婳Ž÷õ¾Ióþ†n$ŸJ±šÿHbN±ãHÿ­^Ù’Ÿ¨aêºV§hÞšW>#žµºra·‰áWvdyóEúC ‰ÙãÃ/c7>+΄É6¸ôªû,,V>'$úÒµe P¹…'›ð3f3
-J̺6I>ìß $‘–HåÇ(ÃÈ;LØAB¿ªƒKéíqrm”ü¼Ëµ˜+ู؂۾Ó&§døäNÃ0I¿r!7%tj[®†ð¼¸ ‡¿¬e°¢zñ÷pöZù¹Üvi3l*.p.&€Ñ· Kóâd¹¨É
-ÃŽ¿N õÆç*匶ölIUQ8(± J 8a•˜· 5«X~+Õøëam:Êœ·jP¤^Jœ§î‘¸ÃsÀÿ‰û‡FmA@ [r«@æ [¼¼'O24ö‰¨-ç¯Ô‰Qy"ð빟z¿–2¯\ÅC ]õõtQŸ;G@
-ƒmÕR¯ Ö$õì ÔÛ6Áò´K·8} bS5Û €UÞXÈs^ƒ=$Bÿ©†Þ‚€`õ©£X&ýµ§=²w3ØÔ]ö§ã^êÌNóÊ»Aøðc0ÎäÚ5¯uÈòtœ) ¼Ã؆Fê|ZEò‹Vjê¹Cç‚¡þË€y·rûÌÂqëBªUèü õÉK%©BIhs”¨ƒr¾‰Ÿc\už…L}dþlùÅ#œsþµÝ
-­­Ûä¾xP1S'¢Ä”ÀÏ/m*5blð•šZh—E5Ú°ZÊ‚?7/ ö®Ê¼¢¾Ø‡ç]Ï|Ö;ŠÔBùúéíôý'rUS”ÂŒ,ù³Ç?»FöÌ’±ÛõÚ$Ämk¥kˆ"ƒVa+±<•šºa¶>Sû%­äù‡¸’øVî™ÏáEü4¬:ÀðÊT?ëðÎhx®‘ÕÓéUDÂãÚ%†è(
-Djà&$ >g÷5«d(
-x­áO¶S.eƒ›»NÄÑűn5wÔÖ‹IêÞ(ˆÂ8ãÞ×Àn†hºkͬ½P#éQ'ÕíîaT¿£þ$RyÉà–&S(v±8m`iʽ]rþù¦³<zlVlÉ—œÂ`5”ËR¼Ï>íJùQ5x9–Bgaàž}x’2ÍDÑÔ1 IÐÏ4—ÆÇûèr¶
-´¡é LŠ.Ô»4,›æË…Ü)]Ã*Vi}¾I&È éà1ƒs¸g´YÄ1Rë}}ã$¬Ë¶Ò|>”OÙ‰@½)Ûá`LÓïËñyŒoãwk5±ÈVð…SŠËm‘í ¬Í‡Ÿê)"q%U æ#}VíÈ·ŽGØlxR×{häYÏøç%»Œk#’–ñ
-°û€‚ß_7ÖˆýõƯ¤øÖe÷®eßêT\qÓýÖ®Épswþ
-Ü$( Wgœî‘·xeµ§²Þ¢Q«:p¶ÐšaBš³·ØÄ ô¥7'‡Îò Ì[H›†{ ±_‡*ºŸñ´í!NTúû[ìD_lïñ (bÂ/Ý}¤)mR¼™~pÁþØL®†PèK¶ M5”ð?Æ®*äQF2±g™#ªûغà>~‚;H°‹¨-ƒô9ü·—5ûÎG 9„õKƒ[Óc÷­~@H"…°Î–E(Mõˆ@å4/”š0ù{oNcáKC¹¶un˜íÌ——*ÕˆÏh1+(¸Ôýd04—DËÓ`IRïÐðý„ã‚çNÝÝ45öH3‚-]º5û`EJd>¯3Ãæ B­gÍR™n"éK`~[›J:4qð7v®`=RŽ}EñŽ:è¼süôŒÍ˜4¹nÏñÈôQr,É¢ï°ÍkÄêãÉÌ^Iö-ûØLƒÙ£1#iÕ³q{ÁðÅÔ#…·¦˜&#¹–æÆÌ0žpk+«£
-†é68û½3¿âØ €ÙAehD¡–~ØioÔQbØFÈöyÍpR<‰˜ÈfÏâŒ&a›æ(z
-YìT”ÄÐ_ïCŽÆ} _zA-nuò®Z˜ÄögúvXPô‹•5tº ÁúOÌ]šÛæÞÄUhN'u6V‹3án[ }¶ŽMïm9¤‚Ü.QÒ(Æ‚Ølšõ3EȽ¹²FÕ7CÇ¡¥ŸµÂü‹›¸¡• Ò†Ô·X>År­V¤«´þœùÈ87‹Ðæ^’Ü#ž³Ä…*[Ã00Άºª\-zÂ0³•CÄx:M«»ÄãVNcÇICÃOgUÛ¼¬*¶@ÚU·ae’+b˜ÀèÌ¥¯é¶QñóP/Anžóu–ÇúeÙM"èzpJ™Ïò®­"U‰ ñ+“ãé?§ÙÂf%%íl¿çkíæ¿„òLO^‰ªãÃFÒò’Âiú,ÞTõg1ª
-l•"\\â„o8½²b¯‰{åIPwví ËQæH¶$ÜÉ´¦ÕL`e·©ѲÂJ»ýT‚Ε^jr˜²:ª×»‹¾n
-¼ë0åà®ÏØÿîZŸÜªc~;Qwµê4è©HšñqÇÔø°7ò=­³ž‰’ ç™òÆú˜“duˆ?.Õ+rÞ9kÃf6q§œaÞÎ^bÁ;ÐÞ“ªC=?JÅЕd›dg‡|ÜÔúˆËz@øeaªCšs5ú QoFÐé­Dú÷8È«âX²DÛíŽO@Ñ% U÷Méd>kZ|èdü%Î0 ,cYÎ]o5ÊÓÓˆP|øTëZBŒåæxM~`Ôä×P
-Ïoé†-«ûç²`¹ Y¶ñ­Î±‹èÞÛ°ëÙC¼aßèß7åv¸×^
-뜻%CÁÌ‚¬UÖ´‰Maü€¤Ï¹uñçó„áÜê :œð؃C»(|cºÉ& §ëéòɼ¯È8'Ùx被 Šóp<]BÌý «›[¤„
-¡à£"Ð<‘gÏ[îD~^ººÓÂÙ?Zn\Æ$ÿM­Œù–1Äœ)Á×Bň£EGâcQóh¨X*úêÊÊ_>(”ëw+ÇœðaÚ¨F~¶zñyþþ{ ‡>gS(êá9‡&IdÑX2)Fžb¡8ÚËp¤«PX,Gæ(xõš2œsPº% fajU‰ªh.,w¤Ñ«
-cLÇý2 Ža®
-L­ysN<q›Žé;u %ý¡xCߥi67k]ýÔ•ðÓ*‰I
-Ñ\‚°îÙª [ˆ|¾[4Ã_ÆvNy|ü(—æl²½Fï·ïÊ»i¤ºõ–l
-]ë4PH§rüIbÕä-àIæ<Œf)$Ü=¼ð~WÝ>Rú?]œã|DuVò=Â+÷œõç°üdË,󴵋¨t}ïæBÖ 9Q’Ž¹¡¥PÖ•g$±»ÖùW7‡È0‰dÐs`Å/]N˜Cñh¿5÷‹$YlÄžìžvÌ6èëZü¾Žñ:á3~|±‰Q¤ãïÛ_6tºs´“WÛïµÈßFgùè`æ} |5*¦
-…3© ¤ 0.aõÃ’ AÜÿJ&ªƒ0C|R*ü(ô¯[ \eZ¢¬ ÏÑZ àú½á´sÅ%¶_,sEjâ’ñƒ]]¹QÙÄäã¤Óoxé{×ùÒT¬ ¬>ÔDu±:eƒ„Ž¬‹C5áj¬QjCìé÷¤›ìÐ̆£Y•Ãé²{G ·$7wA”_sïâPs±¢Sš˜=ÍêïxEJI7z˜³LYò>‚Ý'ò.ä?4û™36L®PæØi¸Êfá]Y­IÍuÅSÛÁý²n’YWºjRdúAùú†ÄMw¼NÆÒ`´­Š&'"—cxŒ?¦¾©Žd[ºhxB{ü¼ãXæ}•£689®ªíV3*àV,´NÃIæ®ÎúÄ’Ÿ]ñ]Ì&ßkÏ—Ê­!ØEø>µBGD“ÊÚ DÄ`ŽÀzë†ÿD9ÜD•^ãP¹¹¡ÒC`pÞ¸q¶SÏ/@j»_»;Æ),H¿¥ÌNeÊ„cwLˆ^ŒM\Ú‘/Q„Ýr½Î«D¦F¡CzmbÍ$cÁïW %—õÛà”\Ù’æ’.îrËäU+ôŠÖ½U©+A´5ŸJ¤Ï)ªãÿä;z_{®ðø– ©ŒJ !uêˆÉ3e|Yüê*¹ˆcËûõ);ß.†úðò#ãDhö€ö‹G¸èFyç;u=2_–\?c«î¤~‘
-ƒÅÊ~Ïz_úà)ë¨R÷Ãfæ4Vf™k+{Çc–®ŸSxéüýpŸÀ–éò¢Žú‘›B6Uß\•AM{ƒo—áŧÜùþ1÷¹ž ƒG‹KÕeºd´fÙà&ö÷- ¹÷ŸÞ ŸLHÁ¹‰àT­Lq> ã3ïçÙuÐ3õ.°ó»ÏDkr%[’û V! =?(F‹V>Då†TÜ'LÞ»tðþDì0åœjiJWù¦¯:•º?˜ákÅtð·Dt,e¹Cëàì8´­~¶^Wìh÷ðá²› ó&pÀs–K‘v£yª¤}ÜYhÇû/q˜š\—1άÄ.5HLUcß|{¨8óŠò^ß4à`äô·ÅPß½Q5ãŽèz”=ûý¯`ôô«î½A$äÆô¥=ÿ7<‰†ÐZLLSXëNŠ}Db6¶Ð,èÿv;=›#˜‡Ãc“(í„FrEƒÎUA7Á¾ºñ°¤‘ïÁ¼ Ÿ³ËÔ 0
-·•—Vh/†¸MƒD:•ÄÇNñú°•:#Þþ>PLÇÒwðQ5GbÌñ Ò禪ð@` Ìf(iVþÉOëµ6 ‘
-’Yý”:®”èAèÂûXqQ¾®ãÜþŸœß,è'ì-¦E“qàO¹)• ìG³VÍ4ºf,§œR¢X=ÒÄ"Æ œVpÕŽà"ç¸Éü 4¥^Ëdw3{ñ¾T ¨Œþ)þ1²ðùfäI>EÄ ÷ó…>W¹;A©jæG’òÛB¿¶ä®.L)y{kÂ^×ö ,”K@[ âŸdOÜŲÝ_t NÖm,b
-É´ C™Ñ.ïðÖJ®{Ò¦sŽyZÍÊ;±êÈÂìÄk´3ѤFÈZ‰FÝmp ÷:%•Ùd
-Ü)„lk2'¨ á"”Öë±âµ|syùͱÕu€\çÊZ'YýMªI­‘_£ƒ~Æ)bfÓíÝt=–ÙáÅbSÅ#Uk.`«
-S­‚DÍ( »(ë%ªUÎ)7%g:F—°ÞÆ {¡ßk·1SÊ» „]«
-G7üæôÆn}Ò{«óef‚‰@ƃÚZt'ˆD©Ñuèb ÕËáÿkŸ,Ûš
+xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<
+šþô­¯œtGLz¥ÈéQž7K²;P?8˜Õö¦””õJ>`ˆg:Yánžiü(\
+ü°¾<Ù£ø§6Äbw¡5aÔž_|M<}~¢î½…î?$¤Ë‰…§äuBþéçC(øC­B¼ªùÕi{Ju ¡glŸÏÏìC(»ƒ¢ÈbÓËZÁçjð§fÌÁpC@¶
+¦éÂú”/é„ÐaF)¹ìÉT_Äü AÇDF@’_²– z¿IÂ>^"ò“£œŸpÖj×Ñm¡HNZ¬¹Šù—;Ão{ô«OŠ—©š}¾ŽÈïqM gÀÁõ@‰Î
+vÌó_ŸäsýðKÞ`zŒ—6$Aïܪ“³ÖUª Ô¼qTÉŒ!ÝNë”›Å/˜4ú#pöpò>ÙMBˆÁrêM<õlb®‚‡é‹à\jÑhŽ!··qèš–í:—… u>5±“ª——‡³›G¿:×MÎ{òεÁéKœJC·Ò@µ¾/)qpgŸ”­µí‚ ¨•Šgý´»Û]^ÕÞƒÛ1Ü ½û߬Dþµß™á…°ä]xŠ©9
+b¤H#øÕV h@û€€Æjý)ûƒe{’Ó
+3 á"Å8a¶ÌýhC©Š‚¡|«ßÎ[ÖGÏ3“GDBI‘Z8«µ¯öºÛK
+’wi¡ ´NºóoI^0Õ–ÎÈ!C6פ  AÅjc›a˜LÁýäü>wiúÁЧ('Q_´d¶lAS¬Ôæ‡äaíøîyNM×iÙòD³."KÂ.38°n
+ݱÍAïOÇ4å|cå žä½Ë™à˺_…¤Bcbœp%ÉU™xíŒ`#Ë}Cºûð¥H"¹ºå)çØÑYi#,ج¿ßÁ;QÝqç·Äjí(^&+ MÌøkRÐ,7÷u¾!+o­¹-}iC¼HBbÛ*1'O. Íþ~6'jïý˜ñ+gt5û¢PVÔÿ¤˜¿T?ÚãÔR¨s(S¡šq¹"yV‡ôî@v¨„3ëÔHG¹çòšu´ÉÅQ›8 Ô%âÛV†w>ðÛeã‘[‹}­H}öA÷4OöÖgí
+„7N•{œP¾©3¹¥Œ/Ä[Ö]ªp­Cƒ’½f±eB8|* ÿá´%Q0d’hyŽÏË9€œH7þ5'i}=½ó{LXwÜëaä6Aº„ï5Ëo7F—Aµbñ#¹‰…O[?ˆny= ¯7…³¾ÏÆ_žMSÑÓ<Ÿj²¹O-ÄËOrlºÈ|!•¡ÀºüV„, y©+¥, ßê¹2š_Sûà£#üåž ·${qÛF2<üm=àmûS}ü{/°¥ÖÌ:i­‚ƒ‹\’³¦ææŒ"×îS©ÄÙM>?gЀñ¤kMí!,£sê-Ð@‘œm
+ï™°H¯Ñq<)XÍe.vUÀŒ‹Ææ6¼j÷(OóÈŠ¨ð"AÏ@ ä_ÞžX$#–alxUeh[fdþ.Þ_lÔæ8-®(˜ÙÉë¾—©)ZóÕŸ
+Ôû´Þܼõz2‹÷¤#‚JÇ_N‚aºäYCÏ>\z…„–gĈÏs³Ìjd¨¦!X¸ˆÓ wÜ2mö8Ùp!os´C?yTÿ@[Qc×Üÿq…ÒŽ¥Á=5(æΡm³× ÔIìÑ/Ôa1VGKj]Ø w´Ú}oä¿8A#çÁ°\SêœM,ZkyÀºHí(¨ ·³ÔŠSñçöš]MC~ÌTŸÜ¤Pg}÷p€‡€ J¥'Þ fØ‘Vý"‡øíbÇdsªÝë~£vz-t±~ŸU²ôn5\±ìÕµIýS«Uÿ >¢KóHšÃmµ[»nKYݼ øËÈ|(ÚÍs@w³™ >sϽ°V…–šü ®ÙÞÇ+×Xª‰‘†€9õUW«K8†?é `(zšŒÜ›×Io_eîÁ‘Í>&p×$ÏoLòŠJß´/õý…›R-“ÃOÃÄ,Á‰ þØFáÒÓýâùu.Í­Ž©X€²£ÝF:ûL@¥å߸‰+¸CVçD§›î$2ܘ±­¤‚Tô¦:‡4Oòü?ŒÙì7ØC *™VBÆò6Vjó­šÛ¾§ ÷fÝÆ1÷ídž ¿ô |ÒÞÞ@OBG À§˜«T ˜Ã1=Úuø1&\ÛTĉº(Ð64Ï›§¼ì¥—¿ž6ÇnÚ4~ÆcÅÛ[zFbÆ’RJ»žƒ.¶¡ÖkŽãÃÞDþÈÉ+GâzƒîÔ¹m_C|øþ0/–­Xµ³-`_1+Rå¬Ë¸ƒðžM*&`*ó|ÜTF-ò\<óãT¢
+
+
+à+N‰Ø5ÚNjÔÐY›€¨áàݵiï+Zf;ˆ?Çåe³ÙvWà·kŸÒÅüµ—¢I¹ë´“F4{½*-5 …)<m‰‘·iîúó…sA€fÌTljò‰¹^›]¿w›H.’îŠI†m¸_|óÚ»b \ÝÛè#Úžƒð ž1Êê ×åã–μmœh³fË]­Ú¸¤„ž¯\ÇišÒ}EK¶ õ»›õx}3sŵÈûÔM¿=i‹ƒ)»o)=26¢QžÉªËC†;ß5T]hQ€Ð^šŸmúà|‰Z›!ç˜8ºs±S°È¾J¬f?Ý ëÞìoåCˆ€ßlOŒ‰¯¸1 ]§Uxœ<Šzæ᥀•áç=ˆÎmòò‰¿½PÓ1ú”¢>2x¤iÎ#§·5ž.‰©sV ñº^ñ¼ëÓýªÀ›`õVÙÅ¢UR¸¼ûpœ“åæ41$ûFÐ8ªŸ8 lV{v”ƒîÞw©³î~¯ìýý«&À꾃~èôÓEKå½ây­ Dj”¹÷-vá'†H=~€Œøä“þܦð!UMÌÆ‚qzÝKs"œÏòçžNIZÇ&s™/í}‡•‚ðQE´¶åï¼1àE˜»×AÖö¹›€Ú8!ZŒ%©u4¶7×)-¹¢þxÏ ÌŠi#Ò},V{ 3ê™Lk0Ûd±À1èÙýåÇN@ˆ<E¾=\Ðwö\#·Sä‡ó Ìµì¬ j‰um‚Þ>ñ€ÖXzdöi¢ð»†¢”YµÇÙ¹þÕ‚ÅmË.»ÎÅ)6>NSã"jú¦HËèË­LnE™ƒ¦üÂKh°ï_ŽÆˆ\RÙßC* 5¦ T(´eLjÔ9úÞÓ…eñrWtA…¤ÙlõtŽcKª¿ÔL©ÓšïÃÍCm á‚cÆó7ªÓû:³HAÁÏÑ×$k!å8Õ#[;mñW¨$¥„ÊQã]T”PpÎÊ©j0)¤p)8H‹Ûä—4ÞÌd9ãYVä]mze;ûµª.ò+ÜôÖƼ9+C­…ŒµÍ7ÈÀaÀõñú%B{PçÑó²ŒG>¦ï\8ÞÓ>\ùë
+¾07ÙtîRÝçP{myZí2÷<ijœçâzxÒô £'2ºñÉþD–£,9tÞ±¾vR§ðSpCŠ%è²³O»¢‘χæhÇeUfL†öH)”éßѦ"¥2¦TVÞ¤Vx/>’^Ž³Š$pEÚŸ ºþ<˜÷|š‡+œüäî˜j
+º.F5|EKÖ_kßU­†Ä&“ó"÷•€äûdÎ…#æ›5åØK"20¬.Fí¢Jà(2\࢚z~"‚*X¸×”•›¹-=‰Œ!‹2 ZK …‹3…~`ÊòJ&qðmvpˆ;¢¬¬Õ¼}ÜtЈD½N¸Q/pÏÐ@Øy)diDÿD¡
+ÛIX¨_QW:ÿµ ]úÐÀï9Lœ`]fd„ú1ØñœÖʨó™¢r
+EþØÜlgøÕ_:jûìe ‚¡¡¬
+M q‚8IoÜ•ªÅö›ÍL-Ô…`€ToÞ½*Pvz:N“x ›ÝžÜ™3*IŸeÀ4µô
+;S9Á%]9Ao¢ÁN©‡’p6/€ôJš6:7õ"élÈ2îqœÞ܃A«ñ)Û«Â!F—?+Íõ­ÙV³d$7ÁÌ&áýWW(Þg0 ÎÜ#Úž8¤;ßJì­¯ý‰Ù¡L¹ŒÙOÝ5 oYÖá˜
+AÒà}…a™5‚>ÂÃNFØX4²–€žÞri¸™½‹…:'é‹NÎXªËQ±lC#Ë4’w‰ùŸÈ>ßOºÒLZx¯dTH‘™‡Ø*:ÑP=<Ylc<¢„%V­ù3nË ½H¼!›Å.raìþ“¼ù÷Y:›Îxf‘…H^#ü¡ æh
+ø>@[›CQƒi«m®þ²´!
+ÚÕìΨWtŠã ?oAZdævò6I›¼)’þ‰èRUÛÌ(Á@Ú”µ²âa»¦Ð£ñ Ûå²ÛšÖ/ì¬ý&Å%é¾ACF÷êÏa¶šƒ;öùZjûâÛQBÙ„ãljÎYIN«ä…{Ïy|—hX®t²RML‡WK&q¨aEPjÍ–_ê›Í2ÒÙmYL¡£Ý§ÎŒrêgsÓ¯NãÚ‹+A׃²„7g¨ëÞÊN óké…%¦~aÝ–o¥­~F¼».û#3{9D«Áä1;â´æ ÍôQôÃZÏú8w&_a†¶j¡ã÷q ´r©>Ý}~9ÃQ‡“¹ýñQËöš‚¸¸ÅÒRß
+nº_Ø;úáW„ZÏ(œd ÆÅÕ>¤õ„‹ÁêÍ¢*qöŒ‚#röwQ;£œjÚÆ^kNÿyŠÕzÁ<S€\ìæ¬#
+) ¬¹YQkfb
+<Æê> tjY×rCD[")Q’£#˜Øn]Ìcõ(ð(»CÈ=g}¶F`³k940Œܧk¤ÿe:ä#_tRáY L©£½N‡íAKZ' KLH§£tvH¶ÐSÑe6óSò<ø]©k>¿2 GÇNê#u0UóQŽÅÕòK»/ó<'\`ÛyæÒ5êLZ íèÄn™çšz‹ˆÆL²˜)ÏvŒX¡[M5þÉž„¤´‚o®HõÌLg‡œQäzä<¸±5î6Ýc²±ï.U¨vÉM{bUWåL¼Ù¾Î,mxÙ*û+‚ikX‚â{uõ<„NZ'8ƒ,T¥~ Xè%{2Ñ/f>[µª¦Dîïö|Ý¡±šöœ©.q´Ÿ›l¢”„AMãSæKæí3r,ÁãZ<Ë›¬ïám)œ+h¯zìÏa~¥^Ø‹Yºxà½M67­
+}¾Q@<gäÍd}ßÜ-âãf††Çª§è·à^.@­uz¥@”M|Ý°Ìì4ÒÊ
+à™<=²!>°ë_Â! ¡nÒ q£^c7Nh?–Dbk]z‘Zøù·Íà[ÛX=mÅ›P :žž‰ÍW½G°tC#<áß×V Â'¦ŠÒyÞÄ1ò\ðÎòˆ¿ƒˆ§9&åŒÂT«âÞ°;¯oQ
+Äd²’Ø[EÜ­°¿ÈÇ`n—ÅædþǦiBŠFtù£¿ mŽ<{ töJD|Ï;±Æ&G‚iþco§Àå²-çaA3©±W(æ‚2MYÕô(mò¤ œFã³{gþz&V__éa6ÎÇp›¯ØalĺÃuwðnæc"8¡n‡:Ñ!1w‡Í‘˜Ý¿g•Ã ˆ%ù[ÛÃÞI‘nÓåÙ–~gdº/~û¬ugÉp¡`ÁPþôTiHŸì2\)ÜЙÍàÿ®ºþ0æ‡zx)œE½ Úéq;7,¦ýs¸ƒ,ª‡izÕ­éü*ið¾\~]•mî§Æ Æ K•!ì†ß!ou4›¿›û‹†«ðw<«^UG‰/)cy¯$Ë‹> täCÔž•6rеð‚jåº)×ä; æC'17'IÙŬõ1:Ï–¼pV%¤»Ã
+2°ÅѦyWýö¾¥jÖÎŒUËü«üÂ@¹,íðÊ&©¾JèS"§oóZ²,¢t
+’ú C¡ãa4Ÿ—7C‘ªÜ݃~Z¨‹ˆÃ©µ»*‡‚s· @qp![~_£Œ¿:[8&‹”ŽËNp€0ËtÃ"¤ü4q%¬i¨•F³høð¡<uÖñ¾î7iÞßÐäS)–óãIÌ)¶é¿Õ+[ò5L\Ö*ãÍZóÊgDسö@WÎìÖ1üÊ,o>HÁ81äј=Þü2¶ã³âL˜lƒK¯:ÏÂiåsB¢/]ûP6
+Q+ª''a¯¥¯óm@6úâçòg}»°4ï N–³š¬0ìHñëà´Po|®RÎhkÏ–T…£¿» ”àá€#V‰Y R³ŠÅ·Rßx°îV&£Ìy«úEê¥Äyêî‰;|0üŸ¸Opˆ`Ôæ:5 ×
+dž°Åû€{ò$#ïˆÚrþ÷øúø
+Ažˆ+‰o徑ù^ÄWòó
+þ¤a;åR6¨¹;áD]ëVsGm½˜¤îý‚(Œ3î} ìfˆ¦»ÖÔÊËÅ!’uÒPPÝöF5ñ;êO"•— ni2õˆbg+€ã–¦ÜÛ%çŸoÚˣǦÅ|É) –C¹,Å‹ñìSÑ.”Qƒ—#l )tæúnÙ‡')ó×LMšýLsi|¼n°Q!g ZŠƒp2Äòf;|d·sJ5[èOú»·r•
+¹0>“Q80ƒÁ˜jU¥9Ãüró5½C£öñ²·Ëä—A<Õ¦¡1RÁgó[¼X- ?¼§µebÑ×k^6*Ù J ¬(І¦7Ü1)ºPïNଛ/r§t ªX¥õø&™ ¥ƒÆôÏážµÓfÇH­öõŒ’°.ÛJó9øP>µe't§l†ƒì1M¾#,Çä1¾#Ü­ÕÄš#[ÀN).·E¶/°6~ª§ˆÄ•T1˜ôY¶#ß:a³áI]ï¡‘g=㟗ì26®HZÄ+ØÃîk
+z|~ÝX!ö×½’F`à[m”Ý»”}«SqÁM÷]»&ÃÍÝùԛꚥ‘ü…@ÏHÈúû Ónê
+c—™XúAÒœü.; ®¯˜›'·Œ©½C›ˆ^zºnõâ塳ýæzI‡•
+RÐ%åØWÔ糖Î;ÇOÏØŒI“ëöL%Ç’,úÛ¼F¬>žÜÁ|á™ôaײÍ4˜m?3’V=·_L=Rx;`‚i<’kav`Ä óè·¶²ú0
+pºs*Å"øVŸûå¦ä!¥`˜nƒ³ß+ó+ŽµÐ
+çøx£ƒ®Ñãz#ú€½ãJÿy‘ÃEäºF•“Róª»ÿø†D¯11tü@Ct´Y$Á¼šGj™¯%?¼äX+å•?L¤ÔÛ˜‡Í”_´Ò#(?Êô\˜ã@¨nw"àYl™À<”w„ÙY)ª5avQÿÊ%éömŒ—êÆ5=–AâŒ*$$–-Ò{OcŒËüŒÖ3n¡÷j¦&•3ì£Ç€ÄY+÷U&‡Zg\'ãMnÿ@÷W¢4’: zvlAÚ”‘…‡’>é„Üo¦˜Vü_Ù¹šÇ};*ˆux’ÆC,(¨ƒ|ýÜñ¹Ú÷zw¹
+£fÍ6•9í]ØTÉ°bµ÷áú1K/š&‘9€‡e×¢hœj4Šß.Î[)Z
+dCŽREm46¬8Ó¥N¸ «Ô6<É,ÆÐÍÉÎæi:ýx(¥Ët8ÐËn ÿ`’®!
+¼ë0å ®ÏØ¿îZïܪc~[Q7µê4è©Hšñq‡Ôø°7ò=­³ž‰’ §™òÆú˜“duˆ?ÎÕ+r^9kæÖq槜a^NžbÁ:ÐÞ“ªC=>JÅЕd›dg‡¼]ÕúˆËz@øeaªCšs5z Q/FÐé­Dú÷8È«âX²D›íŽO@Ñ% U÷Méd>kZ|èdü%ÎÐ?,cYÎMw5ÊÃÃP|øTëZBŒåæxM~`Ô•ä×P
+Ïoé†-Ë»ç² ¹ Y¶ñ­Î±‹èÞÛ°ëÙC¼aŸèß7嶸מ
+뜻%CAÌ‚¬UV´‰Maü€¤Ï¹uñçó„áÜêÀ:œð؃CÛ(|#ºÉ& ÇëéòɼÏÈ8GÙx被 Š³p<BÌýÀ«›[¤Êñ+ÇÕ˳ž8b׈×[ÍT|­¥#NùæQߧCW;Gˆ|SmÿFÞÖil±^õãþ™ef C¹‡¸·á¢y JòëL;˜L]¸îÙÙeÂAÚbˆPAIÛdðIÔPîÅ
+×·³÷ŒAÿÞ]ÿ¹:#¥µIä
+ÑÅÛ±åprkBÙûCzÆaÑÓ3ëÌ"!²2ö]3¾v{ÌÆY­»G «Œs» Oå×náR¤C2¾&`ñNƒ§Eƒ“\ÙÍ9È&Bê.üŒ¶Ù· nRV'“BV’äýáú%h:¾.l¶CÑy%4KÉÂTÙfÝ4„T·:ùÔÖ4_'áULšj€žXËÜý¤öiû ÃÆûêç”´c§=`²¨øqªe˜ßC´Ü¥îóÚlméòù
+H¦Ö¼9Gž¸M‡ôº„þP¼¡ïÒ4Š›µ.¾êJøiˆG•Ä$ …hÎX÷lÕ-DÞßÍ›á/c;§Ü?‚Ë¥9‡l®Ñ{Ä­Æ»òni†n½$›B×:õÒ©~’Xv
+ w/¼ÞU·O§”~EÁÏAç8Q•|ðŒGÇ=gý9,?YÁ2Ë<må,*]ß»¹5HN”¤mf`!”uåIì¦uþÕÕ>2L"ôÄEñK‡æPüÚ÷AÍí"I1„'{†§³ úº¿¯c¼NøŒß_lbéøûö— m„nĜɫí÷Zäo£‚³|t0ó>ú>S‹Â™ÔRú—°zaI¿ î%ÕA˜">© •N~ú‚×-† ®2-QVçh-‰úó ýÞpܹâÛ/–¹"5vÎf—GWnT66þ8éô^úÞu¾4+k‹O
+ Òo)³S™2áØ¢c—¶FäKa·\®ó*‡©‘@èž›XsIÅXðûh‰ðeýÖ8%W6¤¹¤‹»Ü²yÕŠ½¢uoUêJP'mͧésŠêø?¹ÄÆŽÞמ+Ü¿eB*£HH:`rÀL]¿ºH.âØð~}Êη¡>¼üHÇ8š½D ýâ.ºQÞùÎ_]Ì—%×Ïت3©W$@2?d…°Õã¾Â`¾²ß³Þ׆>xÊ:ªÔý°™9•YæÒÊßÞñ˜¥ãë^:?Ü'°‡eIº¼¨-„~ä˦MÕ7W¥_ÓÞàÁ¥MxqÅß)w¾€Ì}®+È Á‘ÄâGu™.­Y6¸D£‰ý}KCîý§WçRPn"8U+Sœ÷ÂøÌûyvÝôL½3ìüî3QÁš\É–ä>¨UHC{ϊѼ•€Q¹!÷Å“÷.¼?;L9§ZšÒE¾é«v¥Ž}03|­˜6þ–ˆ¶9£,whœ-ÇËŸ­×;?zøpÙÍ„y8àŽ9Ë¥H»Ñ<TÒ>HîÍÄû-q˜˜\—1άÄ.5HLUcß|{¨8óŒòZßÔç`äô³ÁPß½Q5åŽèz”=ûŒW0zúU÷Þ r còRˆžÿžDCh-&¦)¬u#Å>"1™k–ôÿ »žÍÌÃá±N”vD#¹¢A窠›`_ÝxXÒÈwgÞ„ÏÙå 솋ÛÈK+´CܦA"Ê
+âc§x~XÃJo(¦cé;‚÷ÿ¨š#1âŽøé}SUx °f=”4+ÿ䎧õZ›…H
+—€_úØî*Ý– ·£ý7<³Y6ªãvl¤ÎݱæŒú‹Ù¸™‡ÈÈc?m·Ò†h¡ˆÕ©Åç•¥RäÍ×”»L|âÊLwõø Ρò°¤¼AçYKr¼Ï¹ÙÖJÑkW½b%òyQ·ŠTæ9æ‹Ló"$N¬½ôž‡9ȯòL¡åùö;û¿ZÆMú›¦Ýj{wAÆILTI¨£%èÔ&ëö…ôâÞ %§½(1ã:«/h•¶µôÕ9óUÖô”‘­Í¡i¬rÝxUæ¸ÂÝPÂ#á61”#,*@Š –üb±·Tx8ÙÄç{ëG79yçÐê°ÀCþ“væ$Põ`Ò匀V–ƒÿþu6®%…Ùqc†¬Ó:†wtÎì•NôwØÒPÄv©*û&<û'ývýЊâ¹!ÔA"OýMBð¼"ðÛQܸ…ÍK) z²>Ç'áØóô-oâŠÌ#°±ÛÓ­ÀD/&Ësg k7/;ô^D÷‡ÞKÉÁ¤ ŸCH-²oS<ÛõCoõšÂÛw˜´øŒª"ØK–_Š­"H‘¬ûVpÆsáõpa¡£_Ì×SÈÚua¯õ°Ü±l|ÚV±{+ wókÎ:¤6= s÷(HfUôRê¸zP¢[E  ïcYÄEùºŽsûr~3§Ÿ°3ŸMÆ?å¦T‚°ÍZ5ÕèR˜±˜rL‰buO[ˆ`×w\ÁU·?‚‹œWà&ó+Дzu(“ Ø!ÌìÅûR% 2ú§8xdßÿó <ÌЃ|Šˆîç }®rw‚RÕ:Mp’òÛBÿÉ]˜RòöÖ„½®íX((gÿ¶Ä?ɸ‹e»¿è­ÚXÄ
+ܯ*ù V}ÒD¦ÿôð¥ÎÈ
+}ˆÒçq=G/¦8õ6ÙüÍ/]Z?ó{P>yêU•œµú}éË2&@žÊå:Þä®þ;TÆ
+݂Ư9ÎÖïSftt7,-–‘hV©©< ®ÙÒ]+,àŒA‡Ø  •;…ÔzEå]þ<Ïßý‹Ìɤ C™Ñ6ïðÖR®{ÒºsŽyZÍÒ+±êÈÜôÄk´ѤFÈZ‰!FÝmP€×:%•éd
+Ü)„lk2'¨ á"€”Öó±âµ|syùͱÕe€\ûÊJ;YýMªI­‘_£ƒ~Æ1bfÓõÝd=–ÙþÅ|SÅ=UkΫ
+S­‚DÍ0
+G7ôæøÆnuÒ{«ýef‚‰@ÆÚJt'D©Ñeèb ÕÓþÿkŸ,Ûš
ÅGÕkX:gׂ še£¤xu®ôØ\CùqKå1¦g ¡lø 7[Ù²Ì4Òÿ¹[PÞÿøç¥ÏFÔ´²ÿšûI#pŒ"­ªºóöWwxN¥&ÿÊYGúéÆ„¾åoK?\aùt@½=¥¢D#UŠ&ÐmÂ΃:Kó#˜´ÏÙf`ÃN¯Ú¬5}=ÿúfy$V·‹Id”-é%#©¾¯{z²5…رF’oö¾!²’»÷ØIáMØïä†H}ØÝÖR´x`î/Æ]è›Òª^3±Í7é¶ûñâ¬Â^µñŠ
·(FLH³~å¶ÞÖ@Õ6Jäó¾xÌ0V?K£ÈÕJÑ}gy,‹¨†/ã©$þ¸Ì~“Æp\!#…þö/»-ñæ –Ú3Uv+l•EM ´Dýý_O‰uò!÷¶:) G‚·Ñ é91¬ÄdÐ~í@§q&±ÑŸ<¹¥ËŠ)üÁžjÄÆpîp ãO`6ÿÓaÌ€“Ê ‰bœ›³ƒø*Ln<rüME‰J¬#Å<ÝþŽð»Z–êÞ§é
Ö/y³¤¥6f,¹yK@ðcõÏ’bÖ3Jca~Äï¬]+)T!¿hê (ò‹gÙ׺Ñ9QÀî/LÆ. |ºy‹ÔOIûè{£dç*ÇU6j—áÅ+”S•ÙÏ=¡ …–› öHL
@@ -14458,36 +14452,35 @@ K› ÀöYt^¬evQ&57Ñ„t9Æ©‘;ØQLV2²ûËI2­U^¹¨%Ô~ŸŒ×ˆzW
p
íSß»bò7+֘ߠáænÍwˆ'£#µE°nx‹¢PšL~|ö4KQ¦–!¯jn£ÕªîØãVBGE”}œœ Žý­Ð{ƒéV³”Vã0¾ô.¶Tv‚Ì|` °SU[¸U!&ýø7 >hI£YÉì0…òÇ*껪¦úݳj€í¨ž¨ß`Ù?8sGx9g3ÎîèñÙt÷:n:—SúluHx‹œ›ÍÉPo·«ÃJAüÕh€ß¾ÅW'ˆÃô´B ¶q…¡Jˆ`“ý kaæ®´bg>–MO”¶æB8uk—ÄþÙ7)Çê®Ü¿5GVQ(ë¿P­m-FG*åTA¸¡WK2z)· Ž×?3Ì›QOl
-¹ƒ%ÔÕÝÙêjýX/â
-endstream
+¹ƒ%ÔÕÝÙêjý7-âendstream
endobj
-1173 0 obj <<
+1178 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 2
/LastChar 151
-/Widths 2819 0 R
-/BaseFont /IANXSZ+URWPalladioL-Ital
-/FontDescriptor 1171 0 R
+/Widths 2836 0 R
+/BaseFont /QQCYVR+URWPalladioL-Ital
+/FontDescriptor 1176 0 R
>> endobj
-1171 0 obj <<
+1176 0 obj <<
/Ascent 722
/CapHeight 693
/Descent -261
-/FontName /IANXSZ+URWPalladioL-Ital
+/FontName /QQCYVR+URWPalladioL-Ital
/ItalicAngle -9.5
/StemV 78
/XHeight 482
/FontBBox [-170 -305 1010 941]
/Flags 4
/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 1172 0 R
+/FontFile 1177 0 R
>> endobj
-2819 0 obj
+2836 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
-1037 0 obj <<
+1041 0 obj <<
/Length1 1630
/Length2 16214
/Length3 532
@@ -14495,94 +14488,101 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬¹eTœm“-Œ»kðÆÝ‚{pw×Æ¥qwwwBpwwwwn‚÷/Ïûž™9kÎùu¾ùÕ÷U»jW]µë®^½š’TI•QÄÌÁÄ\ÒÁÄÈÊÄÂPWÑT2¶µ56:È1ª8Øþš9()ÅœÍA@{qc9@ÓÜ nn
-`c°òòò"PÄ=–V
-R
-ššÛ»˜Ó,œ¶ÿ>
-üfîajîøÄ
-hjcÿOó9ÿ ™Û›ý÷úÿÊô¯ê™5Õå¥dèÿ½Ê¨jûw¾ Y¹¸ÿ¡ôw@jžŽæ€ÿ•NSÞÁì?ÿð‰Š:x
-2¶7û;nÿiø6uuvþ«ò¿6ÀßëÿÇù_ƒonîanŠ°¾â`Êb‘ ªÃÍ™×èc… u,mT+* ¨qèõψØå­4z« ejšáûh÷\>s|?üFw4Ö‡cKÝ›f~ùЗœ¶¿ý'U'7ýQ³A)ræ¹fŒ÷Õ’Ü”‹ÆÑÞ”²ŠAÉ ÑL'»3ÜÕ#m
-‰ªV¶ý^]n?É÷oŠ üÐìæÇÕQÿÑŠ´Këñ¯0AÙ¬ŒÚ#Ûõ½ü¶Sz_“Ò¶Âæ°Â¯£Z¬4¦×âÚpj~¿H]c}jÇyŒ{ì|yz0Òä$·‘×ù³›'È úKåWµ0wïèåóä»÷ ¦¤†®ßëÓôäNg@«ÔËfR~7øX3X¯§º<†ž‡:;D݇Y‹’‡±ÇƲ ¾qv"©Î.嶱8Á[Ö†¸gÛyŽ
-‡Ø
-œQdÓžˆo¥j›*÷ú*yèõA®È›ŠØùÞ*9Ö¤û¸·ÂÃmÈŒ¿Åû ×táú9ÂÌ¿×jŒîuÊOà7¬ä'½£[»÷HsHs¢4xÅÈé ývÞh÷»&N™3ï²,ä¯òàÞ¼«»PøÛÖ……Ì\!nÊ—Iž‘Ýù™,dsa‹™2,ÉÜïéÏé›_Ôn8Zr烹ªv{ˆW1óLN¡¦‹JD¼¥"eéUMäãëj“µB‹ND·ó›^ÖåÓܦÙv‰çxD‹ú)MènÁ Œ;Õ×`xÞý¤ŒAhàI%Üú áG`¦‡SØÉň,ø,^‡QXÒ<5µ[OtÂ×{ù…Žö„F×Ï+N•W¾¤Tær U Œ€´q^¾tÆ^?Ø|%uÂŽ¯B_µ÷Åás-™^±`Ö¹Ðü|ñ.ù½„õœÏ¡-eýËÅÌ…£×ïO©èOÕRÁ]k¯þ)¿ÒÃú çøbU'þ÷˜ÀÁ±CŽÊ|Øo‹VÀ,÷QYáŽeƒTÅ€4ù`hõhÃÌ"ÎÕ
-¾•Qÿfí2FZ Ys“^É2ç1›èŒ}´x•oøLÅ~êú¼Sr6Ã,f“Å$ÖÁ~¸!’Åu£Ã¾¹fu[¨½$|8GŠ XP&k©:Ä0[gIJõ„ç)C‘ ŒÄ«é3TûÂü‘ë8‹( Ù‚.àu6s v>ñ±=ei™t„à cþ9
-ËžŸÜxªÄ®»~dÿ|°ƒÝ{ú볩P¤ˆC{TÃÂb ~3˜˜ Ô¶q-ÖTkþWBµRè1
-œ^Å}÷b"áŸÙ÷?'q ‰–Å/F?®ÊD¨%·ŽÐrm‡6ÓÃȈWw[ ØÊ.K.¼€–X¸¢¶ei—ùy¦ ÚI‰sÁÙÛ èFCëšˉ°Áº¬Âì§4{ô_ju5§qWb¡â:‚F®¹‘
-£MQùžÑéÄ›—\Jo£c ÚSAЧÏñ`K¡ˆC%oÝ«ü°¢’N½`ž¾VDÚº‘´^álmÌb'OŠ žQS‚sxCþíº7pážÄ!Jà wF‘›UíG7íoY{º³ÕãbžÕ\Û."{Š~ï!x¹Î+~SÆeT•±ZЯÆ7
-«ˆbÉ4‡\·L0<Vö†GÉ'e÷Ôß6ˆ'„ )©oè–¿aŠC!*uȨÈ9ý$JÄêpêütÏröýr–™·j«œ'“°ˆâd§Í,=~è»EÔúò#¯ùI/­r˜íÓúY«hu=}þú]%HÇ*»a4W(¾‹uó2§ÊÏ}5›z—”í»¹8NÒ7“;ðѨ
-›ˆu61j&všQÌ/‚·bénx;Á8G̾
-Xþ®qp…rÆm`‘ /Iï¨ë‚‘;ýR¨•å)’Ô`m ^f©>¬OÛÎ3[~½›ÍÄŠ
-x¯°&ù.±óh|-ö¤² K¶ÉÉ6 N¿È¿ð.·ÐøSýAH×ú¤ÅÌÞ°—‘,ŠeV®D’R¹ÏÎ_ƒ¢‡):?¨\)Ì/
-ásÆ#ûÝaØü¾C-(^Ÿ¼,•}3Ûð–VG¼:Žˆpöø ‡~fê"¡€«ËöDñqšû„\ãL={,Y6èsÓö&ÿRžéã ÎvøüÆ’ ©—2[<Â]*ŽUÍö~Fº*Äe¤A¬
-‰&$_׉<%@v©Ç1‰4~å¢få¶_±Eû´½ó*`,ÇÂÍ“)‡D7^[#¨eNÄî]›Ä|ccÌ.g‰æRuõ~êP„¨ö­þ²øwâ¯Ú ¬9ˆÆo Dà{éøk JPÔ箫¾<àØ¡{ÒŽƒ£H ˆš9Û¾>,v§ßÚˆ37ïegiZØÃÎ’~92ïc¾q`¼„¹WËmÞ/ŸªÈ"Ëùtþù¡Î T¼ 1¨3
-ŸáG®o4± ÖQÓo$øµì;ÑbV!ûykAžÔ^¶ª¡/©ƒÁ7ÙÈS÷ƒœÔdíMèSAˆ2xî^vΨÊXdºo{g@½ËZǃ¤ÃMp¦|€…¤}øí«š
-¹˜%AÇ©OOûØ+VÄ‹~{HŠ¹l…¥mß,+?(òÖÜþòHaöjZ<Dgº¢(ˆSN÷jÖI€µž„*m÷5eÉ ø;ë'{ª´äú\U·®¿nâ8¬÷Ó‘àfä
-,"õRbzR_'Ï4\ÎG-M
-ælSŒNÃ Ëù}ì3½ÿÚ»~¾-ÇÓ]–Í
-ÑÙÜôW3>Çz¶P\üõº"kw5·D
-(ÙüՅ'•±²ò±—gÊ1HðḶ Ýœœò*ãN_RÓýÈõ´Ùž®Svt¤/wpõL;AÔÑ8—šåÄx{K³íeS”Áñ9UMe›ŽˆÍ×ßÉ¥al‘Âèi×N~¾Î3±ÙpYbdÕŽðéa/å…8•H þÐeý%‚BÒØdÎö¬/~.¯mŒ“Óø5­ÝÑ„ßÓIÆk´í0ùX,ãHKKÙ©qä6ç¡•ø;~¿Éo Šœç”÷-mzË9é‹.òÕºû+Ó·œª7ÆÔ¹ D´!úÅA±´âë9œ¶a¤<Ïë­á_í°Á‚L=€@°ù¶NM¹•íô™gFNó®äìS!à{ù²gâA}*ßZ¬¾"L;¡!&{SºGÚõvÿáIt˜h<Êo`Ð W•˜÷¨º=áp¬ ]3#"ŒBŸtª”‚¥‡˜QðëÿDŸ°Xüù§—K`!6ïH©/ôyþËZ»ùc¥ÏÇÖ™„ÚÝ"ØÑ6Ølšä–ãNdn>‘W¨f4Ý…ÊðB÷=Iâ¹²ÞDŠ¡éóñL—eMåu/÷r5ÒÄØù?¶ßíž;> #ØŸ#J¬ïíýwÅ\á0NJ]þî\wL‰ËW) á«jû콪:‚ÄŒq˾t/eÖ’Ÿn…‡þàObë·¶tóÅ@Ý—†v9p%Z§ P4n¦khÛ%ý®äÇ=v±¯l8E45)ÂcŸfÕ‡³QùâïsÊ9 YbÜ„ƒlï^ë)ý—$ÕŽþ9%AÊf|(—À»‚††î^müu¹ƒŸŽC©¢p°°ð(3ïû{TªÓýᓘï,îÍÔ}»ŸÇ4¼ékv× Ð·5™\Å«ñNKå'®ÌhüMÁüúîVµü~¦@Œ1ÙYЯx¹éœI¶ä¹O¹˜ N‡6õqéà/ð¸7^–@€OÜslDåÓîjßËVS!V6U%áÇÔaDšò“£u»7Z3c‚8p€È3˜£Iº¾œˆ²#>‘¿ŒRý­Š˜–—œ-¤®ÐáZhOÑŒfuð4± wCóÀ:t²YÆ
-àé nرn¢YoIêŸ<vIS Y°ÆÒŽ5G­æå0Mö½Aˆß„«ÿ/kZâ üÂz×bAdð)9Å’6Îö‘Ðk¿Ý§Ä7#ÀjhD(ÅêùÒÓ|[Cªé¶w€áàrÏxéÈsCptE’÷$eŸ‘ƒcö2o¬ÝœSaTS¹/]v¶Ag`æÆ¡¦Á§GlÀ¢?væͶuŽ+¨Î_¸¤ k1¡v=œ°úš§¼›:ܵÍ2¯·^&,ˆ(:˜Kw²´.Ðf‚fr:=P]_ðµW2Vƒ4‹"úCñSðåÙâ­°¬Ø «õÏR ,{zvþÉ ûÕ™€”{uuVœ¬už‡ìNŸûâˆl,
-_… Q×G×züù²žxZ5„3&° S&áŠT›D«HÎÓMn@gl"º7÷qÔEÔÓÔ´´¥!e†j³7·_ßÛ*
-«4èÑ?jú9‘`¸âQ[è)µF¬j,>.¡ÿžByù˜únŸ‚)L©uwŽ6 f
-(ëI0r/*•6#ˆ,º¨YCYæɧàIfðcWζ{À`Œ" ίí+¸6¶qÔ…Æ*zcÑêZ ô,
-keFüŸÒù
-d§'¬ö ¬Âõ=¹»+¢Ûžß›-°6Ç´mQ@hbQîÀ@¾<˜õJšBHçJÑ#ëµmVi¸×0®*YEáœ
-ÒÇ™¼ïw±w9=rž„%É÷¿´á …ˆÛaçE„Ì|ÔÝîÄOÜå!ƒî8$á[¢ôbIe©93«•ìƒUëÔ8Ÿà% !U ÒRÓAšx®PöÔ™JØkóÇ×ng"¼Ð+7tF|…;þí|PvùçÆg/CD?Aæ`CFF9€”’Ò󮋇ùã9#H…Kà{p”¦§ó×XzƒÐhÃƧ ×´;{ØÉ…OÅY“óç"÷
-ãÊÅF_ÕXƒÖw_¡ØKèJVDËXcïEhÛ‹Ô— –ÙR¡pŠÔ€V§éêÆÎ~'%œjeö¯´!ç˜ö: cf f(æ’"äËèÁØ\ûÖôùiÁ<„îvÔÏ:¥•F²,ÎÒ$£ÞzvbsÓÚqÂQ V-/°í-2vŃäƒHì£ ß¬«&ÍÀµÓ©ê^; çÞÇóó~ì/ŒŸ ðþh¿ÂÞ Á†ž^tW÷´]þ¿À·Õw2tIW1‹*íàNk-ûÈȯÃîoÕ8çâ•<ÿfZÑÛu1¤u“&LÑßÂZ*4|Qdù ˆêó½ë½Sý0z'D%4•cŠHÆ#Gmqu ÜFu7â¨pq³ì~zS•>¦…¶˜¢¥‡EíØ^þ®Hj×-Þˆ-11e ±%ɾYö^‰Á†ÚÍÝïx௰éý"ûcÑ®žêön=F8^£GônW?&L1wñWþ“—¾Í؆ŸÏêÆ€#§R·¼ÚR룸þæ
-EÚªVMo·Œ$yg@;”¦ñ4] „逵PØWJ]¥0îNÚ”}0ý?ÜwüÄ
-"¯RÊ*×Qú(­À4ö³)FO›’ ‚äêàþ(ÇÀN-ÅBÁÚc·}2«Õëé¢~ÒR¯ÛûÇDã]ÛÁ›75ÑâÛ?}’^¸Ã/T89B"j':up·ýÁÀËuŠwX¨ôN,[œZÕz¡jð^[éÐÒÊB¬ ?ùéˆ&µ_8èè¯\¿T~+¯þzF¹­õ ã+¹6sÕétäïøë÷’ç6é¢MLqý/V‰{k˜ÖtᎭ 5Â3r;þªOé‹-ò°Yüeå‰4Š\uÔ®¾O½ÜlMÀ¢€rº%bABõ΢8ò1âGÝð+kLiyûƒ7õ;3»à%h#üï[)ÍápµÄsÙHObgÐô»ÑŽ¹?§Çe×ĵ{ ì«þ&ÄqKZÖ¦ ¿ðÒ;qÛª47·‘)<´ 2‰Ç-Ò¸6,éó}›‰Êá]Â?…®ù6Çœb„5ÂxÀ ž^èvíÙœþÉ ã…~È’Õ*Epב~솳ŸP§Í!ðœÚ ^*ŽÒ¹\ÝMÙàvu¸2ÈL].ÍàE´”NDJösö–êä*\Ðqeùšß±œ²ƒ¯êrýrxÍ!¸ï%ծΟÖòÄͱœ·qšZ%ªæé»V7äÌ¿%þ_ÿVš*Ý\„ÊÒ$ǬÇ™Va ÖÃVáÙàYú#gXõÜ¿Œ²ÕÞ·èêµÁ),|d œ¢Û¶†ñ;îìSJh"¬t§?ßyiKYLÚ´pØŠG?'â{âÁ:ì&~&¨*Ir‰OŽŠÜô«þaÀäOÀÝ 0ØÔ››Uñ@t°'Âÿ}û¨ÃšA0IùúL{—p.ðZ¦{xyYOÛ–©Äï´+Ü sHuOŒ¨ÎU G£–@¬Èo`ñý"qà‘±îø•¢†>MÅ€žQg¯¦ün(Nß_äz[ òô:ÕK œ­²S—|vîc50ð>rá*˜RLZr§±æ¨F÷ÓËÅRè¯%ùdÏÌnw°GAš¤’€\êÌp½{ë;îÿ©£1ö§¤Z…(Œ£ŸâÓlXzøÓ£g®éË7âE–$M@òŠŒ!‘ø„~!Óm¡.YAuõdOÉP)$0+17`´¦>‹Sºšà`Ù|ÃùõZ+iÌ%‰Õ-Ž­Lf„1®Á]L?ç©Žý²ødµ§jÄaš›ý ’«+}W¸½C…÷ .ìñHÖ¯b sú =l!î‚0Q­ %— ̤¥¥®.©Q0cÑ…2¡ùÄr*Û>ŸÙ8ðrõÜôÎGùÓ%'§Â5æ+)Éñ;wF$ö’/=Ô=†1Ñ¡*^À½”»ÑœäJû¢œ%uÅ,ºs+§ItO¸’ýôí^êÓqVÆ/õø­˜¸èc è¬æ²ao¼¸=¦ªò^y#et…Ëõêj‡sKÆÝ{%&é³ ˜P ÅFU1ÂäÿÈ8Lˇ™§”ÁW‚e¾Sî3_×ÐR…%«~Þ¶‡ª­R¹¼0Ö¡|!GZ¬7™D¡ÂmlÉ« û¬ÅÚ›å'û!ªXÌ Æ¥Ð‡Ÿ$Ûn¬ßi¶cNÖT{·d­ìD§Xw¿§ÄšU ~pÌßíÛ/“8
-—[«R^i52)úIí 8Ž?œðí•(Hù%‚¶§q‹©[&H…U½3È’PǃjÞX¡(ìÁõJ[Ú(y4\9{1¯€kÒ‰X)×'Ùʱiüƒ²{æxŠH.ž?–… Ý®CÚS‹|¦iŸÎ+—^Pcª(¿œ($&:W§||RÏä|ó­„Ñgx^­ˆI4¿,]…ѧ <‘å ãÜ5u@܉Ü Š4
-î~%³€8Áj·ÌÓ¥í©ªf‰¾„ö§Ï‰óçô$zƒ1Ž¤PP9*'+p9øx3T.Œh“öJ™¿Âõæbo¸ó¾4¯íò¯ý ~µbàÜÄÆÅëº
-ÅïBú¦·bF3‘¿Rm«v—¾NhŽµŸSs-©®Ø Vû$ß±:ÆMÏÇa£é¬¥Òžwu¸`†>I2"m)pŸ†¬)LJ-sE¤wBÆ\ûàx¼uÁ ìàà)†ý®?w-þÄÛóS*‡Û×wün>òîº佇1©úìIn\@Áû‚#–ÊI£óþmü€Êå^MåQ5Û†ì+fÌÉ)sm%$¥®2AÁ*r¾¯i`ƒÿë÷/Éf×(’eŽpý
-’EbŠøÒò÷³órrx¿Ùî…Ía"”æ$çÆ:O[½D—ÏMmî”ó¯åŽŒlº7›ßÔÁ¬„dp‰e=ãvÏA6ä“Ûc4ªÙ ž)ÊÏÓŒMëU—)Å#ãùp¥)~Ø߇gºte © wuÃ^-Ù†œ3m6vxÐ.ú»Cd&ÏÌ ]ˆ
-%"ë»­µ 4-ÎøYmº¬<ÄÕàÈVTøEʦl'‡U3ž,3îÔ€K6:á…Á ز0ÒöuXêçùpƒ$ó¶žÅûšR™=?ì¿3OZ0œ‡‹œ$%fÅ5•.," ÅÕIKfL&Ýd«ÒÛ¶
-Ò*Ñz>~|åÄ!á“;Tÿ¼°wc8Â
-Ÿ(*mBÊp‘77cq²¯„#eµˆ½eñ”æ¦KN84e
-þ&mÕõ­1Û™P·£SÓ<òÊVµ}÷Zê§@ÞMë€<€¬åË&ûqÝA_ÁXRz½–¬X;w3ª¹BË?#,d?¥®‹#{œhï1»D‰LÄшÔ]Lª0‹G€~8îK‹žo H]¤äë®ü²þ“’Bö¾w€Ö:8Y2Ÿo¸È£Ç}ÜÕV%$Á½ôK”t³ 15^@$N5k›¿W²àéîJXɺÝh‡ŒqÇ^èð ^—ÛÁîHú¸5<ºL~_ÜOùoÝ#ãP ÷C(oqZo~„Øq}·wy™søÈ
-Îs!V •ãrMLñ<'šP¾ÔŸ@¸WYÒ‘wçÿò¾Òç–Ö–V.wÚº7qËw ¾y2obW}ËÐë£ ~W·Àg¸sbj„ȳBMt èi(\­ùê“í&×ÙzzÁð4#C®­x@åHCK‚[ÐÚ¤[Þ#Ç©rÖ{°“ÈÕ84S’cmáË“áôÚ¤È*§6MM*sËY$:_Îñ¤C“Ø“›Ó¬ªc¾ìi'õs1z³vØhæ:¬—µ¼ÙùÆLå†Ò–³i]¨W@†–M˶ڧ‰I܉U¡€G‡•
-ª'>Ûf4C¸MvtrZnàyTÉZÕ$KËýaGåEìÝ¿krÀ‡~fµŽúî„ÙGé¦éåGa5ÜÓ1ƒÌZ[\ U¶…\Ðר·ü¥ÀæêÛ‚Rèmà>ñº4ëµ÷VyG~ü½m4ø0QÍÏ<5&6,Å*Ô" €öºàÏ`]M$¥¹¼$ûË«>Sîy
-i¢§£ !㺲”ÐÙmPžY1áÈU—¬h…øƒß'p¿X²0«Åû×N¿”UVÀzÔvƒÜšýâ„å®ðÕæjæ–Ä9Þr`òٷ…Zî¢ôÃ5†Q¯„ÿÖež&Zç:€âÜ3ùO7î•r+B«(ô]gþÒ¦ÈÑH=Fˆez u±!DÓÆQfl³C%q§Kõ¯ÏÖZ®^®¹Nˆ;–¤ßÀ¨ZÕS¡…ÄñÎ_\‘닼‹óDo®Fø>¦R°ÝÍj‘~É÷¯[÷oìÄæò n?[Œá)m’@©—‘Œ1´bÖ9Í­n8-MŠÝšá_jÂå­êÀ:BÝ{8J4 4q†ea: ý>F‘-¼ªø¬Oð…àŽóMA1bÒvBŽ0{«i~n"É(ãUeAqò`Z(سRl8ì|–½v:øŸ”‚'Š’^ÄÏlÇ7…·}¡…4íKœç:©ú,X…¥­­¡bt‡~Wî¥öÕcE«ÃÝS‹†=@å ´Ê×æåóÞ=hj3áRe*ý¸
-Cà ê8ÎÉ]Özá·}6ù\ø*ø1B%[3DŽG
-ŸH¡ó5q¤Ã·i±‚”p³×S“š¡¬p£“ ¿ EûÙc¡ó,ßlÁ5Á²È¬íŽÏl©-fͿ궘SOpø¼5Sy˃øú¶(û
-.3Ÿ– §ï¢Uí,?H-ýÖÒzÆ¥¨>#uQ4ŸÕÃJE,°NN•SONãó‚©;0ãb°^‰Uåª<& ²Nåð I[•Æ«çº´ÉQì\ïåºÞïñ8+ìNH‰\¶¥S‰)½0@ÌJ,yßÙ ?3FçÐi®“©
-X%Ž…¾‡¸ÝëÄìk|ßâðmbØ|¶®¶LïÄì†Ùû¸ä¡›¿å4žUt§Í-Ú'ÏxñwÓƒhÜ£¬N¦ú€·$:–©<©?æÌ"7{•åQιv – YRÀ¯Téœ'Ob­²)7_ùÖÊ$ùÐGDËky—Ý·¢ÉŠ†Ý¡í¸ sx¸ ìqŽ#cßê©Ê±•góf©õÏ)mé¼³_«´`—¦„j?ùÁ“³Û)„„)F'ÏÔJL%%›«Éw‚¦¤‰¡g¸ ¢̪Bé±¢W>"BYÉ:VS=e=X|ùÁ±¨Þw ö¼Ž”ò°=èäÚD¢z*•(J":“–ÝæÜ\ÒËâ¦òUàñ+º¡îîñ,XbAeL¼Ásg]ÔPŠûÕ!‘I´+SdDÞÀð®¼b–ŠÇêqüÆŽ·ß0º¯¬÷Y®M»®¡J±˜|‡à6RBÃðšÍØøæU÷¹¨E— 9Ò­êÿ„l™– ÅÚÎÔƒ™­GÝê™ "âX[zq3H³Üé[‹ãq»©¦-ÚÞ,ÈŒ3:I{r¼â:Ü?#©+²÷%g² X6F~“K0'Òöé½0r=ŸËH“¢“éÞiŒúR7a´Böj»å¸’CêOm‹FE „m&V”'TKõœ
-
-¿*,‰Hç[`öR{w…ÝƸ5¹¾ŠÇŸÉz¼ÃWDgãX°+>BÃ]‹BámƒéIÜ_<©œ+V§UžÌGT Æ‚(ø‡Þv9N{ Óü
-Óúš"ýSz×âת 2\Ö´ÝõØŽHhKÌ´¥sšùíio=¶ïÇ·‡¾Ü⪧–AL!¾ëø ãt¾tblkMÀé¹7AÑ|e·šáfa$|”?²Å0ËvœÁ×°(Õ‚î)=í†þ ±T1ß<” î³ PÔÚƒÞzçäu™»Óƶ»]÷so›w~ª°äƒ]ÛG…,¡ñó!XúÆ‘ŽÝo-*d~}áóÖö2 §Cv¿*ìiëÕÎøˆIXrg]é‡ ³Yèîã`"ùÞW×·sÔ¿A^nÒÕùIÖÇZˆ‹ÕúMºpnc1à€ôC…M¯³ùmlU”Ø—Xz ­ìS;ÒÁ’½yXžMÈð›’]h|¹ ˆü¬a^6ÕévH£ÊšÈØDuöGÑwdp7™õñàéÖd“ó?¢Ñ>;ô¥:žu ôÍáS>3ÞÒ÷“ÉU·ák&½þ½e|‘ÝÛZuFÒ0  ¬±üÕ¸¢
-iÑ$Œ.ÞoŠárò"~ÖùôÕ³zUF•=GÉÝ©‚~éRÜ×h4ÖÀeiâw±žRü/dRÁŒTkÍ#wƒ0&§šžh,Gë±Ãñ°`¿pLsî'úm¯=±çɱe—~–¯#\‡zó,ªÊÃã•ì9»^Bü¹“ÿC=u°cDk þD8œ/'V¶4¥? a¶d»Ø\ñQ­mÓõ:F,ÇÇÔ²\ñÎ<šr9oâ\è‰ñÓ­b]Å»¦f;Uˆ#e2S> xV¥˜ÃŽ­ˆ†ê§—jŠP™­¸¡.!‘#È÷©voÔ`ÒSº’ûþž}°S
-T S!õ\¶ZãÒJ)¡#¢:sÌæÀŽ_îR·è¢#Ô¦Bò
-êOqÚô¡9U¤ $Ö=6Ððü|Hò‹°s%nS,{¨üˆ&õÊ’—8$²cå’6¿p[Žx7íj£\k@?®ð¶ "Ü<4s=3Ña½BÚ_Z¼–âç0h^×IÓ¡gÀDFÌû"O,v}V%t ïæûüH¦¼¯¸Êi¹ò¢Œ
-Vº<3ÿiúü`+zв±ƒõ¤âBy¿e5m¨á^[ÄyaS©aŠ€()ÞŸíÆÜ=7w3ÔV³Md& ðÑÈå’½Teöä´þe¢QŽh¬õ äØîαÿ”øg´>»6¹”¼g´(>\PóÔkºßo†‘vÝ8‹¥‡HZR¯±˜(rÔs•Ì7R¶s×»LíªøŠæüz!ÁÈ U[–Õ²69§QŽƒ.[¿’6çÏhüS—Wse®÷±dßbfïyîI‡dÁFbNþ%ÕgÔÆGœ¢,bœrü(šÙÂ%+'‹ Òl£g"îuªrC`Wro¦1€5ÇCÈ…çpû¶šÍÄ]sG¹ÑOnäàrqœìZI=…M}…)äCQÊ~ ê!µŸ¾Dz9·%eÞ!­û©ÆÁ”,Ý,>׿¿âb‰lGûrs RøV0' uV·ƒÔ) É ²;^%!#úㆹå"à÷È“µ‚i4Í p#Öo·¤_Œä%±!¥Óæ`…(`¢ix¸ü={Pìr {[£3þÝɶ*\ÔvµvÈÆe~0{zŠJ"É®Ñc
-µÄÀ‹í_~ …U¢÷íýwõœÅ6o¸JÚè¨OÊÿ7E®Õ?ÿm]~»úàD¾?œñŽ¹,à¾$ôƒc2‹™‹ãé¸æß‹M|&ìšp{³×Ó\Ì «e •Œ¤·Æý:®s”CrªÞr±[G^…_x[´?ÒØæå'®Öܬž ¥Škv5‰GlŸ뽺>QÄè5ó†…¼~šÒÙŽÝ  ÙvnÂ|*ÑÐaòÝ¥ÉÿÞ^á=tønÚÖ•_ÎïxPðdòùCß•b­RæwWbgÖJ?~årοþC¬[BýädƯ{ñ h§úÍwÓ‰Ï'}2~Ñ]Ø6å°âÙŒ9û ²&ÜÔîNÖñûö¡î±`luî‹)G2O=ßùEßCùä”Õùù[
-¹ÓÏ™wŸ˜sìÇÆâ@•»¯M·åöMXvºóEÿÿu9~Û¤k²¹¶…ê¼ ª?yÉg“º”òÌÜ{ç;OÛ«YŸ$3iÕæ#ÛÏn•8²oväóŽ7¯ã}ËÏëÕýÜá?÷þ¹ësÿ„æÕäÈ©Ù÷pö.Õ`¹fýO©a›K<­ÛNîêè=|ˆuÖïD©â¹µßýÝ^Ú(šDªM?T¹CÂxÝ;)ñ´g¥ÙENÓ/Û¾}õ%×ÊÛJ®Q†…É9©‰E%ù¹‰EÙ\
+xÚ¬¹eTœm“-Œ»kÐ4îî4¸»»7.»»»‚»»»»Cp ÜõËó¾gfΚs~o~õ}Õ®ÚUWíº«W¯¦ QTa6µ76··1°02óÔ”5llŒLö² Êö¶F€¿f
+ŠïNfF  ½¨ÈŒ af
+53°²Xxxx(
+a;‹¿r0ð0²s3óü
+>W(dÊ(Ç\Amµr±ÊõÖ½.c_ñõwi~HVÓãʈßHyê…ÕØ7˜ñÀ¬€–}­á­º>›IÝo‰©›¡³XaW‘Í–êS«±­8Õ¿ˆ_$®°>µbÝÇÜ·¿<=jpŒYK‚kßìä
+°ø«üVþ]%ÄÕ3rñ<ñî5 !®®ãûz#l’–TÍáf‘xÙHÌë"äfëñP“ÃÐUeWcƒ¨ý°%Mg–@rW%v__ðÆ7ÊJ ÑÞ¡xÂ6%xË\5äh=Ë涃¬f'Ë¡r¾¬Ao JÎÓ€íÐ’½’=49þ­Ÿq€ûNH\åg½FK/2þ'ùÙQAtšåµ†,ß´œÖsù+–Z% ž•Ví0ªD]Z(
+‹ž Æ©lÝÊNõíëÓËv‰â›iŒ^ñ9 qÛ^U²a˜ÝåD\pœY-FEð‘ÄRÁešQ^ÿˆçš*B ¬$gÞ{EŽ²&ÂÀèΨ³Ûº Éõ–H6vyRº[˜}°¡EHSÕi+ÁMÎ%gbŠþå xšA²©² õÏѺÎ3;V@Óà/ çFôÖÃAV„è8ËP^Xü”àÍë/ ™Ã›õ+:’ÌÃ>-ÀF~‘ÛÔ»:Xm* 3èª_º°šjk͇"éá½èAýÜ“:£2½+&Ü£ø§$¥&k†,_•ÿîiÂtâwˆQ^×ü\Bª“ÍÍU¿¾]Ÿ| çot+dÙa@lMv<T3­p´šèªt‘§ûóÕl’]qc_òöþ¨?— Ã
+sÁÀ…¸h1Éœò¿T€U¥ëèÍKúÚ†O1œÐÃ=-ÂSGHˆœi*¡²ÕÛ9/€™—cõ¼ Aoü5ô°goGâ]%2¢!Œ>ì1€8·³læ ¹S0~øñ Éá4p}Ž¬5FÞuU7tD”£g|/šN·Jc ?KÔ9ÞJ(¤‰ÍÆÆ6ûwò|ÛCëB'u;0ËóˆÎ2{ ioQS‘¸sžû+;ó
+y-)„Kå/?8ú|ôL§‚#YGðuClÆÆÈ›ÇjBd‚ÜpÜ{k‡ ×zµ·€‡½âiaJ×D´‹Ep“F³–ÁËäöÅ°þ$äÇ~½®€¾M2°ª‡ªØÐ5©Ã’-S!-¸|÷[•;‰EùÔȨ2È ÇFbzÎK×ק±Ÿ„zÍ*Õ)]æIyÔažKéi5ßý¬} ½0œÍ4qXÙwÕdÅ®ºèSÍ¥Ô®?õ§ßýCÞR›0›&T˪¢§£ª(6¦º!X~xH½3ðe½ýò™¹„}f3§ßÔ _(ä¥HÌRˆ*kŠa¾Î’«&ÚŽ…‰Œ%ÔÑÿz¨¾§Gð–Y£>}C
+"eD}ðW:ä‡çèßfˆtó÷’»¨¬"ç"M.<oüFň@ÔÛ³]ŠóZ¨´ùhÍs…ôçÅ%D=ïþ*q™> ¯W¶äbz³Š:È/Ñ0´ˆÇêçîà¯Ï€„)7×wo‰2ÞDçjþ¡=ë×yÜ<"nÃÙ÷µjŸ¨T'Åà8Æòk•Læ“ ¹ÓõHi<¤wT¬ò},vfuÖC_L½e+k¦³”¹3¢_üѱ&­JCæ#CTüëT2ÜhŒ•@[åÅaîKÅŠ­º[=‹“oÄ.Z…æc¤Ì;ÜHÿâ¸K×ÙgQ­]2÷Á=¬‹y0ê[w%à{'v¯rî «_ks(Þ;6“:Yס›q uËQÏÈÿënD…§ sþÈɨ˜¼{9-v©cO±ڸ–S§Ð홤9D48_‹*U4óä¹Þ‹”ìu ?«ÖT#¿ì„¹×,8dÜjQ¬\΂¸eŒªø£»øÇ]FbO× ¦<qk–x»h³©ŽÚ鬲Çá™>Z5æ Th¯éñÈL†ÌÉV¨À r9׊<3Eê‡c"g 2þY8)Ì”R ýç¼ø¶zÆÑ)ÉUÂ^¼±Æ|ÿ@Ê°›#Áx¨‘Œjx$FŒjäôˆ›Ï„éa+Å2ö}”N£˜_Ùa³òÈ/Ò)lgª71h#ÖùЯîøwzj:îÖYtC&ãGˆ!{hëú°B•¸J[Éè ®Ÿr‚
+!¬!¾XGâUÀjñÕajÓâ1‹B9°E‰øA
+¼×)Ïù³%ÂÆõ3ätö»IƒØ³ÄýÜsfLë¨vjé5Ö¶0’òþ+ä»Tê8ñ›¯}Jžè³~
+,ŠÚŒ„¬E@h¨Ù´:æãÂõ„ÞλÃVH<ñŸZÔy{X¨2h†´–²×.‡\E‰]?5ëJ`×­›ÔÞQdB+,߆ϭ?sŸP7¢ÉoX‡W³œÜÛÐ$yÅE%{²qÑ´…Ñ”‡¸qÝPÜï„c~(^Šœ3~pÇZ¥¶
+™¦K.†¢ÍUiÎTcºiÖ]…&é;ç]1;&ƒ¡3–3#5' 9 ‚–¶ú‘ÕKÕ¹B/:nâW#9ÄE ?o£yç ý«9I¢Ä­£½0 ¸ƒöäÕO"Á„7ìˆx—»
+<)ˆ½ï-¢£:»ËÜ\Lø›Œ°¿qM毞s Lýz,Gi_'}yùÿŠÒ9¸¶²y 77%H‚—Ÿ Ømµât ³ià”z3ñ,É@þ. êÉ}Q¿L¶ ¿m™ŸÏÈä¢x™àÞé—›ÎD62Ÿ.ÅÏù‘ñœ¶ñEõš£¿9ñh.ˆ³’~§›x3×ø8:~ªè—Xø[
+R¦nåÄ~¾Ži ´ÈxTŸÉEmõmªM§h¶{”ˆ¯â¸Î&<ÿ˜c]5†Ç}à/ŠhôþzD`ü­wÿ ~8fZ¹­l´ð¼÷ÂU(¹õSc›åÙx|§oÈHwHTípÐ\ÂdYUÀKrE¶;R9Â0H çåKGÌÕƒõ7ÂGì¸Jô;^g‘â©…as&ísià‹WñŸE¬ç<v- «ßΦÎì=¾7%"¿TJ`Ôv¬<?ø&}Kê™âŠTÕûÞ£Fû™ Ø+¾âÃJc˜/X3ݲEd„Ú—ôSüS…å‚ Õ¢ 2
+9VÊy—Güš´¢IhÄdÌŒ{ÄKF­£Ò÷Ђ㔥ñû‹Æ}÷‡ÜUôx&e­‡˜M'Š¾Z¹ùâ‹ÕŽ ù`ä˜Ön¢ö|åÅ9lWˆïÀ‚2^MÑ&†Ù<M$P ¯#d?KÞŒ¨g ^I›¦Üâ‹hXÃY@™Ïp¯µž·õŽƒŒéÞ/MÍ %\ïšõËðx
+¬ˆ¸c˜‡%‘–Ng++Ówóã'6÷ˆ Á?¼ßVí¸ÐGw vðš+½ÐÕ۲棋æŒíéÊQ÷JŽM'‘yŸ× <‚lÇ%Ÿ êòh èwù¾ex‘xª}Žk [ý£ø“’[ÊkÄãrÂùä”·t‹?0E?… Û¥”e%`µ;v|ºe:ù|9ÍÈ]±ÃŒQʉŽ_@q´Õb’;ðÙ$jyù™Ûô¤›Z1Döiõˆ¬Y¸²–ƒ>wõ®¨m™‹ÝŽ0’#×ɲq‘]é붒EµCÂúÃL'IÚøÎ t$ÒŸ&­Ryt©¸nódà’@³0¬«®áñ¬EjSTh†@)–´D÷þ÷D¦\ÝÝQcçFϨ6obë7^ê—…ú5—ÍIÙ™}-úo#H »ß ŸÀ:CÇcœŒ ›ˆ§ò
+aDm™»êߎ1γ.ý—~¨ï_¢œré›ÇëIEÐ9hÆ8cäÅÌ]½h&B@¹Š_«±¶¾-1WÔ¥nå Ž.½ÞÍdà?…®Éžu¾wÕôùÎÐò`8
+óãÿ²uË2V„"jUŠD‰ô+·úúClûÑè2êû“ò,éë0(í<ïÜ«XÔ\ý¦êƒ¶åI“‰­~7=IË´LñkrÅ_5ŠBP,¦ÈÜ€R…Ÿ„÷)·Üíû5`Óû6•€h9|Ò’DÖõLý[j-ñJ"Âé£4ÝôäyB>g§Í±Âã×1™ú©ZÖh’*Màç†ÍuÞ…ÒÇœÍð(Í/®›<S4ÌU"ŠYÅú~J²"Èi¨N•$­ì\ßs~÷¡Xbî§|"H^ßf0Ú¾tãc'q÷š
+Qe‡®©ÊV<J2Z¹~1CáEœU®F•q€‚Æ«.þQ /4GÛJÖN5X£’&ÕU1‰D œ§ãH–ì/³ØíH†¿|^½|ۧЬuÒÖq0’eæâÎÅF¢«©ÃÐ4#b
+b䢳¯ò…§sÞ¹eü—“ñ ¿lÑó ­Ó{aØ[šNîêžØõ žã 踵
+"iQ
+’*ŸÁ¢ß„×Æ l-5R“¾ŒÒsI! ^ª‹däÊ}MÐ#žÍjSn·³|é\†»glmÔð÷±!Du9ô3¿²EMî±sœÞvŒT´Ý]í'*Œ.¬ÝvÞÒm1 eÏýýÁCþ´&Z×'äàKÅ"O=À^7•Ôó… Ù…Zoñ˜~Ø>ЊHÞ̤w/›U4ˆŽÛ y/òEù$7p 4%öƒï™®?íef‰ý1Í:@k^¹5S#J«.Ðk.ZøÈóíKýa }‹à×’²òõ¢µÄójÁ©«ì7(8–FƒžHü‡JtÏ*Tªßèá¨Tµ/}qŽä•çåÚ&Ã{P|ŒgÒú{ªVS!•ì'¿œ¸`¯î¯ÊQ %÷kÇ2#ê}ÖöM­,ÙÑ;Ìbè·£*,½l ’»±ÝªÍΔožÝ¼Úˆ§§ô·J„Äö­Ú(›Y ±Ôšû^Æ£%órw—t[_mú*ëkîCœÓU’uý×oˆN¢çžÁ§û’éŽoÀ‚µW÷
+|+ý@´YÀvÖ’ß­+±›¥bàNëƒEb¯/-ì~¢þ¾Ÿœ’¤¼}"
+ÏÕÃÆYƒL+½{
+Ô½¨qدG:Ø
+EÆ- åuK“Ö|Fòb«ƒ<N¹æöÊ(]ùƲ/›Žˆ6¨O·0ð=µèj§uiÏcØjsèwl
+·Ûž®ŸÁÜ .áã ‡yõô:a*bsî•‚·Çì5!«¦Dd‘èŽUr°tÓò¾}Ÿèãæ ¿nz8ùçcr{Cžç¾¬Æ²™=Vxlþ©¿¦–Šÿ¨Ù)„éo…Í¢Nj>ê FæâUþpjBÓ™¯+p«×'ž-íI œ:Ëp^ÒPZót+Sõ&Iˆ‰—»±ùaûÜþYÎö^luoç·óÝ㸘ÐùïÎuûx•
+Œ0S¬ú„¬î/ÝM·Õ$®»ûöÎ÷ Üׇ—ɹOvéÙ8¦/sFZ­AÙå†Õ{’¥§ë´ú¦®ìªê¼Ê±Äþ,Áz£§^¬›g8°Êðè|‹ò:æãz¡WCñ+¯¹J;Ù!C[Ìsºk¥Bˆ"9´‡ «|-&AhFÇ“}•Ñ~;EchÅ念‘D7ä¿ÑQÍÏÐ
+J‹<±ZnôaÙÒ²òŽ¯Ù.Où%¼¡Øªª2óee¬rÕÙÅ`·{-Ù†eb
+²1"¯² ‹e–EßÍú“ 99ôN ^ÐÎã’·oÍíÙÕJ6h”"ˆ¼Þx*µ¨ž4šþLÞí–L»Pºç§U!HUÞ™D(Òwsü¼ðÞø’6»¿Ÿ¸µoyJí.èa³ÙƆZz`èbç9™=SG¢v%ÊÃß¡²nÎI¸“$ϾxÅÜ
+PÖœÁ…9¼ÒZX»ö€­æ½`èuçoEU—B“,N8Í,Uã)~¾…5°0ܲ0XPT“Ö[8VÓçÑy&=dgôÂ!îwºÝƒè]°Y.z•è”Óº„:þèÏçÆâ¾éçGÖ¬ IgÆò ¨¯ óÎ’þe2ðƒC%nú÷|ÖŽÔ×:ÃåÐo»·ëÎœ_®X|Z?Jø
+„«"Õ3Šh¾HéÂú”øZÇÕbI‡«4l'Å4F¤CàÌø”‹¶§Óu -¼=eýX2$züVW-§X¯æ%¨°'÷ÖÊJ¯M?o2â†ux¿*¤ÄBl]ÉlŠV(B¹înWLÒn÷Pó5>€#2`#èÜ]i«Š@¶ÇšÉ"÷h<hl—ð€.Cwî$k˜3óΙXo"ݽ«‘Ýe‚†õ3|ŸÒ¥,t›CP"¸íIøºÏôX`<PLc2ñHxÃ5óT ùŽæðO;VX˜ävÆf—a¸ƒ"°U$pXÄå'Œèv³ƒIün¨›s‰¡®ìðtQé0ÙVÖ¿šHš­Ûé¯(‰ºÇma&÷‰`Ç"Ô Pâ'ȦÄCáDÔñÖ±{¾¨#ž†V æˆÈoÀ”Š¿$ÑÁþªŒU(ëá*Û¯=:Õ“ó8â,âabRÒ\Ÿ<M¹Ñ†›Ó§çe‰UŒaØà9õ‰œ@0Tþ¨%ôX% R1C“ƒÐ{O¦¸xLù· OΪ؃º3Kã_=”ñ ¾‘HŠ@YШ¦(uÇäUó÷ Õÿ¹#kÓÆÕ¯?JîëÛú \ Û(ò\}½!˜he_5@r…¥"=î¦dÎ_ýÏtʯgEëbËGLO$ö81DÌKˆYŒ`ÿUˆ—A Ì´b¦'Ïvô“Ô™!sqƒÖà1‡êZ€ËŠh†YÊLvRGñY)ݦfz¯‡ˆÎLÌv@…Â6)‚ ÓÕHÖ$é×óΪ®=ß÷T 7Âïéíé5ÕcJ@0¥s†n<¼-c+ðþÀÖ&',ŸÜ.Ü\þ<t ÉØǘÜý©iŸá‰IâN_z,~…hcèÖ„ÁáO<§'>óEnØwž¬òŸ(
+)ë¥üáYÙ¨Lúšô ©ŠWÈ
+BUt¶¨7Ž¨÷:cï õÇêÃ&nnvíõ¿ñ¯ÚKtbóD…ï¤3æ”ñ¦™ör¶å+a©p8¼m¿žÕð«<„«q.aÉÐ1Ú¹BiZšQ2›º¦ÎcÃ'`»O&zK•›Û#×ÍS"e®¯3cæðô.DÖ×ï”,S
+àÍõƒY« .€tª9´ZÝb‘„{ 嬔QÊö·Y?—£Y—YYÁWÂÙEÔ™q¡çÌÞák
+êÜyB 5™˜‡·
+à=a#·+«U}ŠŠM:œ‘±p>fìßJâÛ¯â®yµ­mͼ}ê,˜¡‰×ßÐæË‚š
+¦¡¡§(¾¥Ý ôEüÙ±—KAÂl liôìJ}{^Ø{QÒâˆPcûü™S'ó!1–¿uÇ^õdL
+ƒpù©ßÓÕFrdƒUÖDþ
+úq§4—¼¥äÖ`w6«rðŠŸÿ0.ëî½ÚиJ&ëmb­ ¼(°
+DöúÜõÜ©|¾Œ¢šÈŒ2 †'á‘¡6»Ø“졺²—;;ŒZt==ªÄHCÓ@›OÒÐÁ¢¶o-ýÐŽ; ±‹Œím@Š ŸJŸÔWß”ÃdÛ(}¯À`EíâêsØ÷“ßðz‘ù‰±`[Gy{·-§Þ­7Or·£ª³ð;ïÉSÏztÝ×{e½ß’C±KNu±“åQTos™<uE³º§KJœ¬Ã¿ JÓhŠ¶¤ßJ0ô…Žb=WMr¶7˜Þ ×±¼ðù«„’rúUäº?J 0•ít’Áúxœ é…*¨/Ò! CS¡@ æÈuÔråjª°¤Äóöþ1Á¨XÇægÐÆuu”èÖ/ïÄ®°seöàp„šñmÜ-¿ð~ð²†#í¢yfJÝc‹fÇÕ¨ùj¼×`´¤’ Kü/>Z¢ ­vZºK—/ÒeUßNB)¶4¤|ÄçC§/;ý~ÿYôØ"Y°Ž.ªûÍ"voÓò“6Ì¡¥¾c\hZvÛOå)m¡Y6“¯´,Z³–
+ÁÃ穇‹µ1Xè_F»H,@¨ÖQ«M6Jü¨vi…))g·ÿ¦Vlkj´­}ˆÿC3¹) ®†X6 ééû)4ÝNÔ¾CÎù¯©?±YÕ±mžCÇ;E*q\—´…hûÉÎ=u]w+Ì̬¥
+lãp Õ/…L‹z¼ÒÓ‘¹ ¼ ø§P}ƒ5"Ÿ¦èÌýÐwx“s½ÏÎ]ë“›ÜPè‡þLíaÁ7mÉÇ.8»q5šl¿É Å¢Híûˆ•äu.ûóAýŒ”¥Ð4^xsÉx„xGO‰v^ü9-g¦Ùó øŠçoû×l‚û­ª¼)MÜl‹9kÇÉ¢*îÞKÑ!5Ž¼[âÿõ/QþA…‰â}@þÕ~ˆ uRô
+pŒq6-tžž¹/bšE×íËkÍ}³Žn+œÀÜ[
+Ê©>ªus¿ýÎ.¹˜:ÜRgj@à󇦄ٸU‡µè`äs<®;ö
+™ý¸fÇNèöR¤tC åaÔlbÉšRfQëtF‡äÔr£š5”+¹s¾Ò”4GUÌœÏÉ£Äw VÈöŠ·°oý¤èFàš>š$’ã‹afH¶É'Ât× ŸjØ¥±ÃÊÝ¥å—D‡(È-%~™­U::®ctº–.æÃpàšS-dÉ+MSfeðÛnO BÙo?óFMéu$óÂ"ñG}}»ã¢ÃàmpÅMØ”· þ1îUXÙjù<ù0±½É'KyY)Ün”ËmS&ÙÜ0 ö䵋P˜ë4yž FÞu\–Úwùò#U|þæ"ß‚Ïйô°BT ך4|:'Ÿ.j‚DØò2=W¸¬hÛh–T¦Ýu¸xÔêéQûn)S)Ÿ›èoâȪp…ÁÞ§ð 6¿ ”’Ã4erZ؃àdY®Ô®ocr
+ýSr‚$Áõ¾Æ¤$<µ¢% Ϻ0k5G`¯
+—XÆ#vç dM6±5J­’â®F‘à¯ø<IßP¶ZqžT84š SœäƒýspªsN[:ŸzW3XïÑ”©Ï>5Öbåfƒí ¿ÛGdpOÓFR
++S ²¼ÛXCÓàŒÚ¤ÉÈA<P oF†'oÈt°[6±âÉ0áNö;g¡~‘‡- µ&i[ƒ¥zž ÓO4kí^¸ïö£.‘ÚõÅÎ÷=õ Ãy˜6ÏNTüʤ°ªÜ‰E$Ƭ°2aÁ„É£“dYrÛZNR)RÇËǯ”0(t|‡ê—únGXîI©EH&üæj$Júp¸Ô¼±§4ŽÂÌdч²4@Þϸµj¨¦%z+ãêvdrŠ[Ž@)ܲ¦÷á^SíȳaåßM±xÄd;ªÝïÍMDJ«Ó”ñëeãjB5“/eþ‚àkˆ…Lï«Øy>lÈm‡å5ªýÕ6A,q$<e“2Ôü †ûÒ¬ëS R.þ¶#·¤÷¤(Ÿµç对NšDÄë&|íà~{¹YA NðE7í%Íôü»* §Š¥ÕÏ3Iàdg9´xÍvP¤]ʨ}7dh¯Óug8mÌ
+]*¯·î—œt×ðýý Ê[¬æù›/?!vlïí]nÆ,>2@Ñ.\[p´YƾQ?ŠóÊ¦ï ¿£1Àòâï×çoݬY’2Û_d(BÙUEl¦‰çåR¡±±œ¹ ´uªÜrìö:cÚ-s‘¬ôHÕ'àÙ1újœ4èOo_ƒ«æš!–5˜E±#Ö5ûUãŒaÛq!ªhùUÆÓAô_îͶ”ßD°l®»»yÈ27$üpE¿.PhûîŸP%Rà÷„XŒWƒ.à•%÷‰³2T~ ÒjKEl<ºŠ~$òÛ$‘ª[¥” ánÖtNúÂDÊ‹‘ô>üÚˆp"@XcdÝuz¢¥EÂ勲åSq(ŽPxðuör„Ç‚pŠüå¡¢•ß1?_qÔq(ÿn#·ž€iDžV ³Øjnfßr»ÅM,ª¨D“­ç9Ζï#Ò?á“ýöÀÉÜ! ï»_E&JnãÅ@­jZ”¦é§J$hÁÎd’8§.Ds³Zhð’o‘ÑHÈû
+¹¼vr{SÔ‡'æœÂãÄ  ïqVyé7[ˆsœˆåhe¸œã“ÜÄ Æ/uÇ.E•V´d]y¿½.õ¸$µ$•Ê7ï]ó쉯ŸôEéÃäGÞÒu{ɉßÕÌñéï r-Q\ý»ë Vª¿yg¹òGáÄv´œœÓ?MK‘i)ìS:PÓ$ãæ·4ê”uËr(Ÿöìo'p6 Ng[™ÛÇp'@x¾6*°ǪNQ‘HÝrŠÌÕ…±?iS'tç$À4©h›-yXÆÊEþZˆÚh£2œ¾
+íaB-ëAvº6U¾¦°áh\ìá—¢aÕ´i¥òndud‘ÏçÖ¦B¥„êN‡Ï²I×n‘Ÿ”éûaVðø‡T6ÊÐpG}ØRz{õíïó¢_¥Z®¡>„9böR¸jxú’[u·O#³Ô•BC•n"ç÷6è.ýDÉ·¾”žW ¹ Ø#^“dù¢ÚìÖ¢/çÀ‡¿»…æ¾· &¢ñ™Ë¿ÊÈŠ¥P‰Zè,ÐZø¤£„‚£8››hwqÙkÂ5G.Iôt8Ž@ h\[ú‘2³Ê5-"¾ì”)}ðýî‰d6{]ãÚê•°Èð[جs[±3ß¼Z_Nß~ueŠ³è_w¥hòée¦’=/ùp‰fÐÃ+æ»u^§N‚Ö¾ò'?óHºé½TjAf¾ëÈ[Ü9ªE«1Om¢.ÔkX;Hn´ë-Çþ´2êp®ú}ìÑRÃÙù,ÛA qÇœøY£2m"8¿Œ8Öñ›3b bgÁŽèÍÅðÿÁÛD¶«I5Â7éþuóþ-ŸÂLŽÞõW³<…u"(å"‚!šæ»Uöc“P‹+Ns£B—FØ—ê09+ùÚ}‡~°þ·zöb Âßù¡™˜öh?…ŽPd
+.Ë?ëÇ| øÚg¡c}’Q µ‘ÃMߪ›ž¿f
+”ñù,bG‚ÒAÁ®÷ÚÑ{êŸG·¸ú¼ÖŸ-+ÍSÛ1ú;¡vÞιèfoÙ…Ç€geI3󶃉Sü´@j·ÇH+„“úÉ^àíWˆ|m‹ô³¦=Jr(gœ;@s  àwŠ±dö“1ˆFÉ”„‹·lsy‚lð#¼ùµ¬Óöç[a²xyýÎàVì¹<Ü9öû¡‘O6ÕdÅèò³Y“ÄÚú籄–dîéï° BÕ_|àIYmä‚Bä#§ªòÅ&ââMUdÛ“’ÄÐÓ\ú‘ý¦•!tXQËá!,¤í+É„2îÌ>|àXû”ï;»ž‡Š¹Øî´²­Â‘ÝŠäÅá‰K®sF?¯/èdpÓ x«†ñø\Qwv¹õ-° NÓÇß@ à93Ϊ(E}jÈN_µ*’¥„ßÀð.=£‹F~é²ÿÁŠ³[7¼¯¨õ^ªI½ª¦L6Ÿx‡à2TDÃ÷œI_—ö¬ý\ФÍîRñ{B¶H×dicìÆÌR¥jñÈ q¬,<¹è%™ïô¬Dñ¸œ URæ­oæ¤Fé$ÝÙžqþínŸTåY{âÓYÌëÈÉ$ó™hzu_˜
+8ŸÏ¤$IÐIuîÔG|¨1š »5]²œIÁu'6…#ÂPB6ûãËJã*%ºŽù€3¸ãä¹Ù¹h¶WÝ‘þò<éLÂÆz5Õ#6SÅo’8x}éAÞT,=³p¾š4B¯ò‹Â’yV˜=äB^¡·1þ®.¯¢q§2îïpEåQY8Vþl
+Ð0…W"Px[`ºb÷çOjû§g
+U©ÇsáU1 }r¾Á·ö“nèTß‚T¤ÞÆ¿äž?C5ø5ʨôÕ­wÝ6cûbZbÓ­i¦¾»Z›§m{qm!/·¸j)¥“ˆïºûÞC8/[šãpºnPÔßØ,§¹˜Håm0ôG³æ@ðÕÌJ@ÕÀ{
+ÛÁ$ýJú£ë‡2A=fò;Ð[ϬœSWêèV—Ë^Î}×mÓö/eæ<°+»ÈàET">^ ŸX’ÑÀûÍùŒo/¼^Zž¦a´Èn—Ý­=ZéÑñ«‚n,Ë}°¡ÖËý=C½|üŒ_ôVƒÀõ¬áô®‘—u´‘ö²àb5ƒþP‡ÌŸYá˜÷Û#ýTfCÆëhz[!6 Â%–ÜDD+ýÔŠ°·`«@’c4V´ ‰+@‘ÖÏɤ8>êWZ«Ìü,ü î*µ64Õ’d|v#å½MW¢íQ zAß:æ5å)y?žxPqºbÔíÛ]ÂÞ¹­Qc ZÃÉ]ƒ+(“NÀèÐïú$,%-àgžM]>«U¦WÚ±ß Ó’È #á—,Æ~‹Bc Ø^’$~ÿ¾MØ]ÂŒÿƒT¢#ˆrµiøn
+<0~¹–¯)û`W÷Ro¥²'OdÈe€
+û–Œ[ÅØžÊó©yOKGê)$1€.9R?‰Aõ™µý¹û #@Õ¾ê
+$& É3ÆÄ=žºkô“ ˜RŸ§µ×J[R!|ò6´b%§O«OD?Â%ËæºÐ`p·‚`iÈCÑßV®…Û„]ð-¡s«ÉAðrç˜øöåCú i²ã Á„¾xz´Ÿg(ÕPöÇÂ2Á’+©ç„C'"éŠÍ™î1t1lîdÊ>hàüÄy)¤…šái"AùÚåÏ¥+ÕÎ-bÚÂ*ÓG¬öløeε ÎÚ‚­Ê_àCæЯ@pÉê׌
+RÁ›óÓ*8bø |nq) 5OÉÆŽèdÃe˜)üƒÄYÅ!± Ô¸O|‚ÜÎ@ÏpWõkyp)xõ(s~á°Lê‘–»{‘£Y˩Ƽ•âϪ‰…¹Û楽IèÙ÷Úžãõt«á’ò-©0AÜ::Äñp=Ï“
+ž¨ª3d8º„$3‹žèþ ó:m~Ý N«4‡²d¾Øšû:ž¯÷×¼Bì±Ûd‹J_¢ ÝÒ¤ÄEö~±ÌƒÙÄû\–„Ã^;Z(WêÐËÜm×MœÏŒ´X¯væ¯%8EÙôWµ’´èé0ás>dã ߀•ñüF;yÞ?“(îË/s„›/=)bù·Yõ¼†„µÕ|{cV‡~µIhªÈotùÝ>\Iüh<¾*ÞÚlGÊ:)^œšý2y~ÐÏÙoÞ†ØÆzR‰v¦¸ß´œ2Pw«ƒ-ä8·.P7A@íËreêš½l-†Ù"2‡ñÿhàtÎZ,4}r\û2Þ K4Òü rhscß{J¸­Í¬N,&í.ˆåW?õ˜ìõ™b¤^5Ì`é"’ש/$ˆv_&ñ—n_óæ,Q¹(¼¢9½ž‹1ÐKB‡Æ”f6¯N̪—á ËÔ-g¥Îú1ýÒá‘Ç\€ëy,Þ³‡˜Ù}ž}Ò晳~5#û’â=bí-J^>F1vÅŽl„Å
+iº
+¹ÓÏ™wŸ˜sìÇÆâ@•»¯M·åöMXvºóEÿÿu9~Û¤k²¹¶…ê¼ ª?yÉg“º”òÌÜ{ç;OÛ«YŸ$3iÕæ#ÛÏn•8²oväóŽ7¯ã}ËÏëÕýÜá?÷þ¹ësÿ„æÕäÈ©Ù÷pö.Õ`¹fýO©a›K<­ÛNîêè=|ˆuÖïD©â¹µßýÝ^Ú(šDªM?T¹CÂxÝ;)ñ´g¥ÙENÓ/Û¾}õ%×ÊÛJ®Q†…É9©‰E%ù¹‰EÙ\
endobj
-1038 0 obj <<
+1042 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 35
/LastChar 90
-/Widths 2820 0 R
-/BaseFont /WUMGIN+URWPalladioL-Roma-Slant_167
-/FontDescriptor 1036 0 R
+/Widths 2837 0 R
+/BaseFont /KJJXFG+URWPalladioL-Roma-Slant_167
+/FontDescriptor 1040 0 R
>> endobj
-1036 0 obj <<
+1040 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /WUMGIN+URWPalladioL-Roma-Slant_167
+/FontName /KJJXFG+URWPalladioL-Roma-Slant_167
/ItalicAngle -9
/StemV 84
/XHeight 469
/FontBBox [-166 -283 1021 943]
/Flags 4
/CharSet (/numbersign/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/X/Y/Z)
-/FontFile 1037 0 R
+/FontFile 1041 0 R
>> endobj
-2820 0 obj
+2837 0 obj
[500 0 0 0 0 333 333 0 0 250 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 333 726 611 946 831 786 604 786 668 525 613 778 722 0 667 667 667 ]
endobj
-975 0 obj <<
+979 0 obj <<
/Length1 862
/Length2 1251
/Length3 532
@@ -14591,47 +14591,44 @@ endobj
>>
stream
xÚíUkTgnõJÀ+Å€€¸
-æ2@ ŠMË%€
-ŠT†dBI& ¨ÀŠ T¨\*­”Ö °Àr1±¢àY#BAn¬\uÝôØ¥?wíÙ™?ó>Ïó½ß3ÏûóY˜1} .l$vC„bHi€«‡ïA €D2ÎÂÂ…!1î‚Ä0
-‰d2ˆ ±÷ÝWà²Ív Y›' (T{
-‡ ¬¢1 À²a)
-Ly£ÖÞXû¢
-+¨É5Ýõ4:âûúí³ûñLj_VŸ>ø¬´^®ÛUo
-VÝìè¨Ç2çÄ2&i¹!×`9ޱʺy½¬Î »æ¬LÞ«gªÝ§ÊŠ6PšÉ*ÅA<ÎÝ™Ìô f §·ÿ—Zq‡›ó’½Ÿk4½/*ž•!g·nJõÓ$3N(^ŒÛLŠÆ|ui—:KýSŒ-£àK ÎvÓÚ.ågתJ$§í&Ýÿâ¾Nnar67z2õÜ?Ì_Æ ü>ñýú¢PÂO1ÖƒãZÈ­½ÙÓqÃF'˸ÏU^uNÕe¦fÄÇ1‡¤îÐHœ3*KjS­zŠ¿iÔqhïŠiD\Ö‘ˆQ3¦–¾W¹ìŠ“nB‚@ÃußD™Ïì
-Ëùg¥rJ¨0¡~ÊÌ
-U)És‘›ò¯7Vì8Çhömyèp|ÝLÓ«D+õ·™ULó•¦Å½ó%•
+æ2@ Š,š–K
+¸!l®”úÀËæÜ`6O"XÉ2ÄŸÇróa€
+X±ÙgBÂæ ƒ
+Õ€PŠÄa'«¨@4ð„lX
+ÀRÌ1‰(DÄØ
+¾VҚЇg¾Ù¶½wz[\›ÎY¶Šîw®qn°[{£¥× KÓÍv½ç5Þß„xܹu²6.ïúNÖÄ­{® &^ä’f®à8jMC³pœ…ÂÊsÄ©å®JyTŸ=¿Þ#½É_úÄ8Õ4ÅìY«w¹t&-Ö0ú÷›ašø;©cÅ3_yhᚌé×nË“®+I™ñ{]ÚZs_nn³r—}L´^uq¤Ö =äÑŸ«À”×*ÍÍe±ÏˡЂš\ã=O¢Â¿«ß9w
endobj
-976 0 obj <<
+980 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2821 0 R
+/Encoding 2838 0 R
/FirstChar 13
/LastChar 110
-/Widths 2822 0 R
-/BaseFont /LSENRB+CMSY10
-/FontDescriptor 974 0 R
+/Widths 2839 0 R
+/BaseFont /ZNLINP+CMSY10
+/FontDescriptor 978 0 R
>> endobj
-974 0 obj <<
+978 0 obj <<
/Ascent 750
/CapHeight 683
/Descent -194
-/FontName /LSENRB+CMSY10
+/FontName /ZNLINP+CMSY10
/ItalicAngle -14.035
/StemV 85
/XHeight 431
/FontBBox [-29 -960 1116 775]
/Flags 4
/CharSet (/circlecopyrt/bullet/braceleft/braceright/bar/backslash)
-/FontFile 975 0 R
+/FontFile 979 0 R
>> endobj
-2822 0 obj
+2839 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
-2821 0 obj <<
+2838 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
-972 0 obj <<
+976 0 obj <<
/Length1 1616
/Length2 25435
/Length3 532
@@ -14639,7 +14636,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶»lW—mÛúú}ïܹ³î̯ùæG®õœˆ8;vÄ>'Öz2“„@^‰FÀØÎÐDÔÎÖ‰†–ž ¢¨&o`mm`la'M£hgc
+xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶»lW—mÛúú}ïܹ³î̯ùæG®õœˆ8;vÄ>'Öz2“„@^‰FÀØÎÐDÔÎÖ‰†–ž ¢¨&o`mm`la'M£hgc
áàUûZ­RR Ž_&½þ’ÞŸfx¯%Ê3® ôEþsÈC®” ô“‘Bå0²TU’?…šÜ¡ˆhÍÒVùòýåm»T úÃ8Z§ä‚Û°ý ³:I?Ôöz"6›Èbœ^%
yá×h}×¹­Z  ypÓ‚u=jëé 3\xœa(74nŠïRýƒ&cx£aYKÜ¿‰~ػբÉI·XiêS¨“2ø ú›G²¨†lkÕ›$ñé³øI ñƒ<½*­;:̽¤PœT1]š«ÚowŽ0~,A¸ÕO˜Ó%/‡ìdccÅ÷‹k×{GKÌ‘›j™(+ÔBUÞD# ¡6ª:Mð%¿s¾†I¼;v #wïRUèB&%Ô øªÕ(cÊïZB™ª³/7í¿ '|8¾—}Z£6Ã*DLi´¯kâ'/rn¶èXÐ60µ!~Èaïގا*\Dxc(uè³?^NWù ±CVØñ Áá´ÅÚQ[´¬5üŠvȈ0Kïø^•vµÚ*V¦°cœ (p3“¸µMÖiÒ|#Óƒ}5ãByE¦Ç•yÖÌÞ¢º<^×<;>3ý
ÎÈ;V<g5j‡ùôIH›C„ÿæaTÓ€
@@ -14742,35 +14739,35 @@ PÔ3)lmŒ;œ¸—ü“5|—î”+ÀTÅv‰¼Ô_òF^›b QãLT?yÇ¥ðb²èewïA© !ÅdYò]mÝ ÏÈÍ[Ÿ
‡)Í1p’}l‹ÈÙ¤û¨¯šð1ônQ“Öü:”ƒ‘96êì(…+õƒ<“4Ã7Q|ÿF1°²¨üñ#\õl1ï,äÝ?7Âeì7®Œ½nØ<É„3ÄÓ›rhNBRòÂÑC
^[ÜÀ!ÄŠxMcOÝ—ÙPFt>l¿‹JF¢‡ßÂöð1’£†°åïxDÑv hÇÚ
¥åã—r¢fY—òU·zifÁUÆz*JfU¤ËÞ ½ ýä|ÿ:Ð(Pk<’¥WÝìo*Á]ö…gP³Šþ,ÚFjî¶%™;ɘ¹á9L9.DœÇǦÝ@sOµhòÚ³BãtÑsÒ~ˆ®›×)-ÉA
-ÇГöÞVMýͲ:“®³m›ÓWBÖþü/ùÁÿ ±©¡“‹½­¡“5Ìÿ
+ÇГöÞVMýͲ:“®³m›ÓWBÖþü/ùÁÿ ±©¡“‹½­¡“5Ìÿ
endobj
-973 0 obj <<
+977 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 2
/LastChar 216
-/Widths 2823 0 R
-/BaseFont /JOXPRG+URWPalladioL-Roma
-/FontDescriptor 971 0 R
+/Widths 2840 0 R
+/BaseFont /ARQOPU+URWPalladioL-Roma
+/FontDescriptor 975 0 R
>> endobj
-971 0 obj <<
+975 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /JOXPRG+URWPalladioL-Roma
+/FontName /ARQOPU+URWPalladioL-Roma
/ItalicAngle 0
/StemV 84
/XHeight 469
/FontBBox [-166 -283 1021 943]
/Flags 4
/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/quotedblleft/quotedblright/endash/emdash/Oslash)
-/FontFile 972 0 R
+/FontFile 976 0 R
>> endobj
-2823 0 obj
+2840 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 500 500 0 500 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
-949 0 obj <<
+953 0 obj <<
/Length1 1614
/Length2 24962
/Length3 532
@@ -14781,7 +14778,7 @@ stream
xÚ¬zceß³eÙU]¶ÕeÛ¶m[·lÛv—mÛ¶m³ËìrMÿþOoæÓÌûp"ÎÎ̽re®Ü;î8dD
Ê´‚&
CF&ìhjèl °1t6å"T75!15&db"däää„!#Ø{8Zš[8RüÅ ¤¦¦ù/Ë?!„Fÿáù»ÓÉÒÜŽüï‹«© ÀÞÖÔÎù/ÄÿóFeSSBg SB3KSBayMI9qB
-q9UBqS;SGCB#KcBKcS;'SJB3€#¡Í¿-v&–ÿ”æD÷KЉÐÐÉÞÔØòï6SwcSû\4„ö¦Ž¶–NNß -Í íœÿöÀ@higlãbò¿v3À¿Ù;þFØþõýS
+q9UBqS;SGCB#KcBKcS;'SJB3€#¡Í¿-v&–ÿ”æD÷KЉÐÐÉÞÔØòï6SwcSû\4„ö¦Ž¶–NNß -Í íœÿöÀ@higlãbò¿v3À¿Ù;þFØþõýS
fH{ð 1Ycgl
ñi0–Wä¯}Ã4¿ ðtóE&Åt¶Z \&—Ešà’º››¹š#/(/25©â¾î‚C‡ã{»ò-o8J<îqæÔ§ -
㼑a1Š¯@x×" ÙÍÕƒHQzHÈÈH<àtáŒË{â,ȸ†ÍÊ·K3”’/Y”Ôty®žˆW"So¼¥¯Úh‰í}oSOw½MOY%9
@@ -14881,888 +14878,901 @@ _ÏfZYX/JÿŠPžUºÐ±;Äó™Ã¾¨5ÃÎ~¢M~;-5”äÖ$„€`3’’˜à0ßnpöã¤ÒE›­ðÆúb89qÄZ¥| ž
!µãmYgKà”‹ù÷ÿ•£B}ôçüÂÛZ = U³W¯Û䉊ù¥tàC½^¦W
QŒÝ›îl6;¹E& ˆÈš.®*·Kcî):+©†¸uó‘=t‹b'´á":
EúPjAõ¶Õ ª±E@ ûõo`¦iqKQ`_`+§|,33yºGÖÿÚæa#^¸“¯™ÆÀ¤Çð—àBÝ®éãó8OÝòUÐÇ3&]¥§J°Æ$h ‹YH<(|í HhtÊc­µ YjCorpôaá‘Ögnj/#;ÌèâCŠ7±]c¥£ÿ|I4aü½ï¯kÅ3|M&ïæ†Àh¿}®²L¸­¿‚fµÝ¤TíR8g¤=Œë&í‰A¬ >ª¢Ûd÷C{z‰-6ð7Tœçܧž p"ÿ²±(¯Ÿûº`h/áw»7¢»ªîÈ” û½U6´‹°ÚS +ÑT~¯Tç°Ç&µÖªñ˜ü¶×êI z {çNÊ€‘±6qZü(úX(ø¢ZyÁ´~´ãÅ¥ÙÛا°ÞÊ›H#æ
-½¨©5¯O3þU¬–.œ) @X±®Kàð`ç0’’A©2ã?Â’§¤1à*\Ü& Ï×ò•Es”òœ³e»`Ž-Ä_ø£½—†›}t`òC;]t:ü#?=*rež‡¾ZNžÿµ×Þ ÞÏ-aæ:-ƒ;ž""·È¶ êÝ'(ž¶b—PÝò$&¦‰É&ŸydÌG­<‡#{BŸí’Tdõ/úYýþª·Áè`þÜ(JæsmjžãdàѦÞ#¶«âÝ]¹CÑdH€ Aþ–/“6óN#å
+½¨©5¯O3þU¬–.œ) @X±®Kàð`ç0’’A©2ã?Â’§¤1à*\Ü& Ï×ò•Es”òœ³e»`Ž-Ä_ø£½—†›}t`òC;]t:ü#?=*rež‡¾ZNžÿµ×Þ ÞÏ-aæ:-ƒ;ž""·È¶ êÝ'(ž¶b—PÝò$&¦‰É&ŸydÌG­<‡#{BŸí’Tdõ/úYýþª·Áè`þÜ(JæsmjžãdàѦÞ#¶«âÝ]¹CÑdH€ Aþ–/“6óN#å
endobj
-950 0 obj <<
+954 0 obj <<
/Type /Font
/Subtype /Type1
-/Encoding 2807 0 R
+/Encoding 2824 0 R
/FirstChar 2
/LastChar 151
-/Widths 2824 0 R
-/BaseFont /JOBNRY+URWPalladioL-Bold
-/FontDescriptor 948 0 R
+/Widths 2841 0 R
+/BaseFont /SMOMGB+URWPalladioL-Bold
+/FontDescriptor 952 0 R
>> endobj
-948 0 obj <<
+952 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /JOBNRY+URWPalladioL-Bold
+/FontName /SMOMGB+URWPalladioL-Bold
/ItalicAngle 0
/StemV 123
/XHeight 471
/FontBBox [-152 -301 1000 935]
/Flags 4
/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/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 949 0 R
+/FontFile 953 0 R
>> endobj
-2824 0 obj
+2841 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 500 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 606 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
-951 0 obj <<
+955 0 obj <<
/Type /Pages
/Count 6
-/Parent 2825 0 R
-/Kids [942 0 R 968 0 R 978 0 R 1033 0 R 1097 0 R 1160 0 R]
+/Parent 2842 0 R
+/Kids [946 0 R 972 0 R 982 0 R 1037 0 R 1101 0 R 1164 0 R]
>> endobj
-1241 0 obj <<
+1246 0 obj <<
/Type /Pages
/Count 6
-/Parent 2825 0 R
-/Kids [1222 0 R 1243 0 R 1255 0 R 1268 0 R 1279 0 R 1286 0 R]
+/Parent 2842 0 R
+/Kids [1226 0 R 1248 0 R 1260 0 R 1273 0 R 1284 0 R 1291 0 R]
>> endobj
-1302 0 obj <<
+1307 0 obj <<
/Type /Pages
/Count 6
-/Parent 2825 0 R
-/Kids [1298 0 R 1304 0 R 1312 0 R 1321 0 R 1331 0 R 1344 0 R]
+/Parent 2842 0 R
+/Kids [1303 0 R 1309 0 R 1317 0 R 1326 0 R 1336 0 R 1344 0 R]
>> endobj
1354 0 obj <<
/Type /Pages
/Count 6
-/Parent 2825 0 R
-/Kids [1348 0 R 1356 0 R 1362 0 R 1370 0 R 1391 0 R 1401 0 R]
+/Parent 2842 0 R
+/Kids [1351 0 R 1357 0 R 1379 0 R 1392 0 R 1398 0 R 1402 0 R]
>> endobj
-1410 0 obj <<
+1415 0 obj <<
/Type /Pages
/Count 6
-/Parent 2825 0 R
-/Kids [1407 0 R 1412 0 R 1417 0 R 1426 0 R 1435 0 R 1442 0 R]
+/Parent 2842 0 R
+/Kids [1407 0 R 1417 0 R 1426 0 R 1433 0 R 1439 0 R 1443 0 R]
>> endobj
-1451 0 obj <<
+1462 0 obj <<
/Type /Pages
/Count 6
-/Parent 2825 0 R
-/Kids [1448 0 R 1453 0 R 1463 0 R 1472 0 R 1480 0 R 1490 0 R]
+/Parent 2842 0 R
+/Kids [1453 0 R 1466 0 R 1474 0 R 1484 0 R 1493 0 R 1499 0 R]
>> endobj
-1504 0 obj <<
+1509 0 obj <<
/Type /Pages
/Count 6
-/Parent 2826 0 R
-/Kids [1499 0 R 1506 0 R 1512 0 R 1517 0 R 1526 0 R 1532 0 R]
+/Parent 2843 0 R
+/Kids [1505 0 R 1511 0 R 1520 0 R 1526 0 R 1532 0 R 1541 0 R]
>> endobj
-1545 0 obj <<
+1551 0 obj <<
/Type /Pages
/Count 6
-/Parent 2826 0 R
-/Kids [1538 0 R 1548 0 R 1555 0 R 1559 0 R 1569 0 R 1573 0 R]
+/Parent 2843 0 R
+/Kids [1548 0 R 1553 0 R 1563 0 R 1567 0 R 1574 0 R 1583 0 R]
>> endobj
-1588 0 obj <<
+1597 0 obj <<
/Type /Pages
/Count 6
-/Parent 2826 0 R
-/Kids [1580 0 R 1590 0 R 1598 0 R 1606 0 R 1618 0 R 1624 0 R]
+/Parent 2843 0 R
+/Kids [1591 0 R 1600 0 R 1612 0 R 1618 0 R 1624 0 R 1630 0 R]
>> endobj
-1635 0 obj <<
+1638 0 obj <<
/Type /Pages
/Count 6
-/Parent 2826 0 R
-/Kids [1630 0 R 1637 0 R 1641 0 R 1648 0 R 1653 0 R 1663 0 R]
+/Parent 2843 0 R
+/Kids [1634 0 R 1640 0 R 1646 0 R 1657 0 R 1661 0 R 1665 0 R]
>> endobj
-1670 0 obj <<
+1673 0 obj <<
/Type /Pages
/Count 6
-/Parent 2826 0 R
-/Kids [1667 0 R 1672 0 R 1676 0 R 1680 0 R 1684 0 R 1691 0 R]
+/Parent 2843 0 R
+/Kids [1669 0 R 1675 0 R 1679 0 R 1685 0 R 1690 0 R 1695 0 R]
>> endobj
-1701 0 obj <<
+1706 0 obj <<
/Type /Pages
/Count 6
-/Parent 2826 0 R
-/Kids [1696 0 R 1703 0 R 1709 0 R 1714 0 R 1723 0 R 1727 0 R]
+/Parent 2843 0 R
+/Kids [1701 0 R 1708 0 R 1718 0 R 1722 0 R 1726 0 R 1730 0 R]
>> endobj
-1737 0 obj <<
+1745 0 obj <<
/Type /Pages
/Count 6
-/Parent 2827 0 R
-/Kids [1731 0 R 1739 0 R 1748 0 R 1755 0 R 1761 0 R 1765 0 R]
+/Parent 2844 0 R
+/Kids [1740 0 R 1747 0 R 1755 0 R 1760 0 R 1764 0 R 1768 0 R]
>> endobj
-1772 0 obj <<
+1781 0 obj <<
/Type /Pages
/Count 6
-/Parent 2827 0 R
-/Kids [1769 0 R 1774 0 R 1782 0 R 1788 0 R 1794 0 R 1801 0 R]
+/Parent 2844 0 R
+/Kids [1774 0 R 1783 0 R 1788 0 R 1796 0 R 1801 0 R 1808 0 R]
>> endobj
-1813 0 obj <<
+1818 0 obj <<
/Type /Pages
/Count 6
-/Parent 2827 0 R
-/Kids [1808 0 R 1815 0 R 1821 0 R 1829 0 R 1833 0 R 1837 0 R]
+/Parent 2844 0 R
+/Kids [1813 0 R 1821 0 R 1828 0 R 1832 0 R 1836 0 R 1840 0 R]
>> endobj
-1845 0 obj <<
+1850 0 obj <<
/Type /Pages
/Count 6
-/Parent 2827 0 R
-/Kids [1841 0 R 1847 0 R 1853 0 R 1857 0 R 1861 0 R 1866 0 R]
+/Parent 2844 0 R
+/Kids [1846 0 R 1852 0 R 1856 0 R 1861 0 R 1865 0 R 1870 0 R]
>> endobj
-1885 0 obj <<
+1886 0 obj <<
/Type /Pages
/Count 6
-/Parent 2827 0 R
-/Kids [1873 0 R 1887 0 R 1892 0 R 1897 0 R 1901 0 R 1905 0 R]
+/Parent 2844 0 R
+/Kids [1875 0 R 1888 0 R 1896 0 R 1901 0 R 1905 0 R 1909 0 R]
>> endobj
1916 0 obj <<
/Type /Pages
/Count 6
-/Parent 2827 0 R
-/Kids [1909 0 R 1918 0 R 1922 0 R 1926 0 R 1937 0 R 1955 0 R]
+/Parent 2844 0 R
+/Kids [1913 0 R 1918 0 R 1926 0 R 1930 0 R 1941 0 R 1959 0 R]
>> endobj
-1984 0 obj <<
+1988 0 obj <<
/Type /Pages
/Count 6
-/Parent 2828 0 R
-/Kids [1969 0 R 1986 0 R 1997 0 R 2003 0 R 2007 0 R 2017 0 R]
+/Parent 2845 0 R
+/Kids [1973 0 R 1990 0 R 2001 0 R 2007 0 R 2011 0 R 2021 0 R]
>> endobj
-2028 0 obj <<
+2032 0 obj <<
/Type /Pages
/Count 6
-/Parent 2828 0 R
-/Kids [2023 0 R 2030 0 R 2040 0 R 2052 0 R 2060 0 R 2068 0 R]
+/Parent 2845 0 R
+/Kids [2027 0 R 2034 0 R 2044 0 R 2056 0 R 2064 0 R 2072 0 R]
>> endobj
-2079 0 obj <<
+2083 0 obj <<
/Type /Pages
/Count 6
-/Parent 2828 0 R
-/Kids [2072 0 R 2081 0 R 2089 0 R 2101 0 R 2108 0 R 2116 0 R]
+/Parent 2845 0 R
+/Kids [2076 0 R 2085 0 R 2093 0 R 2105 0 R 2112 0 R 2120 0 R]
>> endobj
-2131 0 obj <<
+2135 0 obj <<
/Type /Pages
/Count 6
-/Parent 2828 0 R
-/Kids [2122 0 R 2133 0 R 2137 0 R 2141 0 R 2152 0 R 2156 0 R]
+/Parent 2845 0 R
+/Kids [2126 0 R 2137 0 R 2141 0 R 2145 0 R 2156 0 R 2160 0 R]
>> endobj
-2172 0 obj <<
+2176 0 obj <<
/Type /Pages
/Count 6
-/Parent 2828 0 R
-/Kids [2163 0 R 2174 0 R 2233 0 R 2289 0 R 2343 0 R 2378 0 R]
+/Parent 2845 0 R
+/Kids [2167 0 R 2178 0 R 2237 0 R 2293 0 R 2347 0 R 2382 0 R]
>> endobj
-2393 0 obj <<
+2397 0 obj <<
/Type /Pages
/Count 6
-/Parent 2828 0 R
-/Kids [2386 0 R 2395 0 R 2402 0 R 2407 0 R 2413 0 R 2417 0 R]
+/Parent 2845 0 R
+/Kids [2390 0 R 2399 0 R 2406 0 R 2411 0 R 2417 0 R 2421 0 R]
>> endobj
-2431 0 obj <<
+2435 0 obj <<
/Type /Pages
/Count 6
-/Parent 2829 0 R
-/Kids [2426 0 R 2433 0 R 2438 0 R 2442 0 R 2446 0 R 2455 0 R]
+/Parent 2846 0 R
+/Kids [2430 0 R 2437 0 R 2442 0 R 2446 0 R 2450 0 R 2459 0 R]
>> endobj
-2473 0 obj <<
+2477 0 obj <<
/Type /Pages
/Count 6
-/Parent 2829 0 R
-/Kids [2463 0 R 2475 0 R 2486 0 R 2493 0 R 2502 0 R 2514 0 R]
+/Parent 2846 0 R
+/Kids [2467 0 R 2479 0 R 2490 0 R 2497 0 R 2506 0 R 2518 0 R]
>> endobj
-2525 0 obj <<
+2529 0 obj <<
/Type /Pages
/Count 6
-/Parent 2829 0 R
-/Kids [2520 0 R 2527 0 R 2537 0 R 2541 0 R 2546 0 R 2552 0 R]
+/Parent 2846 0 R
+/Kids [2524 0 R 2531 0 R 2541 0 R 2545 0 R 2550 0 R 2556 0 R]
>> endobj
-2572 0 obj <<
+2576 0 obj <<
/Type /Pages
/Count 6
-/Parent 2829 0 R
-/Kids [2563 0 R 2574 0 R 2580 0 R 2591 0 R 2595 0 R 2599 0 R]
+/Parent 2846 0 R
+/Kids [2567 0 R 2578 0 R 2584 0 R 2595 0 R 2599 0 R 2603 0 R]
>> endobj
-2609 0 obj <<
+2612 0 obj <<
/Type /Pages
/Count 6
-/Parent 2829 0 R
-/Kids [2603 0 R 2611 0 R 2621 0 R 2632 0 R 2643 0 R 2647 0 R]
+/Parent 2846 0 R
+/Kids [2607 0 R 2614 0 R 2624 0 R 2635 0 R 2647 0 R 2651 0 R]
>> endobj
-2662 0 obj <<
+2666 0 obj <<
/Type /Pages
/Count 6
-/Parent 2829 0 R
-/Kids [2657 0 R 2664 0 R 2668 0 R 2679 0 R 2691 0 R 2695 0 R]
+/Parent 2846 0 R
+/Kids [2658 0 R 2668 0 R 2672 0 R 2679 0 R 2693 0 R 2699 0 R]
>> endobj
-2704 0 obj <<
+2708 0 obj <<
/Type /Pages
/Count 6
-/Parent 2830 0 R
-/Kids [2700 0 R 2706 0 R 2717 0 R 2727 0 R 2734 0 R 2741 0 R]
+/Parent 2847 0 R
+/Kids [2704 0 R 2710 0 R 2718 0 R 2726 0 R 2730 0 R 2734 0 R]
>> endobj
-2760 0 obj <<
+2748 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 2847 0 R
+/Kids [2740 0 R 2750 0 R 2756 0 R 2767 0 R 2777 0 R 2785 0 R]
+>> endobj
+2812 0 obj <<
/Type /Pages
-/Count 5
-/Parent 2830 0 R
-/Kids [2750 0 R 2762 0 R 2771 0 R 2785 0 R 2799 0 R]
+/Count 2
+/Parent 2847 0 R
+/Kids [2800 0 R 2814 0 R]
>> endobj
-2825 0 obj <<
+2842 0 obj <<
/Type /Pages
/Count 36
-/Parent 2831 0 R
-/Kids [951 0 R 1241 0 R 1302 0 R 1354 0 R 1410 0 R 1451 0 R]
+/Parent 2848 0 R
+/Kids [955 0 R 1246 0 R 1307 0 R 1354 0 R 1415 0 R 1462 0 R]
>> endobj
-2826 0 obj <<
+2843 0 obj <<
/Type /Pages
/Count 36
-/Parent 2831 0 R
-/Kids [1504 0 R 1545 0 R 1588 0 R 1635 0 R 1670 0 R 1701 0 R]
+/Parent 2848 0 R
+/Kids [1509 0 R 1551 0 R 1597 0 R 1638 0 R 1673 0 R 1706 0 R]
>> endobj
-2827 0 obj <<
+2844 0 obj <<
/Type /Pages
/Count 36
-/Parent 2831 0 R
-/Kids [1737 0 R 1772 0 R 1813 0 R 1845 0 R 1885 0 R 1916 0 R]
+/Parent 2848 0 R
+/Kids [1745 0 R 1781 0 R 1818 0 R 1850 0 R 1886 0 R 1916 0 R]
>> endobj
-2828 0 obj <<
+2845 0 obj <<
/Type /Pages
/Count 36
-/Parent 2831 0 R
-/Kids [1984 0 R 2028 0 R 2079 0 R 2131 0 R 2172 0 R 2393 0 R]
+/Parent 2848 0 R
+/Kids [1988 0 R 2032 0 R 2083 0 R 2135 0 R 2176 0 R 2397 0 R]
>> endobj
-2829 0 obj <<
+2846 0 obj <<
/Type /Pages
/Count 36
-/Parent 2831 0 R
-/Kids [2431 0 R 2473 0 R 2525 0 R 2572 0 R 2609 0 R 2662 0 R]
+/Parent 2848 0 R
+/Kids [2435 0 R 2477 0 R 2529 0 R 2576 0 R 2612 0 R 2666 0 R]
>> endobj
-2830 0 obj <<
+2847 0 obj <<
/Type /Pages
-/Count 11
-/Parent 2831 0 R
-/Kids [2704 0 R 2760 0 R]
+/Count 14
+/Parent 2848 0 R
+/Kids [2708 0 R 2748 0 R 2812 0 R]
>> endobj
-2831 0 obj <<
+2848 0 obj <<
/Type /Pages
-/Count 191
-/Kids [2825 0 R 2826 0 R 2827 0 R 2828 0 R 2829 0 R 2830 0 R]
+/Count 194
+/Kids [2842 0 R 2843 0 R 2844 0 R 2845 0 R 2846 0 R 2847 0 R]
>> endobj
-2832 0 obj <<
+2849 0 obj <<
/Type /Outlines
/First 7 0 R
-/Last 843 0 R
+/Last 847 0 R
/Count 10
>> endobj
+943 0 obj <<
+/Title 944 0 R
+/A 941 0 R
+/Parent 847 0 R
+/Prev 939 0 R
+>> endobj
939 0 obj <<
/Title 940 0 R
/A 937 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 935 0 R
+/Next 943 0 R
>> endobj
935 0 obj <<
/Title 936 0 R
/A 933 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 931 0 R
/Next 939 0 R
>> endobj
931 0 obj <<
/Title 932 0 R
/A 929 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 927 0 R
/Next 935 0 R
>> endobj
927 0 obj <<
/Title 928 0 R
/A 925 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 923 0 R
/Next 931 0 R
>> endobj
923 0 obj <<
/Title 924 0 R
/A 921 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 919 0 R
/Next 927 0 R
>> endobj
919 0 obj <<
/Title 920 0 R
/A 917 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 915 0 R
/Next 923 0 R
>> endobj
915 0 obj <<
/Title 916 0 R
/A 913 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 911 0 R
/Next 919 0 R
>> endobj
911 0 obj <<
/Title 912 0 R
/A 909 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 907 0 R
/Next 915 0 R
>> endobj
907 0 obj <<
/Title 908 0 R
/A 905 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 903 0 R
/Next 911 0 R
>> endobj
903 0 obj <<
/Title 904 0 R
/A 901 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 899 0 R
/Next 907 0 R
>> endobj
899 0 obj <<
/Title 900 0 R
/A 897 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 895 0 R
/Next 903 0 R
>> endobj
895 0 obj <<
/Title 896 0 R
/A 893 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 891 0 R
/Next 899 0 R
>> endobj
891 0 obj <<
/Title 892 0 R
/A 889 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 887 0 R
/Next 895 0 R
>> endobj
887 0 obj <<
/Title 888 0 R
/A 885 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 883 0 R
/Next 891 0 R
>> endobj
883 0 obj <<
/Title 884 0 R
/A 881 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 879 0 R
/Next 887 0 R
>> endobj
879 0 obj <<
/Title 880 0 R
/A 877 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 875 0 R
/Next 883 0 R
>> endobj
875 0 obj <<
/Title 876 0 R
/A 873 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 871 0 R
/Next 879 0 R
>> endobj
871 0 obj <<
/Title 872 0 R
/A 869 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 867 0 R
/Next 875 0 R
>> endobj
867 0 obj <<
/Title 868 0 R
/A 865 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 863 0 R
/Next 871 0 R
>> endobj
863 0 obj <<
/Title 864 0 R
/A 861 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 859 0 R
/Next 867 0 R
>> endobj
859 0 obj <<
/Title 860 0 R
/A 857 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 855 0 R
/Next 863 0 R
>> endobj
855 0 obj <<
/Title 856 0 R
/A 853 0 R
-/Parent 843 0 R
+/Parent 847 0 R
/Prev 851 0 R
/Next 859 0 R
>> endobj
851 0 obj <<
/Title 852 0 R
/A 849 0 R
-/Parent 843 0 R
-/Prev 847 0 R
+/Parent 847 0 R
/Next 855 0 R
>> endobj
847 0 obj <<
/Title 848 0 R
/A 845 0 R
-/Parent 843 0 R
-/Next 851 0 R
+/Parent 2849 0 R
+/Prev 755 0 R
+/First 851 0 R
+/Last 943 0 R
+/Count -24
>> endobj
843 0 obj <<
/Title 844 0 R
/A 841 0 R
-/Parent 2832 0 R
-/Prev 751 0 R
-/First 847 0 R
-/Last 939 0 R
-/Count -24
+/Parent 791 0 R
+/Prev 815 0 R
>> endobj
839 0 obj <<
/Title 840 0 R
/A 837 0 R
-/Parent 787 0 R
-/Prev 811 0 R
+/Parent 815 0 R
+/Prev 835 0 R
>> endobj
835 0 obj <<
/Title 836 0 R
/A 833 0 R
-/Parent 811 0 R
+/Parent 815 0 R
/Prev 831 0 R
+/Next 839 0 R
>> endobj
831 0 obj <<
/Title 832 0 R
/A 829 0 R
-/Parent 811 0 R
+/Parent 815 0 R
/Prev 827 0 R
/Next 835 0 R
>> endobj
827 0 obj <<
/Title 828 0 R
/A 825 0 R
-/Parent 811 0 R
+/Parent 815 0 R
/Prev 823 0 R
/Next 831 0 R
>> endobj
823 0 obj <<
/Title 824 0 R
/A 821 0 R
-/Parent 811 0 R
+/Parent 815 0 R
/Prev 819 0 R
/Next 827 0 R
>> endobj
819 0 obj <<
/Title 820 0 R
/A 817 0 R
-/Parent 811 0 R
-/Prev 815 0 R
+/Parent 815 0 R
/Next 823 0 R
>> endobj
815 0 obj <<
/Title 816 0 R
/A 813 0 R
-/Parent 811 0 R
-/Next 819 0 R
+/Parent 791 0 R
+/Prev 811 0 R
+/Next 843 0 R
+/First 819 0 R
+/Last 839 0 R
+/Count -6
>> endobj
811 0 obj <<
/Title 812 0 R
/A 809 0 R
-/Parent 787 0 R
+/Parent 791 0 R
/Prev 807 0 R
-/Next 839 0 R
-/First 815 0 R
-/Last 835 0 R
-/Count -6
+/Next 815 0 R
>> endobj
807 0 obj <<
/Title 808 0 R
/A 805 0 R
-/Parent 787 0 R
+/Parent 791 0 R
/Prev 803 0 R
/Next 811 0 R
>> endobj
803 0 obj <<
/Title 804 0 R
/A 801 0 R
-/Parent 787 0 R
+/Parent 791 0 R
/Prev 799 0 R
/Next 807 0 R
>> endobj
799 0 obj <<
/Title 800 0 R
/A 797 0 R
-/Parent 787 0 R
+/Parent 791 0 R
/Prev 795 0 R
/Next 803 0 R
>> endobj
795 0 obj <<
/Title 796 0 R
/A 793 0 R
-/Parent 787 0 R
-/Prev 791 0 R
+/Parent 791 0 R
/Next 799 0 R
>> endobj
791 0 obj <<
/Title 792 0 R
/A 789 0 R
-/Parent 787 0 R
-/Next 795 0 R
+/Parent 755 0 R
+/Prev 775 0 R
+/First 795 0 R
+/Last 843 0 R
+/Count -7
>> endobj
787 0 obj <<
/Title 788 0 R
/A 785 0 R
-/Parent 751 0 R
-/Prev 771 0 R
-/First 791 0 R
-/Last 839 0 R
-/Count -7
+/Parent 775 0 R
+/Prev 783 0 R
>> endobj
783 0 obj <<
/Title 784 0 R
/A 781 0 R
-/Parent 771 0 R
+/Parent 775 0 R
/Prev 779 0 R
+/Next 787 0 R
>> endobj
779 0 obj <<
/Title 780 0 R
/A 777 0 R
-/Parent 771 0 R
-/Prev 775 0 R
+/Parent 775 0 R
/Next 783 0 R
>> endobj
775 0 obj <<
/Title 776 0 R
/A 773 0 R
-/Parent 771 0 R
-/Next 779 0 R
+/Parent 755 0 R
+/Prev 767 0 R
+/Next 791 0 R
+/First 779 0 R
+/Last 787 0 R
+/Count -3
>> endobj
771 0 obj <<
/Title 772 0 R
/A 769 0 R
-/Parent 751 0 R
-/Prev 763 0 R
-/Next 787 0 R
-/First 775 0 R
-/Last 783 0 R
-/Count -3
+/Parent 767 0 R
>> endobj
767 0 obj <<
/Title 768 0 R
/A 765 0 R
-/Parent 763 0 R
+/Parent 755 0 R
+/Prev 759 0 R
+/Next 775 0 R
+/First 771 0 R
+/Last 771 0 R
+/Count -1
>> endobj
763 0 obj <<
/Title 764 0 R
/A 761 0 R
-/Parent 751 0 R
-/Prev 755 0 R
-/Next 771 0 R
-/First 767 0 R
-/Last 767 0 R
-/Count -1
+/Parent 759 0 R
>> endobj
759 0 obj <<
/Title 760 0 R
/A 757 0 R
/Parent 755 0 R
+/Next 767 0 R
+/First 763 0 R
+/Last 763 0 R
+/Count -1
>> endobj
755 0 obj <<
/Title 756 0 R
/A 753 0 R
-/Parent 751 0 R
-/Next 763 0 R
+/Parent 2849 0 R
+/Prev 735 0 R
+/Next 847 0 R
/First 759 0 R
-/Last 759 0 R
-/Count -1
+/Last 791 0 R
+/Count -4
>> endobj
751 0 obj <<
/Title 752 0 R
/A 749 0 R
-/Parent 2832 0 R
-/Prev 731 0 R
-/Next 843 0 R
-/First 755 0 R
-/Last 787 0 R
-/Count -4
+/Parent 735 0 R
+/Prev 747 0 R
>> endobj
747 0 obj <<
/Title 748 0 R
/A 745 0 R
-/Parent 731 0 R
-/Prev 743 0 R
+/Parent 735 0 R
+/Prev 739 0 R
+/Next 751 0 R
>> endobj
743 0 obj <<
/Title 744 0 R
/A 741 0 R
-/Parent 731 0 R
-/Prev 735 0 R
-/Next 747 0 R
+/Parent 739 0 R
>> endobj
739 0 obj <<
/Title 740 0 R
/A 737 0 R
/Parent 735 0 R
+/Next 747 0 R
+/First 743 0 R
+/Last 743 0 R
+/Count -1
>> endobj
735 0 obj <<
/Title 736 0 R
/A 733 0 R
-/Parent 731 0 R
-/Next 743 0 R
+/Parent 2849 0 R
+/Prev 711 0 R
+/Next 755 0 R
/First 739 0 R
-/Last 739 0 R
-/Count -1
+/Last 751 0 R
+/Count -3
>> endobj
731 0 obj <<
/Title 732 0 R
/A 729 0 R
-/Parent 2832 0 R
-/Prev 707 0 R
-/Next 751 0 R
-/First 735 0 R
-/Last 747 0 R
-/Count -3
+/Parent 711 0 R
+/Prev 719 0 R
>> endobj
727 0 obj <<
/Title 728 0 R
/A 725 0 R
-/Parent 707 0 R
-/Prev 715 0 R
+/Parent 719 0 R
+/Prev 723 0 R
>> endobj
723 0 obj <<
/Title 724 0 R
/A 721 0 R
-/Parent 715 0 R
-/Prev 719 0 R
+/Parent 719 0 R
+/Next 727 0 R
>> endobj
719 0 obj <<
/Title 720 0 R
/A 717 0 R
-/Parent 715 0 R
-/Next 723 0 R
+/Parent 711 0 R
+/Prev 715 0 R
+/Next 731 0 R
+/First 723 0 R
+/Last 727 0 R
+/Count -2
>> endobj
715 0 obj <<
/Title 716 0 R
/A 713 0 R
-/Parent 707 0 R
-/Prev 711 0 R
-/Next 727 0 R
-/First 719 0 R
-/Last 723 0 R
-/Count -2
+/Parent 711 0 R
+/Next 719 0 R
>> endobj
711 0 obj <<
/Title 712 0 R
/A 709 0 R
-/Parent 707 0 R
-/Next 715 0 R
+/Parent 2849 0 R
+/Prev 363 0 R
+/Next 735 0 R
+/First 715 0 R
+/Last 731 0 R
+/Count -3
>> endobj
707 0 obj <<
/Title 708 0 R
/A 705 0 R
-/Parent 2832 0 R
-/Prev 363 0 R
-/Next 731 0 R
-/First 711 0 R
-/Last 727 0 R
-/Count -3
+/Parent 687 0 R
+/Prev 703 0 R
>> endobj
703 0 obj <<
/Title 704 0 R
/A 701 0 R
-/Parent 683 0 R
+/Parent 687 0 R
/Prev 699 0 R
+/Next 707 0 R
>> endobj
699 0 obj <<
/Title 700 0 R
/A 697 0 R
-/Parent 683 0 R
+/Parent 687 0 R
/Prev 695 0 R
/Next 703 0 R
>> endobj
695 0 obj <<
/Title 696 0 R
/A 693 0 R
-/Parent 683 0 R
+/Parent 687 0 R
/Prev 691 0 R
/Next 699 0 R
>> endobj
691 0 obj <<
/Title 692 0 R
/A 689 0 R
-/Parent 683 0 R
-/Prev 687 0 R
+/Parent 687 0 R
/Next 695 0 R
>> endobj
687 0 obj <<
/Title 688 0 R
/A 685 0 R
-/Parent 683 0 R
-/Next 691 0 R
+/Parent 679 0 R
+/Prev 683 0 R
+/First 691 0 R
+/Last 707 0 R
+/Count -5
>> endobj
683 0 obj <<
/Title 684 0 R
/A 681 0 R
-/Parent 675 0 R
-/Prev 679 0 R
-/First 687 0 R
-/Last 703 0 R
-/Count -5
+/Parent 679 0 R
+/Next 687 0 R
>> endobj
679 0 obj <<
/Title 680 0 R
/A 677 0 R
-/Parent 675 0 R
-/Next 683 0 R
+/Parent 363 0 R
+/Prev 623 0 R
+/First 683 0 R
+/Last 687 0 R
+/Count -2
>> endobj
675 0 obj <<
/Title 676 0 R
/A 673 0 R
-/Parent 363 0 R
-/Prev 619 0 R
-/First 679 0 R
-/Last 683 0 R
-/Count -2
+/Parent 623 0 R
+/Prev 671 0 R
>> endobj
671 0 obj <<
/Title 672 0 R
/A 669 0 R
-/Parent 619 0 R
-/Prev 667 0 R
+/Parent 623 0 R
+/Prev 651 0 R
+/Next 675 0 R
>> endobj
667 0 obj <<
/Title 668 0 R
/A 665 0 R
-/Parent 619 0 R
-/Prev 647 0 R
-/Next 671 0 R
+/Parent 651 0 R
+/Prev 663 0 R
>> endobj
663 0 obj <<
/Title 664 0 R
/A 661 0 R
-/Parent 647 0 R
+/Parent 651 0 R
/Prev 659 0 R
+/Next 667 0 R
>> endobj
659 0 obj <<
/Title 660 0 R
/A 657 0 R
-/Parent 647 0 R
+/Parent 651 0 R
/Prev 655 0 R
/Next 663 0 R
>> endobj
655 0 obj <<
/Title 656 0 R
/A 653 0 R
-/Parent 647 0 R
-/Prev 651 0 R
+/Parent 651 0 R
/Next 659 0 R
>> endobj
651 0 obj <<
/Title 652 0 R
/A 649 0 R
-/Parent 647 0 R
-/Next 655 0 R
+/Parent 623 0 R
+/Prev 647 0 R
+/Next 671 0 R
+/First 655 0 R
+/Last 667 0 R
+/Count -4
>> endobj
647 0 obj <<
/Title 648 0 R
/A 645 0 R
-/Parent 619 0 R
+/Parent 623 0 R
/Prev 643 0 R
-/Next 667 0 R
-/First 651 0 R
-/Last 663 0 R
-/Count -4
+/Next 651 0 R
>> endobj
643 0 obj <<
/Title 644 0 R
/A 641 0 R
-/Parent 619 0 R
+/Parent 623 0 R
/Prev 639 0 R
/Next 647 0 R
>> endobj
639 0 obj <<
/Title 640 0 R
/A 637 0 R
-/Parent 619 0 R
-/Prev 635 0 R
+/Parent 623 0 R
+/Prev 627 0 R
/Next 643 0 R
>> endobj
635 0 obj <<
/Title 636 0 R
/A 633 0 R
-/Parent 619 0 R
-/Prev 623 0 R
-/Next 639 0 R
+/Parent 627 0 R
+/Prev 631 0 R
>> endobj
631 0 obj <<
/Title 632 0 R
/A 629 0 R
-/Parent 623 0 R
-/Prev 627 0 R
+/Parent 627 0 R
+/Next 635 0 R
>> endobj
627 0 obj <<
/Title 628 0 R
/A 625 0 R
/Parent 623 0 R
-/Next 631 0 R
+/Next 639 0 R
+/First 631 0 R
+/Last 635 0 R
+/Count -2
>> endobj
623 0 obj <<
/Title 624 0 R
/A 621 0 R
-/Parent 619 0 R
-/Next 635 0 R
+/Parent 363 0 R
+/Prev 395 0 R
+/Next 679 0 R
/First 627 0 R
-/Last 631 0 R
-/Count -2
+/Last 675 0 R
+/Count -7
>> endobj
619 0 obj <<
/Title 620 0 R
/A 617 0 R
-/Parent 363 0 R
-/Prev 395 0 R
-/Next 675 0 R
-/First 623 0 R
-/Last 671 0 R
-/Count -7
+/Parent 603 0 R
+/Prev 615 0 R
>> endobj
615 0 obj <<
/Title 616 0 R
/A 613 0 R
-/Parent 599 0 R
+/Parent 603 0 R
/Prev 611 0 R
+/Next 619 0 R
>> endobj
611 0 obj <<
/Title 612 0 R
/A 609 0 R
-/Parent 599 0 R
+/Parent 603 0 R
/Prev 607 0 R
/Next 615 0 R
>> endobj
607 0 obj <<
/Title 608 0 R
/A 605 0 R
-/Parent 599 0 R
-/Prev 603 0 R
+/Parent 603 0 R
/Next 611 0 R
>> endobj
603 0 obj <<
/Title 604 0 R
/A 601 0 R
-/Parent 599 0 R
-/Next 607 0 R
+/Parent 395 0 R
+/Prev 599 0 R
+/First 607 0 R
+/Last 619 0 R
+/Count -4
>> endobj
599 0 obj <<
/Title 600 0 R
/A 597 0 R
/Parent 395 0 R
/Prev 595 0 R
-/First 603 0 R
-/Last 615 0 R
-/Count -4
+/Next 603 0 R
>> endobj
595 0 obj <<
/Title 596 0 R
@@ -15831,21 +15841,21 @@ endobj
/Title 560 0 R
/A 557 0 R
/Parent 395 0 R
-/Prev 555 0 R
+/Prev 471 0 R
/Next 563 0 R
>> endobj
555 0 obj <<
/Title 556 0 R
/A 553 0 R
-/Parent 395 0 R
-/Prev 471 0 R
-/Next 559 0 R
+/Parent 471 0 R
+/Prev 551 0 R
>> endobj
551 0 obj <<
/Title 552 0 R
/A 549 0 R
/Parent 471 0 R
/Prev 547 0 R
+/Next 555 0 R
>> endobj
547 0 obj <<
/Title 548 0 R
@@ -15984,10 +15994,10 @@ endobj
/A 469 0 R
/Parent 395 0 R
/Prev 467 0 R
-/Next 555 0 R
+/Next 559 0 R
/First 475 0 R
-/Last 551 0 R
-/Count -20
+/Last 555 0 R
+/Count -21
>> endobj
467 0 obj <<
/Title 468 0 R
@@ -16120,9 +16130,9 @@ endobj
/A 393 0 R
/Parent 363 0 R
/Prev 367 0 R
-/Next 619 0 R
+/Next 623 0 R
/First 399 0 R
-/Last 599 0 R
+/Last 603 0 R
/Count -28
>> endobj
391 0 obj <<
@@ -16179,11 +16189,11 @@ endobj
363 0 obj <<
/Title 364 0 R
/A 361 0 R
-/Parent 2832 0 R
+/Parent 2849 0 R
/Prev 351 0 R
-/Next 707 0 R
+/Next 711 0 R
/First 367 0 R
-/Last 675 0 R
+/Last 679 0 R
/Count -4
>> endobj
359 0 obj <<
@@ -16201,7 +16211,7 @@ endobj
351 0 obj <<
/Title 352 0 R
/A 349 0 R
-/Parent 2832 0 R
+/Parent 2849 0 R
/Prev 131 0 R
/Next 363 0 R
/First 355 0 R
@@ -16598,7 +16608,7 @@ endobj
131 0 obj <<
/Title 132 0 R
/A 129 0 R
-/Parent 2832 0 R
+/Parent 2849 0 R
/Prev 91 0 R
/Next 351 0 R
/First 135 0 R
@@ -16672,7 +16682,7 @@ endobj
91 0 obj <<
/Title 92 0 R
/A 89 0 R
-/Parent 2832 0 R
+/Parent 2849 0 R
/Prev 67 0 R
/Next 131 0 R
/First 95 0 R
@@ -16715,7 +16725,7 @@ endobj
67 0 obj <<
/Title 68 0 R
/A 65 0 R
-/Parent 2832 0 R
+/Parent 2849 0 R
/Prev 7 0 R
/Next 91 0 R
/First 71 0 R
@@ -16824,2882 +16834,2899 @@ endobj
7 0 obj <<
/Title 8 0 R
/A 5 0 R
-/Parent 2832 0 R
+/Parent 2849 0 R
/Next 67 0 R
/First 11 0 R
/Last 23 0 R
/Count -4
>> endobj
-2833 0 obj <<
-/Names [(Access_Control_Lists) 2120 0 R (Bv9ARM.ch01) 1245 0 R (Bv9ARM.ch02) 1289 0 R (Bv9ARM.ch03) 1307 0 R (Bv9ARM.ch04) 1373 0 R (Bv9ARM.ch05) 1551 0 R (Bv9ARM.ch06) 1562 0 R (Bv9ARM.ch07) 2119 0 R (Bv9ARM.ch08) 2144 0 R (Bv9ARM.ch09) 2159 0 R (Bv9ARM.ch10) 2420 0 R (Configuration_File_Grammar) 1585 0 R (DNSSEC) 1439 0 R (Doc-Start) 947 0 R (Setting_TTLs) 2045 0 R (acache) 1296 0 R (access_control) 1744 0 R (acl) 1594 0 R (address_match_lists) 1567 0 R (admin_tools) 1329 0 R (appendix.A) 750 0 R (appendix.B) 842 0 R (bibliography) 2167 0 R (bind9.library) 2376 0 R (boolean_options) 1388 0 R (builtin) 1824 0 R (chapter*.1) 981 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 350 0 R (chapter.6) 362 0 R (chapter.7) 706 0 R (chapter.8) 730 0 R (cite.RFC1033) 2295 0 R (cite.RFC1034) 2180 0 R (cite.RFC1035) 2182 0 R (cite.RFC1101) 2277 0 R (cite.RFC1123) 2279 0 R (cite.RFC1183) 2239 0 R (cite.RFC1464) 2317 0 R (cite.RFC1535) 2225 0 R (cite.RFC1536) 2227 0 R (cite.RFC1537) 2297 0 R (cite.RFC1591) 2281 0 R (cite.RFC1706) 2241 0 R (cite.RFC1712) 2337 0 R (cite.RFC1713) 2319 0 R (cite.RFC1794) 2321 0 R (cite.RFC1876) 2243 0 R (cite.RFC1912) 2299 0 R (cite.RFC1982) 2229 0 R (cite.RFC1995) 2187 0 R (cite.RFC1996) 2189 0 R (cite.RFC2010) 2301 0 R (cite.RFC2052) 2245 0 R (cite.RFC2065) 2349 0 R (cite.RFC2136) 2191 0 R (cite.RFC2137) 2351 0 R (cite.RFC2163) 2247 0 R (cite.RFC2168) 2249 0 R (cite.RFC2181) 2193 0 R (cite.RFC2219) 2303 0 R (cite.RFC2230) 2251 0 R (cite.RFC2240) 2323 0 R (cite.RFC2308) 2195 0 R (cite.RFC2317) 2283 0 R (cite.RFC2345) 2325 0 R (cite.RFC2352) 2327 0 R (cite.RFC2535) 2353 0 R (cite.RFC2536) 2253 0 R (cite.RFC2537) 2255 0 R (cite.RFC2538) 2257 0 R (cite.RFC2539) 2259 0 R (cite.RFC2540) 2261 0 R (cite.RFC2671) 2197 0 R (cite.RFC2672) 2199 0 R (cite.RFC2673) 2339 0 R (cite.RFC2782) 2263 0 R (cite.RFC2825) 2307 0 R (cite.RFC2826) 2285 0 R (cite.RFC2845) 2201 0 R (cite.RFC2874) 2341 0 R (cite.RFC2915) 2265 0 R (cite.RFC2929) 2287 0 R (cite.RFC2930) 2203 0 R (cite.RFC2931) 2205 0 R (cite.RFC3007) 2207 0 R (cite.RFC3008) 2355 0 R (cite.RFC3071) 2329 0 R (cite.RFC3090) 2357 0 R (cite.RFC3110) 2267 0 R (cite.RFC3123) 2269 0 R (cite.RFC3225) 2213 0 R (cite.RFC3258) 2331 0 R (cite.RFC3445) 2359 0 R (cite.RFC3490) 2309 0 R (cite.RFC3491) 2311 0 R (cite.RFC3492) 2313 0 R (cite.RFC3596) 2271 0 R (cite.RFC3597) 2273 0 R (cite.RFC3645) 2209 0 R (cite.RFC3655) 2361 0 R (cite.RFC3658) 2363 0 R (cite.RFC3755) 2365 0 R (cite.RFC3757) 2367 0 R (cite.RFC3833) 2215 0 R (cite.RFC3845) 2369 0 R (cite.RFC3901) 2333 0 R (cite.RFC4033) 2217 0 R (cite.RFC4034) 2219 0 R (cite.RFC4035) 2221 0 R (cite.RFC4074) 2231 0 R (cite.RFC974) 2184 0 R (cite.id2513817) 2374 0 R (clients-per-query) 2099 0 R (configuration_file_elements) 1563 0 R (controls_statement_definition_and_usage) 1360 0 R (diagnostic_tools) 1277 0 R (dnssec.dynamic.zones) 1459 0 R (dynamic_update) 1383 0 R (dynamic_update_policies) 1342 0 R (dynamic_update_security) 1753 0 R (empty) 1826 0 R (historical_dns_information) 2161 0 R (id2466570) 1246 0 R (id2466594) 1247 0 R (id2467262) 1509 0 R (id2467400) 1510 0 R (id2467484) 1248 0 R (id2467494) 1249 0 R (id2467734) 1259 0 R (id2467755) 1260 0 R (id2467789) 1261 0 R (id2467874) 1264 0 R (id2467966) 1257 0 R (id2470272) 1271 0 R (id2470295) 1274 0 R (id2470393) 1275 0 R (id2470414) 1276 0 R (id2470444) 1282 0 R (id2470480) 1283 0 R (id2470574) 1284 0 R (id2470609) 1290 0 R (id2470635) 1291 0 R (id2470716) 1292 0 R (id2470742) 1295 0 R (id2470753) 1301 0 R (id2470785) 1309 0 R (id2470801) 1310 0 R (id2470823) 1315 0 R (id2470840) 1316 0 R (id2471245) 1324 0 R (id2471251) 1325 0 R (id2473610) 1365 0 R (id2473622) 1366 0 R (id2474049) 1398 0 R (id2474135) 1404 0 R (id2474636) 1420 0 R (id2474653) 1421 0 R (id2474692) 1422 0 R (id2474710) 1423 0 R (id2474721) 1424 0 R (id2474825) 1429 0 R (id2474883) 1430 0 R (id2474932) 1432 0 R (id2474946) 1433 0 R (id2474995) 1438 0 R (id2475200) 1440 0 R (id2475347) 1445 0 R (id2475428) 1446 0 R (id2475581) 1460 0 R (id2475619) 1461 0 R (id2475928) 1466 0 R (id2476100) 1475 0 R (id2476137) 1476 0 R (id2476150) 1477 0 R (id2476251) 1478 0 R (id2476278) 1483 0 R (id2476288) 1484 0 R (id2476297) 1485 0 R (id2476310) 1486 0 R (id2476347) 1487 0 R (id2476357) 1488 0 R (id2476462) 1494 0 R (id2476485) 1496 0 R (id2476724) 1503 0 R (id2477211) 1515 0 R (id2477430) 1520 0 R (id2477438) 1521 0 R (id2477470) 1522 0 R (id2477507) 1523 0 R (id2477555) 1524 0 R (id2477586) 1529 0 R (id2477852) 1535 0 R (id2478035) 1536 0 R (id2478157) 1541 0 R (id2478219) 1543 0 R (id2478241) 1544 0 R (id2478274) 1552 0 R (id2478489) 1564 0 R (id2479520) 1576 0 R (id2479547) 1577 0 R (id2479753) 1578 0 R (id2479768) 1583 0 R (id2479866) 1584 0 R (id2479941) 1586 0 R (id2480345) 1593 0 R (id2480388) 1595 0 R (id2480603) 1601 0 R (id2481031) 1609 0 R (id2481048) 1610 0 R (id2481072) 1611 0 R (id2481163) 1612 0 R (id2481254) 1616 0 R (id2481380) 1621 0 R (id2481500) 1622 0 R (id2482125) 1633 0 R (id2482819) 1644 0 R (id2482949) 1645 0 R (id2483338) 1651 0 R (id2483412) 1656 0 R (id2483544) 1659 0 R (id2483588) 1660 0 R (id2483609) 1661 0 R (id2487332) 1706 0 R (id2489504) 1736 0 R (id2489699) 1743 0 R (id2490123) 1758 0 R (id2491409) 1777 0 R (id2491468) 1779 0 R (id2491959) 1791 0 R (id2492530) 1805 0 R (id2494333) 1844 0 R (id2494459) 1851 0 R (id2495723) 1876 0 R (id2495962) 1883 0 R (id2496077) 1890 0 R (id2496519) 1895 0 R (id2498299) 1912 0 R (id2498307) 1913 0 R (id2498312) 1914 0 R (id2498983) 1930 0 R (id2499016) 1931 0 R (id2501322) 2000 0 R (id2501917) 2010 0 R (id2501936) 2011 0 R (id2501956) 2014 0 R (id2502124) 2020 0 R (id2503363) 2026 0 R (id2503559) 2033 0 R (id2503580) 2034 0 R (id2503875) 2036 0 R (id2504011) 2038 0 R (id2504098) 2043 0 R (id2504502) 2046 0 R (id2504627) 2048 0 R (id2504642) 2049 0 R (id2504754) 2055 0 R (id2504844) 2056 0 R (id2504860) 2057 0 R (id2504989) 2058 0 R (id2505059) 2063 0 R (id2505095) 2064 0 R (id2505307) 2065 0 R (id2505750) 2076 0 R (id2506117) 2085 0 R (id2506122) 2086 0 R (id2507690) 2093 0 R (id2507697) 2094 0 R (id2508073) 2096 0 R (id2508078) 2097 0 R (id2509163) 2104 0 R (id2509195) 2105 0 R (id2509605) 2114 0 R (id2509764) 2128 0 R (id2509913) 2129 0 R (id2509973) 2130 0 R (id2510189) 2145 0 R (id2510195) 2146 0 R (id2510206) 2147 0 R (id2510224) 2148 0 R (id2510490) 2160 0 R (id2510594) 2166 0 R (id2510850) 2171 0 R (id2510852) 2178 0 R (id2510860) 2183 0 R (id2510884) 2179 0 R (id2510907) 2181 0 R (id2510944) 2192 0 R (id2510970) 2194 0 R (id2510996) 2186 0 R (id2511020) 2188 0 R (id2511044) 2190 0 R (id2511099) 2196 0 R (id2511126) 2198 0 R (id2511153) 2200 0 R (id2511214) 2202 0 R (id2511244) 2204 0 R (id2511274) 2206 0 R (id2511301) 2208 0 R (id2511376) 2211 0 R (id2511383) 2212 0 R (id2511410) 2214 0 R (id2511446) 2216 0 R (id2511511) 2218 0 R (id2511576) 2220 0 R (id2511641) 2223 0 R (id2511650) 2224 0 R (id2511675) 2226 0 R (id2511744) 2228 0 R (id2511779) 2230 0 R (id2511819) 2237 0 R (id2511825) 2238 0 R (id2511882) 2240 0 R (id2511920) 2248 0 R (id2511955) 2242 0 R (id2512009) 2244 0 R (id2512048) 2246 0 R (id2512073) 2250 0 R (id2512099) 2252 0 R (id2512125) 2254 0 R (id2512152) 2256 0 R (id2512192) 2258 0 R (id2512221) 2260 0 R (id2512251) 2262 0 R (id2512294) 2264 0 R (id2512327) 2266 0 R (id2512354) 2268 0 R (id2512377) 2270 0 R (id2512435) 2272 0 R (id2512459) 2275 0 R (id2512467) 2276 0 R (id2512492) 2278 0 R (id2512515) 2280 0 R (id2512538) 2282 0 R (id2512652) 2284 0 R (id2512676) 2286 0 R (id2512726) 2293 0 R (id2512733) 2294 0 R (id2512757) 2296 0 R (id2512784) 2298 0 R (id2512810) 2300 0 R (id2512846) 2302 0 R (id2512887) 2305 0 R (id2512892) 2306 0 R (id2512924) 2308 0 R (id2512970) 2310 0 R (id2513005) 2312 0 R (id2513032) 2315 0 R (id2513050) 2316 0 R (id2513073) 2318 0 R (id2513098) 2320 0 R (id2513124) 2322 0 R (id2513147) 2324 0 R (id2513193) 2326 0 R (id2513217) 2328 0 R (id2513243) 2330 0 R (id2513269) 2332 0 R (id2513306) 2335 0 R (id2513313) 2336 0 R (id2513370) 2338 0 R (id2513397) 2340 0 R (id2513433) 2347 0 R (id2513445) 2348 0 R (id2513484) 2350 0 R (id2513511) 2352 0 R (id2513541) 2354 0 R (id2513566) 2356 0 R (id2513593) 2358 0 R (id2513629) 2360 0 R (id2513666) 2362 0 R (id2513692) 2364 0 R (id2513719) 2366 0 R (id2513764) 2368 0 R (id2513805) 2371 0 R (id2513815) 2373 0 R (id2513817) 2375 0 R (id2513973) 2381 0 R (id2513982) 2382 0 R (id2514075) 2383 0 R (id2514106) 2384 0 R (id2514183) 2389 0 R (id2514278) 2391 0 R (id2514286) 2392 0 R (id2514377) 2398 0 R (id2514499) 2399 0 R (id2514631) 2400 0 R (id2514646) 2405 0 R (id2514777) 2410 0 R (id2514841) 2411 0 R (incremental_zone_transfers) 1395 0 R (internet_drafts) 2370 0 R (ipv6addresses) 1546 0 R (journal) 1394 0 R (lwresd) 1553 0 R (man.arpaname) 2768 0 R (man.ddns-confgen) 2756 0 R (man.dig) 2421 0 R (man.dnssec-checkds) 2469 0 R (man.dnssec-coverage) 2481 0 R (man.dnssec-dsfromkey) 2496 0 R (man.dnssec-keyfromlabel) 2510 0 R (man.dnssec-keygen) 1469 0 R (man.dnssec-revoke) 2557 0 R (man.dnssec-settime) 1470 0 R (man.dnssec-signzone) 2585 0 R (man.dnssec-verify) 2614 0 R (man.genrandom) 2778 0 R (man.host) 2458 0 R (man.isc-hmac-fixup) 2789 0 R (man.named) 2653 0 R (man.named-checkconf) 2625 0 R (man.named-checkzone) 2637 0 R (man.named-journalprint) 2676 0 R (man.nsec3hash) 2796 0 R (man.nsupdate) 2686 0 R (man.rndc) 2712 0 R (man.rndc-confgen) 2744 0 R (man.rndc.conf) 2724 0 R (managed-keys) 1497 0 R (notify) 1374 0 R (options) 1341 0 R (page.1) 946 0 R (page.10) 1333 0 R (page.100) 1939 0 R (page.101) 1957 0 R (page.102) 1971 0 R (page.103) 1988 0 R (page.104) 1999 0 R (page.105) 2005 0 R (page.106) 2009 0 R (page.107) 2019 0 R (page.108) 2025 0 R (page.109) 2032 0 R (page.11) 1346 0 R (page.110) 2042 0 R (page.111) 2054 0 R (page.112) 2062 0 R (page.113) 2070 0 R (page.114) 2074 0 R (page.115) 2083 0 R (page.116) 2091 0 R (page.117) 2103 0 R (page.118) 2110 0 R (page.119) 2118 0 R (page.12) 1350 0 R (page.120) 2124 0 R (page.121) 2135 0 R (page.122) 2139 0 R (page.123) 2143 0 R (page.124) 2154 0 R (page.125) 2158 0 R (page.126) 2165 0 R (page.127) 2176 0 R (page.128) 2235 0 R (page.129) 2291 0 R (page.13) 1358 0 R (page.130) 2345 0 R (page.131) 2380 0 R (page.132) 2388 0 R (page.133) 2397 0 R (page.134) 2404 0 R (page.135) 2409 0 R (page.136) 2415 0 R (page.137) 2419 0 R (page.138) 2428 0 R (page.139) 2435 0 R (page.14) 1364 0 R (page.140) 2440 0 R (page.141) 2444 0 R (page.142) 2448 0 R (page.143) 2457 0 R (page.144) 2465 0 R (page.145) 2477 0 R (page.146) 2488 0 R (page.147) 2495 0 R (page.148) 2504 0 R (page.149) 2516 0 R (page.15) 1372 0 R (page.150) 2522 0 R (page.151) 2529 0 R (page.152) 2539 0 R (page.153) 2543 0 R (page.154) 2548 0 R (page.155) 2554 0 R (page.156) 2565 0 R (page.157) 2576 0 R (page.158) 2582 0 R (page.159) 2593 0 R (page.16) 1393 0 R (page.160) 2597 0 R (page.161) 2601 0 R (page.162) 2605 0 R (page.163) 2613 0 R (page.164) 2623 0 R (page.165) 2634 0 R (page.166) 2645 0 R (page.167) 2649 0 R (page.168) 2659 0 R (page.169) 2666 0 R (page.17) 1403 0 R (page.170) 2670 0 R (page.171) 2681 0 R (page.172) 2693 0 R (page.173) 2697 0 R (page.174) 2702 0 R (page.175) 2708 0 R (page.176) 2719 0 R (page.177) 2729 0 R (page.178) 2736 0 R (page.179) 2743 0 R (page.18) 1409 0 R (page.180) 2752 0 R (page.181) 2764 0 R (page.182) 2773 0 R (page.183) 2787 0 R (page.184) 2801 0 R (page.19) 1414 0 R (page.2) 970 0 R (page.20) 1419 0 R (page.21) 1428 0 R (page.22) 1437 0 R (page.23) 1444 0 R (page.24) 1450 0 R (page.25) 1455 0 R (page.26) 1465 0 R (page.27) 1474 0 R (page.28) 1482 0 R (page.29) 1492 0 R (page.3) 1270 0 R (page.30) 1501 0 R (page.31) 1508 0 R (page.32) 1514 0 R (page.33) 1519 0 R (page.34) 1528 0 R (page.35) 1534 0 R (page.36) 1540 0 R (page.37) 1550 0 R (page.38) 1557 0 R (page.39) 1561 0 R (page.4) 1281 0 R (page.40) 1571 0 R (page.41) 1575 0 R (page.42) 1582 0 R (page.43) 1592 0 R (page.44) 1600 0 R (page.45) 1608 0 R (page.46) 1620 0 R (page.47) 1626 0 R (page.48) 1632 0 R (page.49) 1639 0 R (page.5) 1288 0 R (page.50) 1643 0 R (page.51) 1650 0 R (page.52) 1655 0 R (page.53) 1665 0 R (page.54) 1669 0 R (page.55) 1674 0 R (page.56) 1678 0 R (page.57) 1682 0 R (page.58) 1686 0 R (page.59) 1693 0 R (page.6) 1300 0 R (page.60) 1698 0 R (page.61) 1705 0 R (page.62) 1711 0 R (page.63) 1716 0 R (page.64) 1725 0 R (page.65) 1729 0 R (page.66) 1733 0 R (page.67) 1741 0 R (page.68) 1750 0 R (page.69) 1757 0 R (page.7) 1306 0 R (page.70) 1763 0 R (page.71) 1767 0 R (page.72) 1771 0 R (page.73) 1776 0 R (page.74) 1784 0 R (page.75) 1790 0 R (page.76) 1796 0 R (page.77) 1803 0 R (page.78) 1810 0 R (page.79) 1817 0 R (page.8) 1314 0 R (page.80) 1823 0 R (page.81) 1831 0 R (page.82) 1835 0 R (page.83) 1839 0 R (page.84) 1843 0 R (page.85) 1849 0 R (page.86) 1855 0 R (page.87) 1859 0 R (page.88) 1863 0 R (page.89) 1868 0 R (page.9) 1323 0 R (page.90) 1875 0 R (page.91) 1889 0 R (page.92) 1894 0 R (page.93) 1899 0 R (page.94) 1903 0 R (page.95) 1907 0 R (page.96) 1911 0 R (page.97) 1920 0 R (page.98) 1924 0 R (page.99) 1928 0 R (page.i) 980 0 R (page.ii) 1035 0 R (page.iii) 1099 0 R (page.iv) 1162 0 R (page.v) 1224 0 R (pkcs11) 1502 0 R (proposed_standards) 1399 0 R (query_address) 1759 0 R (rfc5011.support) 1493 0 R (rfcs) 1266 0 R (rndc) 1604 0 R (root_delegation_only) 1935 0 R (rrset_ordering) 1319 0 R (sample_configuration) 1308 0 R (section*.10) 2304 0 R (section*.100) 2629 0 R (section*.101) 2630 0 R (section*.102) 2635 0 R (section*.103) 2636 0 R (section*.104) 2638 0 R (section*.105) 2639 0 R (section*.106) 2640 0 R (section*.107) 2641 0 R (section*.108) 2650 0 R (section*.109) 2651 0 R (section*.11) 2314 0 R (section*.110) 2652 0 R (section*.111) 2654 0 R (section*.112) 2655 0 R (section*.113) 2660 0 R (section*.114) 2661 0 R (section*.115) 2671 0 R (section*.116) 2672 0 R (section*.117) 2673 0 R (section*.118) 2674 0 R (section*.119) 2675 0 R (section*.12) 2334 0 R (section*.120) 2677 0 R (section*.121) 2682 0 R (section*.122) 2683 0 R (section*.123) 2684 0 R (section*.124) 2685 0 R (section*.125) 2687 0 R (section*.126) 2688 0 R (section*.127) 2689 0 R (section*.128) 2698 0 R (section*.129) 2703 0 R (section*.13) 2346 0 R (section*.130) 2709 0 R (section*.131) 2710 0 R (section*.132) 2711 0 R (section*.133) 2713 0 R (section*.134) 2714 0 R (section*.135) 2715 0 R (section*.136) 2720 0 R (section*.137) 2721 0 R (section*.138) 2722 0 R (section*.139) 2723 0 R (section*.14) 2372 0 R (section*.140) 2725 0 R (section*.141) 2730 0 R (section*.142) 2731 0 R (section*.143) 2732 0 R (section*.144) 2737 0 R (section*.145) 2738 0 R (section*.146) 2739 0 R (section*.147) 2745 0 R (section*.148) 2746 0 R (section*.149) 2747 0 R (section*.15) 2422 0 R (section*.150) 2748 0 R (section*.151) 2753 0 R (section*.152) 2754 0 R (section*.153) 2755 0 R (section*.154) 2757 0 R (section*.155) 2758 0 R (section*.156) 2759 0 R (section*.157) 2765 0 R (section*.158) 2766 0 R (section*.159) 2767 0 R (section*.16) 2423 0 R (section*.160) 2769 0 R (section*.161) 2774 0 R (section*.162) 2775 0 R (section*.163) 2776 0 R (section*.164) 2777 0 R (section*.165) 2779 0 R (section*.166) 2780 0 R (section*.167) 2781 0 R (section*.168) 2782 0 R (section*.169) 2783 0 R (section*.17) 2424 0 R (section*.170) 2788 0 R (section*.171) 2790 0 R (section*.172) 2791 0 R (section*.173) 2792 0 R (section*.174) 2793 0 R (section*.175) 2794 0 R (section*.176) 2795 0 R (section*.177) 2797 0 R (section*.178) 2802 0 R (section*.179) 2803 0 R (section*.18) 2429 0 R (section*.180) 2804 0 R (section*.181) 2805 0 R (section*.182) 2806 0 R (section*.19) 2430 0 R (section*.2) 2170 0 R (section*.20) 2436 0 R (section*.21) 2449 0 R (section*.22) 2450 0 R (section*.23) 2451 0 R (section*.24) 2452 0 R (section*.25) 2453 0 R (section*.26) 2459 0 R (section*.27) 2460 0 R (section*.28) 2461 0 R (section*.29) 2466 0 R (section*.3) 2177 0 R (section*.30) 2467 0 R (section*.31) 2468 0 R (section*.32) 2470 0 R (section*.33) 2471 0 R (section*.34) 2472 0 R (section*.35) 2478 0 R (section*.36) 2479 0 R (section*.37) 2480 0 R (section*.38) 2482 0 R (section*.39) 2483 0 R (section*.4) 2185 0 R (section*.40) 2484 0 R (section*.41) 2489 0 R (section*.42) 2490 0 R (section*.43) 2491 0 R (section*.44) 2497 0 R (section*.45) 2498 0 R (section*.46) 2499 0 R (section*.47) 2500 0 R (section*.48) 2505 0 R (section*.49) 2506 0 R (section*.5) 2210 0 R (section*.50) 2507 0 R (section*.51) 2508 0 R (section*.52) 2509 0 R (section*.53) 2511 0 R (section*.54) 2512 0 R (section*.55) 2517 0 R (section*.56) 2518 0 R (section*.57) 2523 0 R (section*.58) 2524 0 R (section*.59) 2530 0 R (section*.6) 2222 0 R (section*.60) 2531 0 R (section*.61) 2532 0 R (section*.62) 2533 0 R (section*.63) 2534 0 R (section*.64) 2535 0 R (section*.65) 2544 0 R (section*.66) 2549 0 R (section*.67) 2550 0 R (section*.68) 2555 0 R (section*.69) 2556 0 R (section*.7) 2236 0 R (section*.70) 2558 0 R (section*.71) 2559 0 R (section*.72) 2560 0 R (section*.73) 2561 0 R (section*.74) 2566 0 R (section*.75) 2567 0 R (section*.76) 2568 0 R (section*.77) 2569 0 R (section*.78) 2570 0 R (section*.79) 2571 0 R (section*.8) 2274 0 R (section*.80) 2577 0 R (section*.81) 2578 0 R (section*.82) 2583 0 R (section*.83) 2584 0 R (section*.84) 2586 0 R (section*.85) 2587 0 R (section*.86) 2588 0 R (section*.87) 2589 0 R (section*.88) 2606 0 R (section*.89) 2607 0 R (section*.9) 2292 0 R (section*.90) 2608 0 R (section*.91) 2615 0 R (section*.92) 2616 0 R (section*.93) 2617 0 R (section*.94) 2618 0 R (section*.95) 2619 0 R (section*.96) 2624 0 R (section*.97) 2626 0 R (section*.98) 2627 0 R (section*.99) 2628 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.10) 274 0 R (section.4.11) 286 0 R (section.4.12) 338 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) 354 0 R (section.5.2) 358 0 R (section.6.1) 366 0 R (section.6.2) 394 0 R (section.6.3) 618 0 R (section.6.4) 674 0 R (section.7.1) 710 0 R (section.7.2) 714 0 R (section.7.3) 726 0 R (section.8.1) 734 0 R (section.8.2) 742 0 R (section.8.3) 746 0 R (section.A.1) 754 0 R (section.A.2) 762 0 R (section.A.3) 770 0 R (section.A.4) 786 0 R (section.B.1) 846 0 R (section.B.10) 882 0 R (section.B.11) 886 0 R (section.B.12) 890 0 R (section.B.13) 894 0 R (section.B.14) 898 0 R (section.B.15) 902 0 R (section.B.16) 906 0 R (section.B.17) 910 0 R (section.B.18) 914 0 R (section.B.19) 918 0 R (section.B.2) 850 0 R (section.B.20) 922 0 R (section.B.21) 926 0 R (section.B.22) 930 0 R (section.B.23) 934 0 R (section.B.24) 938 0 R (section.B.3) 854 0 R (section.B.4) 858 0 R (section.B.5) 862 0 R (section.B.6) 866 0 R (section.B.7) 870 0 R (section.B.8) 874 0 R (section.B.9) 878 0 R (server_resource_limits) 1785 0 R (server_statement_definition_and_usage) 1721 0 R (server_statement_grammar) 1864 0 R (statistics) 2075 0 R (statistics_counters) 2084 0 R (statschannels) 1871 0 R (statsfile) 1689 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.10.1) 278 0 R (subsection.4.10.2) 282 0 R (subsection.4.11.1) 290 0 R (subsection.4.11.2) 306 0 R (subsection.4.11.3) 322 0 R (subsection.4.11.4) 326 0 R (subsection.4.11.5) 330 0 R (subsection.4.11.6) 334 0 R (subsection.4.12.1) 342 0 R (subsection.4.12.2) 346 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.10) 258 0 R (subsection.4.9.11) 262 0 R (subsection.4.9.12) 266 0 R (subsection.4.9.13) 270 0 R (subsection.4.9.2) 226 0 R (subsection.4.9.3) 230 0 R (subsection.4.9.4) 234 0 R (subsection.4.9.5) 238 0 R (subsection.4.9.6) 242 0 R (subsection.4.9.7) 246 0 R (subsection.4.9.8) 250 0 R (subsection.4.9.9) 254 0 R (subsection.6.1.1) 370 0 R (subsection.6.1.2) 382 0 R (subsection.6.2.1) 398 0 R (subsection.6.2.10) 434 0 R (subsection.6.2.11) 450 0 R (subsection.6.2.12) 454 0 R (subsection.6.2.13) 458 0 R (subsection.6.2.14) 462 0 R (subsection.6.2.15) 466 0 R (subsection.6.2.16) 470 0 R (subsection.6.2.17) 554 0 R (subsection.6.2.18) 558 0 R (subsection.6.2.19) 562 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 566 0 R (subsection.6.2.21) 570 0 R (subsection.6.2.22) 574 0 R (subsection.6.2.23) 578 0 R (subsection.6.2.24) 582 0 R (subsection.6.2.25) 586 0 R (subsection.6.2.26) 590 0 R (subsection.6.2.27) 594 0 R (subsection.6.2.28) 598 0 R (subsection.6.2.3) 406 0 R (subsection.6.2.4) 410 0 R (subsection.6.2.5) 414 0 R (subsection.6.2.6) 418 0 R (subsection.6.2.7) 422 0 R (subsection.6.2.8) 426 0 R (subsection.6.2.9) 430 0 R (subsection.6.3.1) 622 0 R (subsection.6.3.2) 634 0 R (subsection.6.3.3) 638 0 R (subsection.6.3.4) 642 0 R (subsection.6.3.5) 646 0 R (subsection.6.3.6) 666 0 R (subsection.6.3.7) 670 0 R (subsection.6.4.1) 682 0 R (subsection.7.2.1) 718 0 R (subsection.7.2.2) 722 0 R (subsection.8.1.1) 738 0 R (subsection.A.1.1) 758 0 R (subsection.A.2.1) 766 0 R (subsection.A.3.1) 774 0 R (subsection.A.3.2) 778 0 R (subsection.A.3.3) 782 0 R (subsection.A.4.1) 790 0 R (subsection.A.4.2) 794 0 R (subsection.A.4.3) 798 0 R (subsection.A.4.4) 802 0 R (subsection.A.4.5) 806 0 R (subsection.A.4.6) 810 0 R (subsection.A.4.7) 838 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.11.1.1) 294 0 R (subsubsection.4.11.1.2) 298 0 R (subsubsection.4.11.1.3) 302 0 R (subsubsection.4.11.2.1) 310 0 R (subsubsection.4.11.2.2) 314 0 R (subsubsection.4.11.2.3) 318 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 374 0 R (subsubsection.6.1.1.2) 378 0 R (subsubsection.6.1.2.1) 386 0 R (subsubsection.6.1.2.2) 390 0 R (subsubsection.6.2.10.1) 438 0 R (subsubsection.6.2.10.2) 442 0 R (subsubsection.6.2.10.3) 446 0 R (subsubsection.6.2.16.1) 474 0 R (subsubsection.6.2.16.10) 510 0 R (subsubsection.6.2.16.11) 514 0 R (subsubsection.6.2.16.12) 518 0 R (subsubsection.6.2.16.13) 522 0 R (subsubsection.6.2.16.14) 526 0 R (subsubsection.6.2.16.15) 530 0 R (subsubsection.6.2.16.16) 534 0 R (subsubsection.6.2.16.17) 538 0 R (subsubsection.6.2.16.18) 542 0 R (subsubsection.6.2.16.19) 546 0 R (subsubsection.6.2.16.2) 478 0 R (subsubsection.6.2.16.20) 550 0 R (subsubsection.6.2.16.3) 482 0 R (subsubsection.6.2.16.4) 486 0 R (subsubsection.6.2.16.5) 490 0 R (subsubsection.6.2.16.6) 494 0 R (subsubsection.6.2.16.7) 498 0 R (subsubsection.6.2.16.8) 502 0 R (subsubsection.6.2.16.9) 506 0 R (subsubsection.6.2.28.1) 602 0 R (subsubsection.6.2.28.2) 606 0 R (subsubsection.6.2.28.3) 610 0 R (subsubsection.6.2.28.4) 614 0 R (subsubsection.6.3.1.1) 626 0 R (subsubsection.6.3.1.2) 630 0 R (subsubsection.6.3.5.1) 650 0 R (subsubsection.6.3.5.2) 654 0 R (subsubsection.6.3.5.3) 658 0 R (subsubsection.6.3.5.4) 662 0 R (subsubsection.6.4.0.1) 678 0 R (subsubsection.6.4.1.1) 686 0 R (subsubsection.6.4.1.2) 690 0 R (subsubsection.6.4.1.3) 694 0 R (subsubsection.6.4.1.4) 698 0 R (subsubsection.6.4.1.5) 702 0 R (subsubsection.A.4.6.1) 814 0 R (subsubsection.A.4.6.2) 818 0 R (subsubsection.A.4.6.3) 822 0 R (subsubsection.A.4.6.4) 826 0 R (subsubsection.A.4.6.5) 830 0 R (subsubsection.A.4.6.6) 834 0 R (table.1.1) 1250 0 R (table.1.2) 1258 0 R (table.3.1) 1317 0 R (table.3.2) 1367 0 R (table.6.1) 1565 0 R (table.6.10) 2015 0 R (table.6.11) 2021 0 R (table.6.12) 2027 0 R (table.6.13) 2035 0 R (table.6.14) 2037 0 R (table.6.15) 2044 0 R (table.6.16) 2047 0 R (table.6.17) 2050 0 R (table.6.18) 2066 0 R (table.6.19) 2077 0 R (table.6.2) 1587 0 R (table.6.20) 2087 0 R (table.6.21) 2095 0 R (table.6.22) 2098 0 R (table.6.23) 2106 0 R (table.6.3) 1596 0 R (table.6.4) 1634 0 R (table.6.5) 1646 0 R (table.6.6) 1707 0 R (table.6.7) 1806 0 R (table.6.8) 1915 0 R (table.6.9) 2001 0 R (the_category_phrase) 1628 0 R (the_sortlist_statement) 1797 0 R (topology) 1792 0 R (trusted-keys) 1882 0 R (tsig) 1415 0 R (tuning) 1811 0 R (types_of_resource_records_and_when_to_use_them) 1265 0 R (view_statement_grammar) 1827 0 R (zone_statement_grammar) 1746 0 R (zone_transfers) 1389 0 R (zonefile_format) 1819 0 R]
+2850 0 obj <<
+/Names [(Access_Control_Lists) 2124 0 R (Bv9ARM.ch01) 1250 0 R (Bv9ARM.ch02) 1294 0 R (Bv9ARM.ch03) 1312 0 R (Bv9ARM.ch04) 1360 0 R (Bv9ARM.ch05) 1544 0 R (Bv9ARM.ch06) 1556 0 R (Bv9ARM.ch07) 2123 0 R (Bv9ARM.ch08) 2148 0 R (Bv9ARM.ch09) 2163 0 R (Bv9ARM.ch10) 2424 0 R (Configuration_File_Grammar) 1579 0 R (DNSSEC) 1430 0 R (Doc-Start) 951 0 R (Setting_TTLs) 2049 0 R (acache) 1301 0 R (access_control) 1743 0 R (acl) 1587 0 R (address_match_lists) 1561 0 R (admin_tools) 1334 0 R (appendix.A) 754 0 R (appendix.B) 846 0 R (bibliography) 2171 0 R (bind9.library) 2380 0 R (boolean_options) 1375 0 R (builtin) 1817 0 R (chapter*.1) 985 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 350 0 R (chapter.6) 362 0 R (chapter.7) 710 0 R (chapter.8) 734 0 R (cite.RFC1033) 2299 0 R (cite.RFC1034) 2184 0 R (cite.RFC1035) 2186 0 R (cite.RFC1101) 2281 0 R (cite.RFC1123) 2283 0 R (cite.RFC1183) 2243 0 R (cite.RFC1464) 2321 0 R (cite.RFC1535) 2229 0 R (cite.RFC1536) 2231 0 R (cite.RFC1537) 2301 0 R (cite.RFC1591) 2285 0 R (cite.RFC1706) 2245 0 R (cite.RFC1712) 2341 0 R (cite.RFC1713) 2323 0 R (cite.RFC1794) 2325 0 R (cite.RFC1876) 2247 0 R (cite.RFC1912) 2303 0 R (cite.RFC1982) 2233 0 R (cite.RFC1995) 2191 0 R (cite.RFC1996) 2193 0 R (cite.RFC2010) 2305 0 R (cite.RFC2052) 2249 0 R (cite.RFC2065) 2353 0 R (cite.RFC2136) 2195 0 R (cite.RFC2137) 2355 0 R (cite.RFC2163) 2251 0 R (cite.RFC2168) 2253 0 R (cite.RFC2181) 2197 0 R (cite.RFC2219) 2307 0 R (cite.RFC2230) 2255 0 R (cite.RFC2240) 2327 0 R (cite.RFC2308) 2199 0 R (cite.RFC2317) 2287 0 R (cite.RFC2345) 2329 0 R (cite.RFC2352) 2331 0 R (cite.RFC2535) 2357 0 R (cite.RFC2536) 2257 0 R (cite.RFC2537) 2259 0 R (cite.RFC2538) 2261 0 R (cite.RFC2539) 2263 0 R (cite.RFC2540) 2265 0 R (cite.RFC2671) 2201 0 R (cite.RFC2672) 2203 0 R (cite.RFC2673) 2343 0 R (cite.RFC2782) 2267 0 R (cite.RFC2825) 2311 0 R (cite.RFC2826) 2289 0 R (cite.RFC2845) 2205 0 R (cite.RFC2874) 2345 0 R (cite.RFC2915) 2269 0 R (cite.RFC2929) 2291 0 R (cite.RFC2930) 2207 0 R (cite.RFC2931) 2209 0 R (cite.RFC3007) 2211 0 R (cite.RFC3008) 2359 0 R (cite.RFC3071) 2333 0 R (cite.RFC3090) 2361 0 R (cite.RFC3110) 2271 0 R (cite.RFC3123) 2273 0 R (cite.RFC3225) 2217 0 R (cite.RFC3258) 2335 0 R (cite.RFC3445) 2363 0 R (cite.RFC3490) 2313 0 R (cite.RFC3491) 2315 0 R (cite.RFC3492) 2317 0 R (cite.RFC3596) 2275 0 R (cite.RFC3597) 2277 0 R (cite.RFC3645) 2213 0 R (cite.RFC3655) 2365 0 R (cite.RFC3658) 2367 0 R (cite.RFC3755) 2369 0 R (cite.RFC3757) 2371 0 R (cite.RFC3833) 2219 0 R (cite.RFC3845) 2373 0 R (cite.RFC3901) 2337 0 R (cite.RFC4033) 2221 0 R (cite.RFC4034) 2223 0 R (cite.RFC4035) 2225 0 R (cite.RFC4074) 2235 0 R (cite.RFC974) 2188 0 R (cite.id2513574) 2378 0 R (clients-per-query) 2103 0 R (configuration_file_elements) 1557 0 R (controls_statement_definition_and_usage) 1342 0 R (diagnostic_tools) 1282 0 R (dnssec.dynamic.zones) 1449 0 R (dynamic_update) 1370 0 R (dynamic_update_policies) 1377 0 R (dynamic_update_security) 1753 0 R (empty) 1825 0 R (historical_dns_information) 2165 0 R (id2466570) 1251 0 R (id2466594) 1252 0 R (id2467484) 1253 0 R (id2467494) 1254 0 R (id2467734) 1264 0 R (id2467755) 1265 0 R (id2467789) 1266 0 R (id2467874) 1269 0 R (id2467966) 1262 0 R (id2470272) 1276 0 R (id2470295) 1279 0 R (id2470393) 1280 0 R (id2470414) 1281 0 R (id2470444) 1287 0 R (id2470480) 1288 0 R (id2470574) 1289 0 R (id2470609) 1295 0 R (id2470635) 1296 0 R (id2470716) 1297 0 R (id2470742) 1300 0 R (id2470753) 1306 0 R (id2470785) 1314 0 R (id2470801) 1315 0 R (id2470823) 1320 0 R (id2470840) 1321 0 R (id2471245) 1329 0 R (id2471251) 1330 0 R (id2472304) 1347 0 R (id2472315) 1348 0 R (id2472878) 1389 0 R (id2472897) 1395 0 R (id2473330) 1410 0 R (id2473347) 1411 0 R (id2473453) 1412 0 R (id2473472) 1413 0 R (id2473482) 1414 0 R (id2473518) 1420 0 R (id2473576) 1421 0 R (id2473625) 1423 0 R (id2473639) 1424 0 R (id2473688) 1429 0 R (id2473893) 1431 0 R (id2473972) 1436 0 R (id2474121) 1437 0 R (id2474548) 1450 0 R (id2474585) 1451 0 R (id2474758) 1456 0 R (id2474861) 1469 0 R (id2474967) 1470 0 R (id2474980) 1471 0 R (id2475081) 1472 0 R (id2475108) 1477 0 R (id2475117) 1478 0 R (id2475127) 1479 0 R (id2475140) 1480 0 R (id2475245) 1481 0 R (id2475255) 1482 0 R (id2475361) 1488 0 R (id2475383) 1490 0 R (id2475485) 1497 0 R (id2475650) 1502 0 R (id2475719) 1503 0 R (id2475836) 1508 0 R (id2475987) 1514 0 R (id2475995) 1515 0 R (id2476027) 1516 0 R (id2476064) 1517 0 R (id2476112) 1518 0 R (id2476142) 1523 0 R (id2476546) 1529 0 R (id2476728) 1530 0 R (id2476782) 1535 0 R (id2476844) 1537 0 R (id2476866) 1538 0 R (id2476899) 1545 0 R (id2477114) 1558 0 R (id2478008) 1570 0 R (id2478036) 1571 0 R (id2478310) 1572 0 R (id2478325) 1577 0 R (id2478423) 1578 0 R (id2478498) 1580 0 R (id2478902) 1586 0 R (id2478945) 1588 0 R (id2479092) 1594 0 R (id2479588) 1603 0 R (id2479605) 1604 0 R (id2479628) 1605 0 R (id2479652) 1606 0 R (id2479742) 1610 0 R (id2479868) 1615 0 R (id2479921) 1616 0 R (id2480617) 1627 0 R (id2481560) 1637 0 R (id2481690) 1643 0 R (id2482148) 1649 0 R (id2482290) 1650 0 R (id2482354) 1653 0 R (id2482397) 1654 0 R (id2482419) 1655 0 R (id2486036) 1704 0 R (id2488549) 1735 0 R (id2488676) 1737 0 R (id2489237) 1752 0 R (id2490386) 1771 0 R (id2490514) 1777 0 R (id2490936) 1786 0 R (id2491438) 1804 0 R (id2493310) 1843 0 R (id2493436) 1849 0 R (id2494139) 1859 0 R (id2495348) 1880 0 R (id2495587) 1892 0 R (id2495702) 1894 0 R (id2496144) 1899 0 R (id2497924) 1921 0 R (id2497931) 1922 0 R (id2497937) 1923 0 R (id2498608) 1934 0 R (id2498709) 1935 0 R (id2500878) 2004 0 R (id2501474) 2014 0 R (id2501492) 2015 0 R (id2501512) 2018 0 R (id2501749) 2024 0 R (id2502987) 2030 0 R (id2503115) 2037 0 R (id2503273) 2038 0 R (id2503568) 2040 0 R (id2503704) 2042 0 R (id2503722) 2047 0 R (id2504195) 2050 0 R (id2504320) 2052 0 R (id2504334) 2053 0 R (id2504446) 2059 0 R (id2504469) 2060 0 R (id2504485) 2061 0 R (id2504546) 2062 0 R (id2504615) 2067 0 R (id2504720) 2068 0 R (id2504864) 2069 0 R (id2505306) 2080 0 R (id2505673) 2089 0 R (id2505678) 2090 0 R (id2507379) 2097 0 R (id2507385) 2098 0 R (id2507762) 2100 0 R (id2507767) 2101 0 R (id2508852) 2108 0 R (id2508952) 2109 0 R (id2509293) 2118 0 R (id2509521) 2132 0 R (id2509670) 2133 0 R (id2509730) 2134 0 R (id2509810) 2149 0 R (id2509815) 2150 0 R (id2509963) 2151 0 R (id2509980) 2152 0 R (id2510042) 2164 0 R (id2510146) 2170 0 R (id2510470) 2175 0 R (id2510472) 2182 0 R (id2510481) 2187 0 R (id2510504) 2183 0 R (id2510528) 2185 0 R (id2510564) 2196 0 R (id2510590) 2198 0 R (id2510616) 2190 0 R (id2510641) 2192 0 R (id2510664) 2194 0 R (id2510720) 2200 0 R (id2510746) 2202 0 R (id2510773) 2204 0 R (id2510835) 2206 0 R (id2510865) 2208 0 R (id2510894) 2210 0 R (id2510921) 2212 0 R (id2510996) 2215 0 R (id2511003) 2216 0 R (id2511030) 2218 0 R (id2511066) 2220 0 R (id2511131) 2222 0 R (id2511196) 2224 0 R (id2511261) 2227 0 R (id2511270) 2228 0 R (id2511296) 2230 0 R (id2511364) 2232 0 R (id2511399) 2234 0 R (id2511440) 2241 0 R (id2511445) 2242 0 R (id2511502) 2244 0 R (id2511540) 2252 0 R (id2511575) 2246 0 R (id2511629) 2248 0 R (id2511736) 2250 0 R (id2511762) 2254 0 R (id2511787) 2256 0 R (id2511814) 2258 0 R (id2511841) 2260 0 R (id2511880) 2262 0 R (id2511910) 2264 0 R (id2511940) 2266 0 R (id2511982) 2268 0 R (id2512016) 2270 0 R (id2512042) 2272 0 R (id2512066) 2274 0 R (id2512123) 2276 0 R (id2512148) 2279 0 R (id2512155) 2280 0 R (id2512181) 2282 0 R (id2512203) 2284 0 R (id2512227) 2286 0 R (id2512273) 2288 0 R (id2512296) 2290 0 R (id2512346) 2297 0 R (id2512354) 2298 0 R (id2512377) 2300 0 R (id2512404) 2302 0 R (id2512430) 2304 0 R (id2512467) 2306 0 R (id2512507) 2309 0 R (id2512513) 2310 0 R (id2512545) 2312 0 R (id2512659) 2314 0 R (id2512694) 2316 0 R (id2512721) 2319 0 R (id2512739) 2320 0 R (id2512829) 2322 0 R (id2512855) 2324 0 R (id2512881) 2326 0 R (id2512904) 2328 0 R (id2512950) 2330 0 R (id2512973) 2332 0 R (id2513000) 2334 0 R (id2513026) 2336 0 R (id2513063) 2339 0 R (id2513069) 2340 0 R (id2513127) 2342 0 R (id2513154) 2344 0 R (id2513190) 2351 0 R (id2513202) 2352 0 R (id2513241) 2354 0 R (id2513268) 2356 0 R (id2513298) 2358 0 R (id2513323) 2360 0 R (id2513350) 2362 0 R (id2513386) 2364 0 R (id2513422) 2366 0 R (id2513449) 2368 0 R (id2513476) 2370 0 R (id2513521) 2372 0 R (id2513562) 2375 0 R (id2513572) 2377 0 R (id2513574) 2379 0 R (id2513730) 2385 0 R (id2513739) 2386 0 R (id2513764) 2387 0 R (id2513863) 2388 0 R (id2513940) 2393 0 R (id2513966) 2395 0 R (id2513975) 2396 0 R (id2514134) 2402 0 R (id2514187) 2403 0 R (id2514251) 2404 0 R (id2514266) 2409 0 R (id2514466) 2414 0 R (id2514530) 2415 0 R (incremental_zone_transfers) 1386 0 R (internet_drafts) 2374 0 R (ipv6addresses) 1539 0 R (journal) 1382 0 R (lwresd) 1546 0 R (man.arpaname) 2788 0 R (man.ddns-confgen) 2773 0 R (man.dig) 2425 0 R (man.dnssec-checkds) 2473 0 R (man.dnssec-coverage) 2485 0 R (man.dnssec-dsfromkey) 2500 0 R (man.dnssec-keyfromlabel) 2514 0 R (man.dnssec-keygen) 1463 0 R (man.dnssec-revoke) 2561 0 R (man.dnssec-settime) 1464 0 R (man.dnssec-signzone) 2589 0 R (man.dnssec-verify) 2618 0 R (man.genrandom) 2794 0 R (man.host) 2462 0 R (man.isc-hmac-fixup) 2805 0 R (man.named) 2661 0 R (man.named-checkconf) 2629 0 R (man.named-checkzone) 2641 0 R (man.named-journalprint) 2684 0 R (man.nsec3hash) 2817 0 R (man.nsupdate) 2690 0 R (man.rndc) 1341 0 R (man.rndc-confgen) 2761 0 R (man.rndc.conf) 2744 0 R (managed-keys) 1491 0 R (notify) 1361 0 R (options) 1672 0 R (page.1) 950 0 R (page.10) 1338 0 R (page.100) 1943 0 R (page.101) 1961 0 R (page.102) 1975 0 R (page.103) 1992 0 R (page.104) 2003 0 R (page.105) 2009 0 R (page.106) 2013 0 R (page.107) 2023 0 R (page.108) 2029 0 R (page.109) 2036 0 R (page.11) 1346 0 R (page.110) 2046 0 R (page.111) 2058 0 R (page.112) 2066 0 R (page.113) 2074 0 R (page.114) 2078 0 R (page.115) 2087 0 R (page.116) 2095 0 R (page.117) 2107 0 R (page.118) 2114 0 R (page.119) 2122 0 R (page.12) 1353 0 R (page.120) 2128 0 R (page.121) 2139 0 R (page.122) 2143 0 R (page.123) 2147 0 R (page.124) 2158 0 R (page.125) 2162 0 R (page.126) 2169 0 R (page.127) 2180 0 R (page.128) 2239 0 R (page.129) 2295 0 R (page.13) 1359 0 R (page.130) 2349 0 R (page.131) 2384 0 R (page.132) 2392 0 R (page.133) 2401 0 R (page.134) 2408 0 R (page.135) 2413 0 R (page.136) 2419 0 R (page.137) 2423 0 R (page.138) 2432 0 R (page.139) 2439 0 R (page.14) 1381 0 R (page.140) 2444 0 R (page.141) 2448 0 R (page.142) 2452 0 R (page.143) 2461 0 R (page.144) 2469 0 R (page.145) 2481 0 R (page.146) 2492 0 R (page.147) 2499 0 R (page.148) 2508 0 R (page.149) 2520 0 R (page.15) 1394 0 R (page.150) 2526 0 R (page.151) 2533 0 R (page.152) 2543 0 R (page.153) 2547 0 R (page.154) 2552 0 R (page.155) 2558 0 R (page.156) 2569 0 R (page.157) 2580 0 R (page.158) 2586 0 R (page.159) 2597 0 R (page.16) 1400 0 R (page.160) 2601 0 R (page.161) 2605 0 R (page.162) 2609 0 R (page.163) 2616 0 R (page.164) 2626 0 R (page.165) 2637 0 R (page.166) 2649 0 R (page.167) 2653 0 R (page.168) 2660 0 R (page.169) 2670 0 R (page.17) 1404 0 R (page.170) 2674 0 R (page.171) 2681 0 R (page.172) 2695 0 R (page.173) 2701 0 R (page.174) 2706 0 R (page.175) 2712 0 R (page.176) 2720 0 R (page.177) 2728 0 R (page.178) 2732 0 R (page.179) 2736 0 R (page.18) 1409 0 R (page.180) 2742 0 R (page.181) 2752 0 R (page.182) 2758 0 R (page.183) 2769 0 R (page.184) 2779 0 R (page.185) 2787 0 R (page.186) 2802 0 R (page.187) 2816 0 R (page.19) 1419 0 R (page.2) 974 0 R (page.20) 1428 0 R (page.21) 1435 0 R (page.22) 1441 0 R (page.23) 1445 0 R (page.24) 1455 0 R (page.25) 1468 0 R (page.26) 1476 0 R (page.27) 1486 0 R (page.28) 1495 0 R (page.29) 1501 0 R (page.3) 1275 0 R (page.30) 1507 0 R (page.31) 1513 0 R (page.32) 1522 0 R (page.33) 1528 0 R (page.34) 1534 0 R (page.35) 1543 0 R (page.36) 1550 0 R (page.37) 1555 0 R (page.38) 1565 0 R (page.39) 1569 0 R (page.4) 1286 0 R (page.40) 1576 0 R (page.41) 1585 0 R (page.42) 1593 0 R (page.43) 1602 0 R (page.44) 1614 0 R (page.45) 1620 0 R (page.46) 1626 0 R (page.47) 1632 0 R (page.48) 1636 0 R (page.49) 1642 0 R (page.5) 1293 0 R (page.50) 1648 0 R (page.51) 1659 0 R (page.52) 1663 0 R (page.53) 1667 0 R (page.54) 1671 0 R (page.55) 1677 0 R (page.56) 1681 0 R (page.57) 1687 0 R (page.58) 1692 0 R (page.59) 1697 0 R (page.6) 1305 0 R (page.60) 1703 0 R (page.61) 1710 0 R (page.62) 1720 0 R (page.63) 1724 0 R (page.64) 1728 0 R (page.65) 1732 0 R (page.66) 1742 0 R (page.67) 1749 0 R (page.68) 1757 0 R (page.69) 1762 0 R (page.7) 1311 0 R (page.70) 1766 0 R (page.71) 1770 0 R (page.72) 1776 0 R (page.73) 1785 0 R (page.74) 1790 0 R (page.75) 1798 0 R (page.76) 1803 0 R (page.77) 1810 0 R (page.78) 1815 0 R (page.79) 1823 0 R (page.8) 1319 0 R (page.80) 1830 0 R (page.81) 1834 0 R (page.82) 1838 0 R (page.83) 1842 0 R (page.84) 1848 0 R (page.85) 1854 0 R (page.86) 1858 0 R (page.87) 1863 0 R (page.88) 1867 0 R (page.89) 1872 0 R (page.9) 1328 0 R (page.90) 1877 0 R (page.91) 1890 0 R (page.92) 1898 0 R (page.93) 1903 0 R (page.94) 1907 0 R (page.95) 1911 0 R (page.96) 1915 0 R (page.97) 1920 0 R (page.98) 1928 0 R (page.99) 1932 0 R (page.i) 984 0 R (page.ii) 1039 0 R (page.iii) 1103 0 R (page.iv) 1166 0 R (page.v) 1228 0 R (pkcs11) 1496 0 R (proposed_standards) 1390 0 R (query_address) 1758 0 R (rfc5011.support) 1487 0 R (rfcs) 1271 0 R (rndc) 1598 0 R (root_delegation_only) 1939 0 R (rrset_ordering) 1324 0 R (sample_configuration) 1313 0 R (section*.10) 2308 0 R (section*.100) 2633 0 R (section*.101) 2638 0 R (section*.102) 2639 0 R (section*.103) 2640 0 R (section*.104) 2642 0 R (section*.105) 2643 0 R (section*.106) 2644 0 R (section*.107) 2645 0 R (section*.108) 2654 0 R (section*.109) 2655 0 R (section*.11) 2318 0 R (section*.110) 2656 0 R (section*.111) 2662 0 R (section*.112) 2663 0 R (section*.113) 2664 0 R (section*.114) 2665 0 R (section*.115) 2675 0 R (section*.116) 2676 0 R (section*.117) 2677 0 R (section*.118) 2682 0 R (section*.119) 2683 0 R (section*.12) 2338 0 R (section*.120) 2685 0 R (section*.121) 2686 0 R (section*.122) 2687 0 R (section*.123) 2688 0 R (section*.124) 2689 0 R (section*.125) 2691 0 R (section*.126) 2696 0 R (section*.127) 2697 0 R (section*.128) 2702 0 R (section*.129) 2707 0 R (section*.13) 2350 0 R (section*.130) 2713 0 R (section*.131) 2714 0 R (section*.132) 2715 0 R (section*.133) 2716 0 R (section*.134) 2721 0 R (section*.135) 2722 0 R (section*.136) 2723 0 R (section*.137) 2724 0 R (section*.138) 2737 0 R (section*.139) 2738 0 R (section*.14) 2376 0 R (section*.140) 2743 0 R (section*.141) 2745 0 R (section*.142) 2746 0 R (section*.143) 2747 0 R (section*.144) 2753 0 R (section*.145) 2754 0 R (section*.146) 2759 0 R (section*.147) 2760 0 R (section*.148) 2762 0 R (section*.149) 2763 0 R (section*.15) 2426 0 R (section*.150) 2764 0 R (section*.151) 2765 0 R (section*.152) 2770 0 R (section*.153) 2771 0 R (section*.154) 2772 0 R (section*.155) 2774 0 R (section*.156) 2775 0 R (section*.157) 2780 0 R (section*.158) 2781 0 R (section*.159) 2782 0 R (section*.16) 2427 0 R (section*.160) 2783 0 R (section*.161) 2789 0 R (section*.162) 2790 0 R (section*.163) 2791 0 R (section*.164) 2792 0 R (section*.165) 2793 0 R (section*.166) 2795 0 R (section*.167) 2796 0 R (section*.168) 2797 0 R (section*.169) 2798 0 R (section*.17) 2428 0 R (section*.170) 2803 0 R (section*.171) 2804 0 R (section*.172) 2806 0 R (section*.173) 2807 0 R (section*.174) 2808 0 R (section*.175) 2809 0 R (section*.176) 2810 0 R (section*.177) 2811 0 R (section*.178) 2818 0 R (section*.179) 2819 0 R (section*.18) 2433 0 R (section*.180) 2820 0 R (section*.181) 2821 0 R (section*.182) 2822 0 R (section*.183) 2823 0 R (section*.19) 2434 0 R (section*.2) 2174 0 R (section*.20) 2440 0 R (section*.21) 2453 0 R (section*.22) 2454 0 R (section*.23) 2455 0 R (section*.24) 2456 0 R (section*.25) 2457 0 R (section*.26) 2463 0 R (section*.27) 2464 0 R (section*.28) 2465 0 R (section*.29) 2470 0 R (section*.3) 2181 0 R (section*.30) 2471 0 R (section*.31) 2472 0 R (section*.32) 2474 0 R (section*.33) 2475 0 R (section*.34) 2476 0 R (section*.35) 2482 0 R (section*.36) 2483 0 R (section*.37) 2484 0 R (section*.38) 2486 0 R (section*.39) 2487 0 R (section*.4) 2189 0 R (section*.40) 2488 0 R (section*.41) 2493 0 R (section*.42) 2494 0 R (section*.43) 2495 0 R (section*.44) 2501 0 R (section*.45) 2502 0 R (section*.46) 2503 0 R (section*.47) 2504 0 R (section*.48) 2509 0 R (section*.49) 2510 0 R (section*.5) 2214 0 R (section*.50) 2511 0 R (section*.51) 2512 0 R (section*.52) 2513 0 R (section*.53) 2515 0 R (section*.54) 2516 0 R (section*.55) 2521 0 R (section*.56) 2522 0 R (section*.57) 2527 0 R (section*.58) 2528 0 R (section*.59) 2534 0 R (section*.6) 2226 0 R (section*.60) 2535 0 R (section*.61) 2536 0 R (section*.62) 2537 0 R (section*.63) 2538 0 R (section*.64) 2539 0 R (section*.65) 2548 0 R (section*.66) 2553 0 R (section*.67) 2554 0 R (section*.68) 2559 0 R (section*.69) 2560 0 R (section*.7) 2240 0 R (section*.70) 2562 0 R (section*.71) 2563 0 R (section*.72) 2564 0 R (section*.73) 2565 0 R (section*.74) 2570 0 R (section*.75) 2571 0 R (section*.76) 2572 0 R (section*.77) 2573 0 R (section*.78) 2574 0 R (section*.79) 2575 0 R (section*.8) 2278 0 R (section*.80) 2581 0 R (section*.81) 2582 0 R (section*.82) 2587 0 R (section*.83) 2588 0 R (section*.84) 2590 0 R (section*.85) 2591 0 R (section*.86) 2592 0 R (section*.87) 2593 0 R (section*.88) 2610 0 R (section*.89) 2611 0 R (section*.9) 2296 0 R (section*.90) 2617 0 R (section*.91) 2619 0 R (section*.92) 2620 0 R (section*.93) 2621 0 R (section*.94) 2622 0 R (section*.95) 2627 0 R (section*.96) 2628 0 R (section*.97) 2630 0 R (section*.98) 2631 0 R (section*.99) 2632 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.10) 274 0 R (section.4.11) 286 0 R (section.4.12) 338 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) 354 0 R (section.5.2) 358 0 R (section.6.1) 366 0 R (section.6.2) 394 0 R (section.6.3) 622 0 R (section.6.4) 678 0 R (section.7.1) 714 0 R (section.7.2) 718 0 R (section.7.3) 730 0 R (section.8.1) 738 0 R (section.8.2) 746 0 R (section.8.3) 750 0 R (section.A.1) 758 0 R (section.A.2) 766 0 R (section.A.3) 774 0 R (section.A.4) 790 0 R (section.B.1) 850 0 R (section.B.10) 886 0 R (section.B.11) 890 0 R (section.B.12) 894 0 R (section.B.13) 898 0 R (section.B.14) 902 0 R (section.B.15) 906 0 R (section.B.16) 910 0 R (section.B.17) 914 0 R (section.B.18) 918 0 R (section.B.19) 922 0 R (section.B.2) 854 0 R (section.B.20) 926 0 R (section.B.21) 930 0 R (section.B.22) 934 0 R (section.B.23) 938 0 R (section.B.24) 942 0 R (section.B.3) 858 0 R (section.B.4) 862 0 R (section.B.5) 866 0 R (section.B.6) 870 0 R (section.B.7) 874 0 R (section.B.8) 878 0 R (section.B.9) 882 0 R (server_resource_limits) 1779 0 R (server_statement_definition_and_usage) 1716 0 R (server_statement_grammar) 1868 0 R (statistics) 2079 0 R (statistics_counters) 2088 0 R (statschannels) 1879 0 R (statsfile) 1683 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.10.1) 278 0 R (subsection.4.10.2) 282 0 R (subsection.4.11.1) 290 0 R (subsection.4.11.2) 306 0 R (subsection.4.11.3) 322 0 R (subsection.4.11.4) 326 0 R (subsection.4.11.5) 330 0 R (subsection.4.11.6) 334 0 R (subsection.4.12.1) 342 0 R (subsection.4.12.2) 346 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.10) 258 0 R (subsection.4.9.11) 262 0 R (subsection.4.9.12) 266 0 R (subsection.4.9.13) 270 0 R (subsection.4.9.2) 226 0 R (subsection.4.9.3) 230 0 R (subsection.4.9.4) 234 0 R (subsection.4.9.5) 238 0 R (subsection.4.9.6) 242 0 R (subsection.4.9.7) 246 0 R (subsection.4.9.8) 250 0 R (subsection.4.9.9) 254 0 R (subsection.6.1.1) 370 0 R (subsection.6.1.2) 382 0 R (subsection.6.2.1) 398 0 R (subsection.6.2.10) 434 0 R (subsection.6.2.11) 450 0 R (subsection.6.2.12) 454 0 R (subsection.6.2.13) 458 0 R (subsection.6.2.14) 462 0 R (subsection.6.2.15) 466 0 R (subsection.6.2.16) 470 0 R (subsection.6.2.17) 558 0 R (subsection.6.2.18) 562 0 R (subsection.6.2.19) 566 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 570 0 R (subsection.6.2.21) 574 0 R (subsection.6.2.22) 578 0 R (subsection.6.2.23) 582 0 R (subsection.6.2.24) 586 0 R (subsection.6.2.25) 590 0 R (subsection.6.2.26) 594 0 R (subsection.6.2.27) 598 0 R (subsection.6.2.28) 602 0 R (subsection.6.2.3) 406 0 R (subsection.6.2.4) 410 0 R (subsection.6.2.5) 414 0 R (subsection.6.2.6) 418 0 R (subsection.6.2.7) 422 0 R (subsection.6.2.8) 426 0 R (subsection.6.2.9) 430 0 R (subsection.6.3.1) 626 0 R (subsection.6.3.2) 638 0 R (subsection.6.3.3) 642 0 R (subsection.6.3.4) 646 0 R (subsection.6.3.5) 650 0 R (subsection.6.3.6) 670 0 R (subsection.6.3.7) 674 0 R (subsection.6.4.1) 686 0 R (subsection.7.2.1) 722 0 R (subsection.7.2.2) 726 0 R (subsection.8.1.1) 742 0 R (subsection.A.1.1) 762 0 R (subsection.A.2.1) 770 0 R (subsection.A.3.1) 778 0 R (subsection.A.3.2) 782 0 R (subsection.A.3.3) 786 0 R (subsection.A.4.1) 794 0 R (subsection.A.4.2) 798 0 R (subsection.A.4.3) 802 0 R (subsection.A.4.4) 806 0 R (subsection.A.4.5) 810 0 R (subsection.A.4.6) 814 0 R (subsection.A.4.7) 842 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.11.1.1) 294 0 R (subsubsection.4.11.1.2) 298 0 R (subsubsection.4.11.1.3) 302 0 R (subsubsection.4.11.2.1) 310 0 R (subsubsection.4.11.2.2) 314 0 R (subsubsection.4.11.2.3) 318 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 374 0 R (subsubsection.6.1.1.2) 378 0 R (subsubsection.6.1.2.1) 386 0 R (subsubsection.6.1.2.2) 390 0 R (subsubsection.6.2.10.1) 438 0 R (subsubsection.6.2.10.2) 442 0 R (subsubsection.6.2.10.3) 446 0 R (subsubsection.6.2.16.1) 474 0 R (subsubsection.6.2.16.10) 510 0 R (subsubsection.6.2.16.11) 514 0 R (subsubsection.6.2.16.12) 518 0 R (subsubsection.6.2.16.13) 522 0 R (subsubsection.6.2.16.14) 526 0 R (subsubsection.6.2.16.15) 530 0 R (subsubsection.6.2.16.16) 534 0 R (subsubsection.6.2.16.17) 538 0 R (subsubsection.6.2.16.18) 542 0 R (subsubsection.6.2.16.19) 546 0 R (subsubsection.6.2.16.2) 478 0 R (subsubsection.6.2.16.20) 550 0 R (subsubsection.6.2.16.21) 554 0 R (subsubsection.6.2.16.3) 482 0 R (subsubsection.6.2.16.4) 486 0 R (subsubsection.6.2.16.5) 490 0 R (subsubsection.6.2.16.6) 494 0 R (subsubsection.6.2.16.7) 498 0 R (subsubsection.6.2.16.8) 502 0 R (subsubsection.6.2.16.9) 506 0 R (subsubsection.6.2.28.1) 606 0 R (subsubsection.6.2.28.2) 610 0 R (subsubsection.6.2.28.3) 614 0 R (subsubsection.6.2.28.4) 618 0 R (subsubsection.6.3.1.1) 630 0 R (subsubsection.6.3.1.2) 634 0 R (subsubsection.6.3.5.1) 654 0 R (subsubsection.6.3.5.2) 658 0 R (subsubsection.6.3.5.3) 662 0 R (subsubsection.6.3.5.4) 666 0 R (subsubsection.6.4.0.1) 682 0 R (subsubsection.6.4.1.1) 690 0 R (subsubsection.6.4.1.2) 694 0 R (subsubsection.6.4.1.3) 698 0 R (subsubsection.6.4.1.4) 702 0 R (subsubsection.6.4.1.5) 706 0 R (subsubsection.A.4.6.1) 818 0 R (subsubsection.A.4.6.2) 822 0 R (subsubsection.A.4.6.3) 826 0 R (subsubsection.A.4.6.4) 830 0 R (subsubsection.A.4.6.5) 834 0 R (subsubsection.A.4.6.6) 838 0 R (table.1.1) 1255 0 R (table.1.2) 1263 0 R (table.3.1) 1322 0 R (table.3.2) 1349 0 R (table.6.1) 1559 0 R (table.6.10) 2019 0 R (table.6.11) 2025 0 R (table.6.12) 2031 0 R (table.6.13) 2039 0 R (table.6.14) 2041 0 R (table.6.15) 2048 0 R (table.6.16) 2051 0 R (table.6.17) 2054 0 R (table.6.18) 2070 0 R (table.6.19) 2081 0 R (table.6.2) 1581 0 R (table.6.20) 2091 0 R (table.6.21) 2099 0 R (table.6.22) 2102 0 R (table.6.23) 2110 0 R (table.6.3) 1589 0 R (table.6.4) 1628 0 R (table.6.5) 1644 0 R (table.6.6) 1705 0 R (table.6.7) 1805 0 R (table.6.8) 1924 0 R (table.6.9) 2005 0 R (the_category_phrase) 1622 0 R (the_sortlist_statement) 1792 0 R (topology) 1791 0 R (trusted-keys) 1891 0 R (tsig) 1405 0 R (tuning) 1806 0 R (types_of_resource_records_and_when_to_use_them) 1270 0 R (view_statement_grammar) 1826 0 R (zone_statement_grammar) 1738 0 R (zone_transfers) 1376 0 R (zonefile_format) 1819 0 R]
/Limits [(Access_Control_Lists) (zonefile_format)]
>> endobj
-2834 0 obj <<
-/Kids [2833 0 R]
+2851 0 obj <<
+/Kids [2850 0 R]
>> endobj
-2835 0 obj <<
-/Dests 2834 0 R
+2852 0 obj <<
+/Dests 2851 0 R
>> endobj
-2836 0 obj <<
+2853 0 obj <<
/Type /Catalog
-/Pages 2831 0 R
-/Outlines 2832 0 R
-/Names 2835 0 R
+/Pages 2848 0 R
+/Outlines 2849 0 R
+/Names 2852 0 R
/PageMode /UseOutlines
-/OpenAction 941 0 R
+/OpenAction 945 0 R
>> endobj
-2837 0 obj <<
+2854 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20130516011446Z)
+/CreationDate (D:20140117011504Z)
/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
>> endobj
xref
-0 2838
+0 2855
0000000001 65535 f
0000000002 00000 f
0000000003 00000 f
0000000004 00000 f
0000000000 00000 f
0000000009 00000 n
-0000349585 00000 n
-0001223461 00000 n
+0000349948 00000 n
+0001233140 00000 n
0000000054 00000 n
0000000086 00000 n
-0000349712 00000 n
-0001223389 00000 n
+0000350075 00000 n
+0001233068 00000 n
0000000133 00000 n
0000000173 00000 n
-0000349840 00000 n
-0001223303 00000 n
+0000350203 00000 n
+0001232982 00000 n
0000000221 00000 n
0000000273 00000 n
-0000349968 00000 n
-0001223217 00000 n
+0000350331 00000 n
+0001232896 00000 n
0000000321 00000 n
0000000377 00000 n
-0000354254 00000 n
-0001223107 00000 n
+0000354617 00000 n
+0001232786 00000 n
0000000425 00000 n
0000000478 00000 n
-0000354381 00000 n
-0001223033 00000 n
+0000354744 00000 n
+0001232712 00000 n
0000000531 00000 n
0000000572 00000 n
-0000354509 00000 n
-0001222946 00000 n
+0000354872 00000 n
+0001232625 00000 n
0000000625 00000 n
0000000674 00000 n
-0000354636 00000 n
-0001222859 00000 n
+0000354999 00000 n
+0001232538 00000 n
0000000727 00000 n
0000000757 00000 n
-0000358933 00000 n
-0001222735 00000 n
+0000359296 00000 n
+0001232414 00000 n
0000000810 00000 n
0000000861 00000 n
-0000359061 00000 n
-0001222661 00000 n
+0000359424 00000 n
+0001232340 00000 n
0000000919 00000 n
0000000964 00000 n
-0000359189 00000 n
-0001222574 00000 n
+0000359552 00000 n
+0001232253 00000 n
0000001022 00000 n
0000001062 00000 n
-0000359317 00000 n
-0001222500 00000 n
+0000359680 00000 n
+0001232179 00000 n
0000001120 00000 n
0000001162 00000 n
-0000362302 00000 n
-0001222376 00000 n
+0000362665 00000 n
+0001232055 00000 n
0000001215 00000 n
0000001260 00000 n
-0000362430 00000 n
-0001222315 00000 n
+0000362793 00000 n
+0001231994 00000 n
0000001318 00000 n
0000001355 00000 n
-0000362558 00000 n
-0001222241 00000 n
+0000362921 00000 n
+0001231920 00000 n
0000001408 00000 n
0000001463 00000 n
-0000365505 00000 n
-0001222116 00000 n
+0000365868 00000 n
+0001231795 00000 n
0000001509 00000 n
0000001556 00000 n
-0000365633 00000 n
-0001222042 00000 n
+0000365996 00000 n
+0001231721 00000 n
0000001604 00000 n
0000001648 00000 n
-0000365761 00000 n
-0001221955 00000 n
+0000366124 00000 n
+0001231634 00000 n
0000001696 00000 n
0000001735 00000 n
-0000365889 00000 n
-0001221868 00000 n
+0000366252 00000 n
+0001231547 00000 n
0000001783 00000 n
0000001825 00000 n
-0000366016 00000 n
-0001221781 00000 n
+0000366379 00000 n
+0001231460 00000 n
0000001873 00000 n
0000001936 00000 n
-0000367093 00000 n
-0001221707 00000 n
+0000367456 00000 n
+0001231386 00000 n
0000001984 00000 n
0000002034 00000 n
-0000368752 00000 n
-0001221579 00000 n
+0000369115 00000 n
+0001231258 00000 n
0000002080 00000 n
0000002126 00000 n
-0000368879 00000 n
-0001221466 00000 n
+0000369242 00000 n
+0001231145 00000 n
0000002174 00000 n
0000002218 00000 n
-0000369007 00000 n
-0001221390 00000 n
+0000369370 00000 n
+0001231069 00000 n
0000002271 00000 n
0000002323 00000 n
-0000369135 00000 n
-0001221313 00000 n
+0000369498 00000 n
+0001230992 00000 n
0000002377 00000 n
0000002436 00000 n
-0000371584 00000 n
-0001221222 00000 n
+0000371947 00000 n
+0001230901 00000 n
0000002485 00000 n
0000002523 00000 n
-0000374922 00000 n
-0001221105 00000 n
+0000375285 00000 n
+0001230784 00000 n
0000002572 00000 n
0000002618 00000 n
-0000375050 00000 n
-0001220987 00000 n
+0000375413 00000 n
+0001230666 00000 n
0000002672 00000 n
0000002739 00000 n
-0000375178 00000 n
-0001220908 00000 n
+0000375541 00000 n
+0001230587 00000 n
0000002798 00000 n
0000002842 00000 n
-0000375307 00000 n
-0001220829 00000 n
+0000375670 00000 n
+0001230508 00000 n
0000002901 00000 n
0000002949 00000 n
-0000393344 00000 n
-0001220750 00000 n
+0000382656 00000 n
+0001230429 00000 n
0000003003 00000 n
0000003036 00000 n
-0000398572 00000 n
-0001220617 00000 n
+0000388281 00000 n
+0001230296 00000 n
0000003083 00000 n
0000003126 00000 n
-0000398701 00000 n
-0001220538 00000 n
+0000388410 00000 n
+0001230217 00000 n
0000003175 00000 n
0000003205 00000 n
-0000398830 00000 n
-0001220406 00000 n
+0000388539 00000 n
+0001230085 00000 n
0000003254 00000 n
0000003292 00000 n
-0000403339 00000 n
-0001220341 00000 n
+0000393048 00000 n
+0001230020 00000 n
0000003346 00000 n
0000003388 00000 n
-0000403468 00000 n
-0001220248 00000 n
+0000393177 00000 n
+0001229927 00000 n
0000003437 00000 n
0000003496 00000 n
-0000403597 00000 n
-0001220116 00000 n
+0000393306 00000 n
+0001229795 00000 n
0000003545 00000 n
0000003578 00000 n
-0000407515 00000 n
-0001220051 00000 n
+0000397225 00000 n
+0001229730 00000 n
0000003632 00000 n
0000003681 00000 n
-0000410529 00000 n
-0001219919 00000 n
+0000400239 00000 n
+0001229598 00000 n
0000003730 00000 n
0000003758 00000 n
-0000413309 00000 n
-0001219801 00000 n
+0000403019 00000 n
+0001229480 00000 n
0000003812 00000 n
0000003881 00000 n
-0000413438 00000 n
-0001219722 00000 n
+0000403148 00000 n
+0001229401 00000 n
0000003940 00000 n
0000003988 00000 n
-0000413566 00000 n
-0001219643 00000 n
+0000403276 00000 n
+0001229322 00000 n
0000004047 00000 n
0000004092 00000 n
-0000413695 00000 n
-0001219550 00000 n
+0000403405 00000 n
+0001229229 00000 n
0000004146 00000 n
0000004214 00000 n
-0000413824 00000 n
-0001219457 00000 n
+0000403534 00000 n
+0001229136 00000 n
0000004268 00000 n
0000004338 00000 n
-0000417493 00000 n
-0001219364 00000 n
+0000407203 00000 n
+0001229043 00000 n
0000004392 00000 n
0000004455 00000 n
-0000417622 00000 n
-0001219271 00000 n
+0000407332 00000 n
+0001228950 00000 n
0000004509 00000 n
0000004564 00000 n
-0000417750 00000 n
-0001219192 00000 n
+0000407460 00000 n
+0001228871 00000 n
0000004618 00000 n
0000004650 00000 n
-0000417878 00000 n
-0001219099 00000 n
+0000407588 00000 n
+0001228778 00000 n
0000004699 00000 n
0000004727 00000 n
-0000421647 00000 n
-0001219006 00000 n
+0000411357 00000 n
+0001228685 00000 n
0000004776 00000 n
0000004808 00000 n
-0000421776 00000 n
-0001218874 00000 n
+0000411486 00000 n
+0001228553 00000 n
0000004857 00000 n
0000004887 00000 n
-0000421905 00000 n
-0001218795 00000 n
+0000411615 00000 n
+0001228474 00000 n
0000004941 00000 n
0000004982 00000 n
-0000425703 00000 n
-0001218702 00000 n
+0000415413 00000 n
+0001228381 00000 n
0000005036 00000 n
0000005078 00000 n
-0000425832 00000 n
-0001218623 00000 n
+0000415542 00000 n
+0001228302 00000 n
0000005132 00000 n
0000005177 00000 n
-0000431155 00000 n
-0001218490 00000 n
+0000420866 00000 n
+0001228169 00000 n
0000005226 00000 n
0000005294 00000 n
-0000431284 00000 n
-0001218411 00000 n
+0000420995 00000 n
+0001228090 00000 n
0000005348 00000 n
0000005408 00000 n
-0000431413 00000 n
-0001218318 00000 n
+0000421124 00000 n
+0001227997 00000 n
0000005462 00000 n
0000005513 00000 n
-0000435680 00000 n
-0001218225 00000 n
+0000425392 00000 n
+0001227904 00000 n
0000005567 00000 n
0000005621 00000 n
-0000438662 00000 n
-0001218132 00000 n
+0000428374 00000 n
+0001227811 00000 n
0000005675 00000 n
0000005721 00000 n
-0000438791 00000 n
-0001218039 00000 n
+0000428503 00000 n
+0001227718 00000 n
0000005775 00000 n
0000005817 00000 n
-0000438920 00000 n
-0001217946 00000 n
+0000428632 00000 n
+0001227625 00000 n
0000005871 00000 n
0000005922 00000 n
-0000439049 00000 n
-0001217853 00000 n
+0000428761 00000 n
+0001227532 00000 n
0000005976 00000 n
0000006025 00000 n
-0000441808 00000 n
-0001217760 00000 n
+0000431520 00000 n
+0001227439 00000 n
0000006079 00000 n
0000006136 00000 n
-0000441937 00000 n
-0001217667 00000 n
+0000431649 00000 n
+0001227346 00000 n
0000006190 00000 n
0000006245 00000 n
-0000442066 00000 n
-0001217574 00000 n
+0000431778 00000 n
+0001227253 00000 n
0000006300 00000 n
0000006356 00000 n
-0000442194 00000 n
-0001217481 00000 n
+0000431906 00000 n
+0001227160 00000 n
0000006411 00000 n
0000006472 00000 n
-0000442322 00000 n
-0001217388 00000 n
+0000432034 00000 n
+0001227067 00000 n
0000006527 00000 n
0000006573 00000 n
-0000442451 00000 n
-0001217309 00000 n
+0000432163 00000 n
+0001226988 00000 n
0000006628 00000 n
0000006671 00000 n
-0000446315 00000 n
-0001217177 00000 n
+0000436027 00000 n
+0001226856 00000 n
0000006721 00000 n
0000006777 00000 n
-0000446444 00000 n
-0001217098 00000 n
+0000436156 00000 n
+0001226777 00000 n
0000006832 00000 n
0000006878 00000 n
-0000446573 00000 n
-0001217019 00000 n
+0000436285 00000 n
+0001226698 00000 n
0000006933 00000 n
0000006980 00000 n
-0000449975 00000 n
-0001216887 00000 n
+0000439687 00000 n
+0001226566 00000 n
0000007030 00000 n
0000007087 00000 n
-0000450104 00000 n
-0001216769 00000 n
+0000439816 00000 n
+0001226448 00000 n
0000007142 00000 n
0000007182 00000 n
-0000452772 00000 n
-0001216690 00000 n
+0000442484 00000 n
+0001226369 00000 n
0000007242 00000 n
0000007315 00000 n
-0000452901 00000 n
-0001216597 00000 n
+0000442613 00000 n
+0001226276 00000 n
0000007375 00000 n
0000007448 00000 n
-0000455618 00000 n
-0001216518 00000 n
+0000445330 00000 n
+0001226197 00000 n
0000007508 00000 n
0000007565 00000 n
-0000458010 00000 n
-0001216386 00000 n
+0000447722 00000 n
+0001226065 00000 n
0000007620 00000 n
0000007678 00000 n
-0000458139 00000 n
-0001216307 00000 n
+0000447851 00000 n
+0001225986 00000 n
0000007738 00000 n
0000007815 00000 n
-0000458268 00000 n
-0001216214 00000 n
+0000447980 00000 n
+0001225893 00000 n
0000007875 00000 n
0000007952 00000 n
-0000458397 00000 n
-0001216135 00000 n
+0000448109 00000 n
+0001225814 00000 n
0000008012 00000 n
0000008071 00000 n
-0000458526 00000 n
-0001216042 00000 n
+0000448238 00000 n
+0001225721 00000 n
0000008126 00000 n
0000008170 00000 n
-0000461158 00000 n
-0001215949 00000 n
+0000450869 00000 n
+0001225628 00000 n
0000008225 00000 n
0000008265 00000 n
-0000463967 00000 n
-0001215856 00000 n
+0000453677 00000 n
+0001225535 00000 n
0000008320 00000 n
0000008388 00000 n
-0000464096 00000 n
-0001215777 00000 n
+0000453806 00000 n
+0001225456 00000 n
0000008443 00000 n
0000008514 00000 n
-0000468157 00000 n
-0001215659 00000 n
+0000457867 00000 n
+0001225338 00000 n
0000008564 00000 n
0000008611 00000 n
-0000468286 00000 n
-0001215580 00000 n
+0000457996 00000 n
+0001225259 00000 n
0000008666 00000 n
0000008727 00000 n
-0000468415 00000 n
-0001215501 00000 n
+0000458125 00000 n
+0001225180 00000 n
0000008782 00000 n
0000008852 00000 n
-0000470900 00000 n
-0001215368 00000 n
+0000460610 00000 n
+0001225047 00000 n
0000008899 00000 n
0000008952 00000 n
-0000471029 00000 n
-0001215289 00000 n
+0000460739 00000 n
+0001224968 00000 n
0000009001 00000 n
0000009057 00000 n
-0000471158 00000 n
-0001215210 00000 n
+0000460868 00000 n
+0001224889 00000 n
0000009106 00000 n
0000009155 00000 n
-0000475428 00000 n
-0001215077 00000 n
+0000465138 00000 n
+0001224756 00000 n
0000009202 00000 n
0000009254 00000 n
-0000475557 00000 n
-0001214959 00000 n
+0000465267 00000 n
+0001224638 00000 n
0000009303 00000 n
0000009354 00000 n
-0000483981 00000 n
-0001214841 00000 n
+0000473691 00000 n
+0001224520 00000 n
0000009408 00000 n
0000009453 00000 n
-0000484110 00000 n
-0001214762 00000 n
+0000473820 00000 n
+0001224441 00000 n
0000009512 00000 n
0000009546 00000 n
-0000484239 00000 n
-0001214683 00000 n
+0000473949 00000 n
+0001224362 00000 n
0000009605 00000 n
0000009653 00000 n
-0000484368 00000 n
-0001214565 00000 n
+0000474078 00000 n
+0001224244 00000 n
0000009707 00000 n
0000009747 00000 n
-0000486901 00000 n
-0001214486 00000 n
+0000476611 00000 n
+0001224165 00000 n
0000009806 00000 n
0000009840 00000 n
-0000487030 00000 n
-0001214407 00000 n
+0000476740 00000 n
+0001224086 00000 n
0000009899 00000 n
0000009947 00000 n
-0000487159 00000 n
-0001214274 00000 n
+0000476869 00000 n
+0001223953 00000 n
0000009996 00000 n
0000010046 00000 n
-0000490400 00000 n
-0001214195 00000 n
+0000480110 00000 n
+0001223874 00000 n
0000010100 00000 n
0000010147 00000 n
-0000490528 00000 n
-0001214102 00000 n
+0000480238 00000 n
+0001223781 00000 n
0000010201 00000 n
0000010261 00000 n
-0000495885 00000 n
-0001214009 00000 n
+0000485595 00000 n
+0001223688 00000 n
0000010315 00000 n
0000010367 00000 n
-0000496014 00000 n
-0001213916 00000 n
+0000485724 00000 n
+0001223595 00000 n
0000010421 00000 n
0000010486 00000 n
-0000499484 00000 n
-0001213823 00000 n
+0000489194 00000 n
+0001223502 00000 n
0000010540 00000 n
0000010591 00000 n
-0000499613 00000 n
-0001213730 00000 n
+0000489323 00000 n
+0001223409 00000 n
0000010645 00000 n
0000010709 00000 n
-0000499742 00000 n
-0001213637 00000 n
+0000489452 00000 n
+0001223316 00000 n
0000010763 00000 n
0000010810 00000 n
-0000499871 00000 n
-0001213544 00000 n
+0000489581 00000 n
+0001223223 00000 n
0000010864 00000 n
0000010924 00000 n
-0000499999 00000 n
-0001213451 00000 n
+0000489709 00000 n
+0001223130 00000 n
0000010978 00000 n
0000011029 00000 n
-0000503698 00000 n
-0001213319 00000 n
+0000493408 00000 n
+0001222998 00000 n
0000011084 00000 n
0000011149 00000 n
-0000503827 00000 n
-0001213240 00000 n
+0000493537 00000 n
+0001222919 00000 n
0000011209 00000 n
0000011256 00000 n
-0000510628 00000 n
-0001213147 00000 n
+0000500377 00000 n
+0001222826 00000 n
0000011316 00000 n
0000011364 00000 n
-0000517534 00000 n
-0001213068 00000 n
+0000507238 00000 n
+0001222747 00000 n
0000011424 00000 n
0000011478 00000 n
-0000520761 00000 n
-0001212975 00000 n
+0000513667 00000 n
+0001222654 00000 n
0000011533 00000 n
0000011583 00000 n
-0000523661 00000 n
-0001212882 00000 n
+0000513796 00000 n
+0001222561 00000 n
0000011638 00000 n
0000011701 00000 n
-0000523790 00000 n
-0001212789 00000 n
+0000513925 00000 n
+0001222468 00000 n
0000011756 00000 n
0000011808 00000 n
-0000523919 00000 n
-0001212696 00000 n
+0000514054 00000 n
+0001222375 00000 n
0000011863 00000 n
0000011928 00000 n
-0000524048 00000 n
-0001212603 00000 n
+0000514183 00000 n
+0001222282 00000 n
0000011983 00000 n
0000012035 00000 n
-0000531546 00000 n
-0001212470 00000 n
+0000520931 00000 n
+0001222149 00000 n
0000012090 00000 n
0000012155 00000 n
-0000552718 00000 n
-0001212391 00000 n
+0000541866 00000 n
+0001222070 00000 n
0000012215 00000 n
0000012259 00000 n
-0000574745 00000 n
-0001212298 00000 n
+0000567381 00000 n
+0001221977 00000 n
0000012319 00000 n
0000012358 00000 n
-0000578746 00000 n
-0001212205 00000 n
+0000567509 00000 n
+0001221884 00000 n
0000012418 00000 n
0000012465 00000 n
-0000578875 00000 n
-0001212112 00000 n
+0000570958 00000 n
+0001221791 00000 n
0000012525 00000 n
0000012568 00000 n
-0000586524 00000 n
-0001212019 00000 n
+0000575288 00000 n
+0001221698 00000 n
0000012628 00000 n
0000012667 00000 n
-0000586652 00000 n
-0001211926 00000 n
+0000579035 00000 n
+0001221605 00000 n
0000012727 00000 n
0000012769 00000 n
-0000593683 00000 n
-0001211833 00000 n
+0000581953 00000 n
+0001221512 00000 n
0000012829 00000 n
0000012872 00000 n
-0000601678 00000 n
-0001211740 00000 n
+0000589425 00000 n
+0001221419 00000 n
0000012932 00000 n
0000012975 00000 n
-0000601807 00000 n
-0001211647 00000 n
+0000593613 00000 n
+0001221326 00000 n
0000013035 00000 n
0000013096 00000 n
-0000605914 00000 n
-0001211554 00000 n
+0000593741 00000 n
+0001221233 00000 n
0000013157 00000 n
0000013209 00000 n
-0000609162 00000 n
-0001211461 00000 n
+0000597768 00000 n
+0001221140 00000 n
0000013270 00000 n
0000013323 00000 n
-0000609291 00000 n
-0001211368 00000 n
+0000601352 00000 n
+0001221047 00000 n
0000013384 00000 n
0000013422 00000 n
-0000613144 00000 n
-0001211275 00000 n
+0000601480 00000 n
+0001220954 00000 n
0000013483 00000 n
0000013535 00000 n
-0000616554 00000 n
-0001211182 00000 n
+0000604708 00000 n
+0001220861 00000 n
0000013596 00000 n
0000013640 00000 n
-0000620724 00000 n
-0001211089 00000 n
+0000608315 00000 n
+0001220768 00000 n
0000013701 00000 n
0000013737 00000 n
-0000629377 00000 n
-0001210996 00000 n
+0000616760 00000 n
+0001220675 00000 n
0000013798 00000 n
0000013861 00000 n
-0000629506 00000 n
-0001210903 00000 n
+0000620505 00000 n
+0001220582 00000 n
0000013922 00000 n
0000013972 00000 n
-0000639857 00000 n
-0001210810 00000 n
+0000627454 00000 n
+0001220489 00000 n
0000014033 00000 n
0000014089 00000 n
-0000639985 00000 n
-0001210717 00000 n
+0000632152 00000 n
+0001220396 00000 n
0000014150 00000 n
0000014197 00000 n
-0000644156 00000 n
-0001210638 00000 n
+0000636382 00000 n
+0001220303 00000 n
0000014258 00000 n
0000014326 00000 n
-0000654835 00000 n
-0001210545 00000 n
-0000014381 00000 n
-0000014432 00000 n
-0000654964 00000 n
-0001210452 00000 n
-0000014487 00000 n
-0000014551 00000 n
-0000659651 00000 n
-0001210359 00000 n
-0000014606 00000 n
-0000014670 00000 n
-0000665169 00000 n
-0001210266 00000 n
-0000014725 00000 n
-0000014802 00000 n
-0000665298 00000 n
-0001210173 00000 n
-0000014857 00000 n
-0000014914 00000 n
-0000665427 00000 n
-0001210080 00000 n
-0000014969 00000 n
-0000015039 00000 n
-0000669607 00000 n
-0001209987 00000 n
-0000015094 00000 n
-0000015151 00000 n
-0000669736 00000 n
-0001209894 00000 n
-0000015206 00000 n
-0000015276 00000 n
-0000673670 00000 n
-0001209801 00000 n
-0000015331 00000 n
-0000015380 00000 n
-0000673799 00000 n
-0001209708 00000 n
-0000015435 00000 n
-0000015497 00000 n
-0000675472 00000 n
-0001209615 00000 n
-0000015552 00000 n
-0000015601 00000 n
-0000680187 00000 n
-0001209497 00000 n
-0000015656 00000 n
-0000015718 00000 n
-0000680316 00000 n
-0001209418 00000 n
-0000015778 00000 n
-0000015817 00000 n
-0000690574 00000 n
-0001209325 00000 n
-0000015877 00000 n
-0000015911 00000 n
-0000690702 00000 n
-0001209232 00000 n
-0000015971 00000 n
-0000016012 00000 n
-0000712487 00000 n
-0001209153 00000 n
-0000016072 00000 n
-0000016124 00000 n
-0000723009 00000 n
-0001209021 00000 n
-0000016173 00000 n
-0000016206 00000 n
-0000723138 00000 n
-0001208903 00000 n
-0000016260 00000 n
-0000016332 00000 n
-0000723267 00000 n
-0001208824 00000 n
-0000016391 00000 n
-0000016435 00000 n
-0000733869 00000 n
-0001208745 00000 n
-0000016494 00000 n
-0000016547 00000 n
-0000734258 00000 n
-0001208652 00000 n
-0000016601 00000 n
-0000016651 00000 n
-0000738100 00000 n
-0001208559 00000 n
-0000016705 00000 n
-0000016743 00000 n
-0000738359 00000 n
-0001208466 00000 n
-0000016797 00000 n
-0000016846 00000 n
-0000741133 00000 n
-0001208334 00000 n
-0000016900 00000 n
-0000016952 00000 n
-0000741258 00000 n
-0001208255 00000 n
-0000017011 00000 n
-0000017056 00000 n
-0000741387 00000 n
-0001208162 00000 n
-0000017115 00000 n
-0000017167 00000 n
-0000741516 00000 n
-0001208069 00000 n
-0000017226 00000 n
-0000017279 00000 n
-0000743959 00000 n
-0001207990 00000 n
-0000017338 00000 n
-0000017387 00000 n
-0000744088 00000 n
-0001207897 00000 n
-0000017441 00000 n
-0000017521 00000 n
-0000748410 00000 n
-0001207818 00000 n
-0000017575 00000 n
-0000017624 00000 n
-0000751916 00000 n
-0001207700 00000 n
-0000017673 00000 n
-0000017713 00000 n
-0000752175 00000 n
-0001207621 00000 n
-0000017772 00000 n
-0000017819 00000 n
-0000755604 00000 n
-0001207503 00000 n
-0000017873 00000 n
-0000017918 00000 n
-0000755733 00000 n
-0001207424 00000 n
-0000017977 00000 n
-0000018036 00000 n
-0000759096 00000 n
-0001207331 00000 n
-0000018095 00000 n
-0000018159 00000 n
-0000759355 00000 n
-0001207238 00000 n
-0000018218 00000 n
-0000018274 00000 n
-0000763456 00000 n
-0001207145 00000 n
-0000018333 00000 n
-0000018391 00000 n
-0000765628 00000 n
-0001207066 00000 n
-0000018450 00000 n
-0000018512 00000 n
-0000767413 00000 n
-0001206933 00000 n
-0000018559 00000 n
-0000018611 00000 n
-0000767541 00000 n
-0001206854 00000 n
-0000018660 00000 n
-0000018704 00000 n
-0000771340 00000 n
-0001206722 00000 n
-0000018753 00000 n
-0000018794 00000 n
-0000771469 00000 n
-0001206643 00000 n
-0000018848 00000 n
-0000018896 00000 n
-0000771598 00000 n
-0001206564 00000 n
-0000018950 00000 n
-0000019001 00000 n
-0000771726 00000 n
-0001206485 00000 n
-0000019050 00000 n
-0000019097 00000 n
-0000775986 00000 n
-0001206352 00000 n
-0000019144 00000 n
-0000019181 00000 n
-0000776115 00000 n
-0001206234 00000 n
-0000019230 00000 n
-0000019269 00000 n
-0000776244 00000 n
-0001206169 00000 n
-0000019323 00000 n
-0000019401 00000 n
-0000776373 00000 n
-0001206076 00000 n
-0000019450 00000 n
-0000019517 00000 n
-0000776502 00000 n
-0001205997 00000 n
-0000019566 00000 n
-0000019611 00000 n
-0000779943 00000 n
-0001205864 00000 n
-0000019659 00000 n
-0000019691 00000 n
-0000780072 00000 n
-0001205746 00000 n
-0000019740 00000 n
-0000019779 00000 n
-0000780201 00000 n
-0001205681 00000 n
-0000019833 00000 n
-0000019894 00000 n
-0000783883 00000 n
-0001205549 00000 n
-0000019943 00000 n
-0000020000 00000 n
-0000784012 00000 n
-0001205484 00000 n
-0000020054 00000 n
-0000020103 00000 n
-0000784141 00000 n
-0001205352 00000 n
-0000020152 00000 n
-0000020214 00000 n
-0000784270 00000 n
-0001205273 00000 n
-0000020268 00000 n
-0000020323 00000 n
-0000809112 00000 n
-0001205180 00000 n
-0000020377 00000 n
-0000020418 00000 n
-0000809241 00000 n
-0001205101 00000 n
-0000020472 00000 n
-0000020524 00000 n
-0000809630 00000 n
-0001204983 00000 n
-0000020573 00000 n
-0000020623 00000 n
-0000812451 00000 n
-0001204904 00000 n
-0000020677 00000 n
-0000020715 00000 n
-0000812580 00000 n
-0001204811 00000 n
-0000020769 00000 n
-0000020806 00000 n
-0000812709 00000 n
-0001204718 00000 n
-0000020860 00000 n
-0000020898 00000 n
-0000812838 00000 n
-0001204625 00000 n
-0000020952 00000 n
-0000021004 00000 n
-0000816074 00000 n
-0001204532 00000 n
-0000021058 00000 n
-0000021101 00000 n
-0000816202 00000 n
-0001204400 00000 n
-0000021155 00000 n
-0000021200 00000 n
-0000816330 00000 n
-0001204321 00000 n
-0000021259 00000 n
-0000021325 00000 n
-0000819316 00000 n
-0001204228 00000 n
-0000021384 00000 n
-0000021472 00000 n
-0000819445 00000 n
-0001204135 00000 n
-0000021531 00000 n
-0000021606 00000 n
-0000819574 00000 n
-0001204042 00000 n
-0000021665 00000 n
-0000021750 00000 n
-0000822482 00000 n
-0001203949 00000 n
-0000021809 00000 n
-0000021890 00000 n
-0000824943 00000 n
-0001203870 00000 n
-0000021949 00000 n
-0000022033 00000 n
-0000825072 00000 n
-0001203791 00000 n
-0000022087 00000 n
-0000022131 00000 n
-0000827972 00000 n
-0001203671 00000 n
-0000022179 00000 n
-0000022213 00000 n
-0000828101 00000 n
-0001203592 00000 n
-0000022262 00000 n
-0000022289 00000 n
-0000850488 00000 n
-0001203499 00000 n
-0000022338 00000 n
-0000022366 00000 n
-0000854121 00000 n
-0001203406 00000 n
-0000022415 00000 n
-0000022453 00000 n
-0000857325 00000 n
-0001203313 00000 n
-0000022502 00000 n
-0000022541 00000 n
-0000863728 00000 n
-0001203220 00000 n
-0000022590 00000 n
-0000022630 00000 n
-0000866453 00000 n
-0001203127 00000 n
-0000022679 00000 n
-0000022722 00000 n
-0000876590 00000 n
-0001203034 00000 n
-0000022771 00000 n
-0000022808 00000 n
-0000890239 00000 n
-0001202941 00000 n
-0000022857 00000 n
-0000022894 00000 n
-0000893620 00000 n
-0001202848 00000 n
-0000022943 00000 n
-0000022981 00000 n
-0000900145 00000 n
-0001202755 00000 n
-0000023031 00000 n
-0000023071 00000 n
-0000917722 00000 n
-0001202662 00000 n
-0000023121 00000 n
-0000023159 00000 n
-0000920624 00000 n
-0001202569 00000 n
-0000023209 00000 n
-0000023249 00000 n
-0000923539 00000 n
-0001202476 00000 n
-0000023299 00000 n
-0000023339 00000 n
-0000930509 00000 n
-0001202383 00000 n
-0000023389 00000 n
-0000023419 00000 n
-0000940141 00000 n
-0001202290 00000 n
-0000023469 00000 n
-0000023512 00000 n
-0000943226 00000 n
-0001202197 00000 n
-0000023562 00000 n
-0000023595 00000 n
-0000957608 00000 n
-0001202104 00000 n
-0000023645 00000 n
-0000023674 00000 n
-0000961270 00000 n
-0001202011 00000 n
-0000023724 00000 n
+0000643421 00000 n
+0001220224 00000 n
+0000014387 00000 n
+0000014439 00000 n
+0000652184 00000 n
+0001220131 00000 n
+0000014494 00000 n
+0000014545 00000 n
+0000656910 00000 n
+0001220038 00000 n
+0000014600 00000 n
+0000014664 00000 n
+0000662275 00000 n
+0001219945 00000 n
+0000014719 00000 n
+0000014783 00000 n
+0000662404 00000 n
+0001219852 00000 n
+0000014838 00000 n
+0000014915 00000 n
+0000666004 00000 n
+0001219759 00000 n
+0000014970 00000 n
+0000015027 00000 n
+0000666133 00000 n
+0001219666 00000 n
+0000015082 00000 n
+0000015152 00000 n
+0000666262 00000 n
+0001219573 00000 n
+0000015207 00000 n
+0000015264 00000 n
+0000666391 00000 n
+0001219480 00000 n
+0000015319 00000 n
+0000015389 00000 n
+0000670697 00000 n
+0001219387 00000 n
+0000015444 00000 n
+0000015493 00000 n
+0000670826 00000 n
+0001219294 00000 n
+0000015548 00000 n
+0000015610 00000 n
+0000673452 00000 n
+0001219201 00000 n
+0000015665 00000 n
+0000015714 00000 n
+0000681437 00000 n
+0001219083 00000 n
+0000015769 00000 n
+0000015831 00000 n
+0000681566 00000 n
+0001219004 00000 n
+0000015891 00000 n
+0000015930 00000 n
+0000688820 00000 n
+0001218911 00000 n
+0000015990 00000 n
+0000016024 00000 n
+0000688948 00000 n
+0001218818 00000 n
+0000016084 00000 n
+0000016125 00000 n
+0000710733 00000 n
+0001218739 00000 n
+0000016185 00000 n
+0000016237 00000 n
+0000721255 00000 n
+0001218607 00000 n
+0000016286 00000 n
+0000016319 00000 n
+0000721384 00000 n
+0001218489 00000 n
+0000016373 00000 n
+0000016445 00000 n
+0000721513 00000 n
+0001218410 00000 n
+0000016504 00000 n
+0000016548 00000 n
+0000732115 00000 n
+0001218331 00000 n
+0000016607 00000 n
+0000016660 00000 n
+0000732504 00000 n
+0001218238 00000 n
+0000016714 00000 n
+0000016764 00000 n
+0000736346 00000 n
+0001218145 00000 n
+0000016818 00000 n
+0000016856 00000 n
+0000736605 00000 n
+0001218052 00000 n
+0000016910 00000 n
+0000016959 00000 n
+0000739380 00000 n
+0001217920 00000 n
+0000017013 00000 n
+0000017065 00000 n
+0000739505 00000 n
+0001217841 00000 n
+0000017124 00000 n
+0000017169 00000 n
+0000739634 00000 n
+0001217748 00000 n
+0000017228 00000 n
+0000017280 00000 n
+0000739763 00000 n
+0001217655 00000 n
+0000017339 00000 n
+0000017392 00000 n
+0000742206 00000 n
+0001217576 00000 n
+0000017451 00000 n
+0000017500 00000 n
+0000742335 00000 n
+0001217483 00000 n
+0000017554 00000 n
+0000017634 00000 n
+0000746657 00000 n
+0001217404 00000 n
+0000017688 00000 n
+0000017737 00000 n
+0000750163 00000 n
+0001217286 00000 n
+0000017786 00000 n
+0000017826 00000 n
+0000750422 00000 n
+0001217207 00000 n
+0000017885 00000 n
+0000017932 00000 n
+0000753851 00000 n
+0001217089 00000 n
+0000017986 00000 n
+0000018031 00000 n
+0000753980 00000 n
+0001217010 00000 n
+0000018090 00000 n
+0000018149 00000 n
+0000757319 00000 n
+0001216917 00000 n
+0000018208 00000 n
+0000018272 00000 n
+0000757578 00000 n
+0001216824 00000 n
+0000018331 00000 n
+0000018387 00000 n
+0000761762 00000 n
+0001216731 00000 n
+0000018446 00000 n
+0000018504 00000 n
+0000763934 00000 n
+0001216652 00000 n
+0000018563 00000 n
+0000018625 00000 n
+0000765719 00000 n
+0001216519 00000 n
+0000018672 00000 n
+0000018724 00000 n
+0000765847 00000 n
+0001216440 00000 n
+0000018773 00000 n
+0000018817 00000 n
+0000769646 00000 n
+0001216308 00000 n
+0000018866 00000 n
+0000018907 00000 n
+0000769775 00000 n
+0001216229 00000 n
+0000018961 00000 n
+0000019009 00000 n
+0000769904 00000 n
+0001216150 00000 n
+0000019063 00000 n
+0000019114 00000 n
+0000770032 00000 n
+0001216071 00000 n
+0000019163 00000 n
+0000019210 00000 n
+0000774292 00000 n
+0001215938 00000 n
+0000019257 00000 n
+0000019294 00000 n
+0000774421 00000 n
+0001215820 00000 n
+0000019343 00000 n
+0000019382 00000 n
+0000774550 00000 n
+0001215755 00000 n
+0000019436 00000 n
+0000019514 00000 n
+0000774679 00000 n
+0001215662 00000 n
+0000019563 00000 n
+0000019630 00000 n
+0000774808 00000 n
+0001215583 00000 n
+0000019679 00000 n
+0000019724 00000 n
+0000778249 00000 n
+0001215450 00000 n
+0000019772 00000 n
+0000019804 00000 n
+0000778378 00000 n
+0001215332 00000 n
+0000019853 00000 n
+0000019892 00000 n
+0000778507 00000 n
+0001215267 00000 n
+0000019946 00000 n
+0000020007 00000 n
+0000782189 00000 n
+0001215135 00000 n
+0000020056 00000 n
+0000020113 00000 n
+0000782318 00000 n
+0001215070 00000 n
+0000020167 00000 n
+0000020216 00000 n
+0000782447 00000 n
+0001214938 00000 n
+0000020265 00000 n
+0000020327 00000 n
+0000782576 00000 n
+0001214859 00000 n
+0000020381 00000 n
+0000020436 00000 n
+0000807418 00000 n
+0001214766 00000 n
+0000020490 00000 n
+0000020531 00000 n
+0000807547 00000 n
+0001214687 00000 n
+0000020585 00000 n
+0000020637 00000 n
+0000807936 00000 n
+0001214569 00000 n
+0000020686 00000 n
+0000020736 00000 n
+0000810757 00000 n
+0001214490 00000 n
+0000020790 00000 n
+0000020828 00000 n
+0000810886 00000 n
+0001214397 00000 n
+0000020882 00000 n
+0000020919 00000 n
+0000811015 00000 n
+0001214304 00000 n
+0000020973 00000 n
+0000021011 00000 n
+0000811144 00000 n
+0001214211 00000 n
+0000021065 00000 n
+0000021117 00000 n
+0000814380 00000 n
+0001214118 00000 n
+0000021171 00000 n
+0000021214 00000 n
+0000814508 00000 n
+0001213986 00000 n
+0000021268 00000 n
+0000021313 00000 n
+0000814636 00000 n
+0001213907 00000 n
+0000021372 00000 n
+0000021438 00000 n
+0000817622 00000 n
+0001213814 00000 n
+0000021497 00000 n
+0000021585 00000 n
+0000817751 00000 n
+0001213721 00000 n
+0000021644 00000 n
+0000021719 00000 n
+0000817880 00000 n
+0001213628 00000 n
+0000021778 00000 n
+0000021863 00000 n
+0000820788 00000 n
+0001213535 00000 n
+0000021922 00000 n
+0000022003 00000 n
+0000823249 00000 n
+0001213456 00000 n
+0000022062 00000 n
+0000022146 00000 n
+0000823378 00000 n
+0001213377 00000 n
+0000022200 00000 n
+0000022244 00000 n
+0000826274 00000 n
+0001213257 00000 n
+0000022292 00000 n
+0000022326 00000 n
+0000826403 00000 n
+0001213178 00000 n
+0000022375 00000 n
+0000022402 00000 n
+0000848974 00000 n
+0001213085 00000 n
+0000022451 00000 n
+0000022479 00000 n
+0000852607 00000 n
+0001212992 00000 n
+0000022528 00000 n
+0000022566 00000 n
+0000855811 00000 n
+0001212899 00000 n
+0000022615 00000 n
+0000022654 00000 n
+0000862214 00000 n
+0001212806 00000 n
+0000022703 00000 n
+0000022743 00000 n
+0000864940 00000 n
+0001212713 00000 n
+0000022792 00000 n
+0000022835 00000 n
+0000875077 00000 n
+0001212620 00000 n
+0000022884 00000 n
+0000022921 00000 n
+0000888727 00000 n
+0001212527 00000 n
+0000022970 00000 n
+0000023007 00000 n
+0000892108 00000 n
+0001212434 00000 n
+0000023056 00000 n
+0000023094 00000 n
+0000898633 00000 n
+0001212341 00000 n
+0000023144 00000 n
+0000023184 00000 n
+0000916435 00000 n
+0001212248 00000 n
+0000023234 00000 n
+0000023272 00000 n
+0000919577 00000 n
+0001212155 00000 n
+0000023322 00000 n
+0000023362 00000 n
+0000922492 00000 n
+0001212062 00000 n
+0000023412 00000 n
+0000023452 00000 n
+0000932500 00000 n
+0001211969 00000 n
+0000023502 00000 n
+0000023532 00000 n
+0000940973 00000 n
+0001211876 00000 n
+0000023582 00000 n
+0000023625 00000 n
+0000941427 00000 n
+0001211783 00000 n
+0000023675 00000 n
+0000023708 00000 n
+0000955679 00000 n
+0001211690 00000 n
0000023758 00000 n
-0000970689 00000 n
-0001201918 00000 n
-0000023808 00000 n
-0000023845 00000 n
-0000973901 00000 n
-0001201825 00000 n
-0000023895 00000 n
-0000023932 00000 n
-0000977464 00000 n
-0001201732 00000 n
-0000023982 00000 n
-0000024015 00000 n
-0000979620 00000 n
-0001201639 00000 n
-0000024065 00000 n
-0000024099 00000 n
-0000982335 00000 n
-0001201546 00000 n
-0000024149 00000 n
-0000024188 00000 n
-0000982852 00000 n
-0001201467 00000 n
-0000024238 00000 n
-0000024272 00000 n
-0000024645 00000 n
-0000024767 00000 n
-0000289568 00000 n
-0000024325 00000 n
-0000289442 00000 n
-0000289505 00000 n
-0001195528 00000 n
-0001169386 00000 n
-0001195354 00000 n
-0001196574 00000 n
-0000026076 00000 n
-0000026269 00000 n
-0000026349 00000 n
-0000026386 00000 n
-0000026467 00000 n
-0000026591 00000 n
-0000026850 00000 n
-0000027209 00000 n
-0000027241 00000 n
-0000027335 00000 n
-0000028368 00000 n
-0000039504 00000 n
-0000105094 00000 n
-0000170684 00000 n
-0000236274 00000 n
-0000291008 00000 n
-0000290823 00000 n
-0000289668 00000 n
-0000290945 00000 n
-0001168150 00000 n
-0001141531 00000 n
-0001167976 00000 n
-0001140846 00000 n
-0001138701 00000 n
-0001140682 00000 n
-0000302775 00000 n
-0000294059 00000 n
-0000291093 00000 n
-0000302649 00000 n
-0000302712 00000 n
-0000294625 00000 n
-0000294779 00000 n
-0000294936 00000 n
-0000295093 00000 n
-0000295250 00000 n
-0000295407 00000 n
-0000295569 00000 n
-0000295731 00000 n
-0000295892 00000 n
-0000296054 00000 n
-0000296221 00000 n
-0000296388 00000 n
-0000296553 00000 n
-0000296715 00000 n
-0000296881 00000 n
-0000297043 00000 n
-0000297197 00000 n
-0000297354 00000 n
-0000297511 00000 n
-0000297668 00000 n
-0000297825 00000 n
-0000297983 00000 n
-0000298139 00000 n
-0000298297 00000 n
-0000298460 00000 n
-0000298623 00000 n
-0000298781 00000 n
-0000298937 00000 n
-0000299099 00000 n
-0000299267 00000 n
-0000299435 00000 n
-0000299598 00000 n
-0000299754 00000 n
-0000299912 00000 n
-0000300070 00000 n
-0000300233 00000 n
-0000300391 00000 n
-0000300549 00000 n
-0000300711 00000 n
-0000300869 00000 n
-0000301032 00000 n
-0000301200 00000 n
-0000301368 00000 n
-0000301531 00000 n
-0000301694 00000 n
-0000301857 00000 n
-0000302019 00000 n
-0000302182 00000 n
-0000302338 00000 n
-0000302494 00000 n
-0000316282 00000 n
-0000306214 00000 n
-0000302860 00000 n
-0000316217 00000 n
-0001138113 00000 n
-0001120692 00000 n
-0001137927 00000 n
-0000306864 00000 n
-0000307028 00000 n
-0000307191 00000 n
-0000307355 00000 n
-0000307514 00000 n
-0000307678 00000 n
-0000307842 00000 n
-0000308006 00000 n
-0000308170 00000 n
-0000308334 00000 n
-0000308498 00000 n
-0000308662 00000 n
-0000308826 00000 n
-0000308990 00000 n
-0000309155 00000 n
-0000309320 00000 n
-0000309485 00000 n
-0000309650 00000 n
-0000309810 00000 n
-0000309975 00000 n
-0000310139 00000 n
-0000310299 00000 n
-0000310464 00000 n
-0000310634 00000 n
-0000310804 00000 n
-0000310974 00000 n
-0000311138 00000 n
-0000311307 00000 n
-0000311477 00000 n
-0000311647 00000 n
-0000311811 00000 n
-0000311976 00000 n
-0000312141 00000 n
-0000312306 00000 n
-0000312466 00000 n
-0000312631 00000 n
-0000312796 00000 n
-0000312953 00000 n
-0000313112 00000 n
-0000313271 00000 n
-0000313427 00000 n
-0000313586 00000 n
-0000313750 00000 n
-0000313919 00000 n
-0000314088 00000 n
-0000314252 00000 n
-0000314421 00000 n
-0000314590 00000 n
-0000314749 00000 n
-0000314913 00000 n
-0000315077 00000 n
-0000315241 00000 n
-0000315405 00000 n
-0000315568 00000 n
-0000315732 00000 n
-0000315894 00000 n
-0000316055 00000 n
-0000330440 00000 n
-0000319891 00000 n
-0000316382 00000 n
-0000330375 00000 n
-0000320559 00000 n
-0000320723 00000 n
-0000320892 00000 n
-0000321061 00000 n
-0000321229 00000 n
-0000321393 00000 n
-0000321557 00000 n
-0000321721 00000 n
-0000321885 00000 n
-0000322049 00000 n
-0000322212 00000 n
-0000322381 00000 n
-0000322550 00000 n
-0000322718 00000 n
-0000322887 00000 n
-0000323056 00000 n
-0000323225 00000 n
-0000323394 00000 n
-0000323563 00000 n
-0000323731 00000 n
-0000323901 00000 n
-0000324071 00000 n
-0000324241 00000 n
-0000324411 00000 n
-0000324581 00000 n
-0000324751 00000 n
-0000324921 00000 n
-0000325091 00000 n
-0000325261 00000 n
-0000325431 00000 n
-0000325600 00000 n
-0000325764 00000 n
-0000325928 00000 n
-0000326092 00000 n
-0000326256 00000 n
-0000326420 00000 n
-0000326583 00000 n
-0000326747 00000 n
-0000326911 00000 n
-0000327074 00000 n
-0000327238 00000 n
-0000327402 00000 n
-0000327566 00000 n
-0000327735 00000 n
-0000327904 00000 n
-0000328072 00000 n
-0000328241 00000 n
-0000328399 00000 n
-0000328561 00000 n
-0000328729 00000 n
-0000328896 00000 n
-0000329059 00000 n
-0000329222 00000 n
-0000329385 00000 n
-0000329548 00000 n
-0000329716 00000 n
-0000329884 00000 n
-0000330050 00000 n
-0000330215 00000 n
-0000343626 00000 n
-0000334053 00000 n
-0000330540 00000 n
-0000343561 00000 n
-0000334685 00000 n
-0000334848 00000 n
-0000335006 00000 n
-0000335174 00000 n
-0000335337 00000 n
-0000335505 00000 n
-0000335673 00000 n
-0000335841 00000 n
-0001119801 00000 n
-0001098467 00000 n
-0001119625 00000 n
-0000336007 00000 n
-0000336174 00000 n
-0000336330 00000 n
-0000336487 00000 n
-0000336645 00000 n
-0000336808 00000 n
-0000336971 00000 n
-0000337129 00000 n
-0000337285 00000 n
-0000337443 00000 n
-0000337606 00000 n
-0000337764 00000 n
-0000337922 00000 n
-0000338079 00000 n
-0000338237 00000 n
-0000338400 00000 n
-0000338557 00000 n
-0000338719 00000 n
-0000338877 00000 n
-0000339040 00000 n
-0000339203 00000 n
-0000339366 00000 n
-0000339524 00000 n
-0000339687 00000 n
-0000339850 00000 n
-0000340013 00000 n
-0000340176 00000 n
-0000340339 00000 n
-0000340502 00000 n
-0000340670 00000 n
-0000340838 00000 n
-0000341005 00000 n
-0000341172 00000 n
-0000341340 00000 n
-0000341508 00000 n
-0000341671 00000 n
-0000341827 00000 n
-0000341985 00000 n
-0000342143 00000 n
-0000342301 00000 n
-0000342459 00000 n
-0000342617 00000 n
-0000342775 00000 n
-0000342933 00000 n
-0000343091 00000 n
-0000343247 00000 n
-0000343404 00000 n
-0000347103 00000 n
-0000344719 00000 n
-0000343740 00000 n
-0000347038 00000 n
-0000344974 00000 n
-0000345133 00000 n
-0000345292 00000 n
-0000345450 00000 n
-0000345609 00000 n
-0000345768 00000 n
-0001097488 00000 n
-0001077361 00000 n
-0001097313 00000 n
-0000345927 00000 n
-0000346086 00000 n
-0000346245 00000 n
-0000346403 00000 n
-0000346562 00000 n
-0000346720 00000 n
-0000346879 00000 n
-0001196695 00000 n
-0000350226 00000 n
-0000349459 00000 n
-0000347204 00000 n
-0000349647 00000 n
-0000349775 00000 n
-0000349903 00000 n
-0000350031 00000 n
-0000350096 00000 n
-0000350161 00000 n
-0001076519 00000 n
-0001057819 00000 n
-0001076344 00000 n
-0000354763 00000 n
-0000353622 00000 n
-0000350354 00000 n
-0000354124 00000 n
-0000354189 00000 n
-0000354316 00000 n
-0000354444 00000 n
-0000354572 00000 n
-0000353778 00000 n
-0000353972 00000 n
-0000354698 00000 n
-0000723202 00000 n
-0000784334 00000 n
-0000359445 00000 n
-0000358387 00000 n
-0000354891 00000 n
-0000358868 00000 n
-0000358996 00000 n
-0000358543 00000 n
-0000358706 00000 n
-0000359124 00000 n
-0000359252 00000 n
-0000359380 00000 n
-0000375242 00000 n
-0000362686 00000 n
-0000362111 00000 n
-0000359573 00000 n
-0000362237 00000 n
-0000362365 00000 n
-0000362493 00000 n
-0000362621 00000 n
-0000366144 00000 n
-0000364978 00000 n
-0000362800 00000 n
-0000365440 00000 n
-0000365568 00000 n
-0000365696 00000 n
-0000365824 00000 n
-0000365952 00000 n
-0000365134 00000 n
-0000365287 00000 n
-0000366079 00000 n
-0000639921 00000 n
-0000367221 00000 n
-0000366902 00000 n
-0000366230 00000 n
-0000367028 00000 n
-0000367156 00000 n
-0001196820 00000 n
-0000369264 00000 n
-0000368561 00000 n
-0000367321 00000 n
-0000368687 00000 n
-0000368815 00000 n
-0000368942 00000 n
-0000369070 00000 n
-0000369199 00000 n
-0000371843 00000 n
-0000371213 00000 n
-0000369364 00000 n
-0000371519 00000 n
-0000371648 00000 n
-0000371713 00000 n
-0000371778 00000 n
-0000371360 00000 n
-0000616618 00000 n
-0000375436 00000 n
-0000374731 00000 n
-0000371957 00000 n
-0000374857 00000 n
-0000374986 00000 n
-0000375113 00000 n
-0001057097 00000 n
-0001043720 00000 n
-0001056918 00000 n
-0000375371 00000 n
-0000380091 00000 n
-0000379201 00000 n
-0000375564 00000 n
-0000380026 00000 n
-0001043119 00000 n
-0001030698 00000 n
-0001042940 00000 n
-0000379375 00000 n
-0000379530 00000 n
-0000379700 00000 n
-0000379855 00000 n
-0000531610 00000 n
-0000712551 00000 n
-0000383692 00000 n
-0000383501 00000 n
-0000380260 00000 n
-0000383627 00000 n
-0000387911 00000 n
-0000387720 00000 n
-0000383847 00000 n
-0000387846 00000 n
-0001030343 00000 n
-0001028344 00000 n
-0001030178 00000 n
-0001196945 00000 n
-0000392039 00000 n
-0000391640 00000 n
-0000388081 00000 n
-0000391974 00000 n
-0000391787 00000 n
-0000496077 00000 n
-0000393602 00000 n
-0000393153 00000 n
-0000392167 00000 n
-0000393279 00000 n
-0000393408 00000 n
-0000393472 00000 n
-0000393537 00000 n
-0000396369 00000 n
-0000398959 00000 n
-0000396204 00000 n
-0000393716 00000 n
-0000398507 00000 n
-0000398636 00000 n
-0000398765 00000 n
-0000398012 00000 n
-0000398174 00000 n
-0001027438 00000 n
-0001017418 00000 n
-0001027264 00000 n
-0001016854 00000 n
-0001007768 00000 n
-0001016679 00000 n
-0000398894 00000 n
-0000398336 00000 n
-0000397841 00000 n
-0000397899 00000 n
-0000397989 00000 n
-0000552782 00000 n
-0000593746 00000 n
-0000403726 00000 n
-0000402790 00000 n
-0000399130 00000 n
-0000403274 00000 n
-0000403403 00000 n
-0000403532 00000 n
-0000402946 00000 n
-0000403112 00000 n
-0000403661 00000 n
-0000788365 00000 n
-0000407644 00000 n
-0000407135 00000 n
-0000403882 00000 n
-0000407450 00000 n
-0000407579 00000 n
-0000407282 00000 n
-0000408792 00000 n
-0000408601 00000 n
-0000407785 00000 n
-0000408727 00000 n
-0001197070 00000 n
-0000410658 00000 n
-0000410338 00000 n
-0000408893 00000 n
-0000410464 00000 n
-0000410593 00000 n
-0000413953 00000 n
-0000413118 00000 n
-0000410772 00000 n
-0000413244 00000 n
-0000413373 00000 n
-0000413502 00000 n
-0000413630 00000 n
-0000413759 00000 n
-0000413888 00000 n
-0000418007 00000 n
-0000417111 00000 n
-0000414095 00000 n
-0000417428 00000 n
-0000417557 00000 n
-0000417685 00000 n
-0000417258 00000 n
-0000417813 00000 n
-0000417942 00000 n
-0000422034 00000 n
-0000421456 00000 n
-0000418148 00000 n
-0000421582 00000 n
-0000421711 00000 n
-0000421840 00000 n
-0000421969 00000 n
-0000425961 00000 n
-0000425512 00000 n
-0000422176 00000 n
-0000425638 00000 n
-0000425767 00000 n
-0000425896 00000 n
-0000428274 00000 n
-0000428083 00000 n
-0000426089 00000 n
-0000428209 00000 n
-0001197195 00000 n
-0000431542 00000 n
-0000430964 00000 n
-0000428418 00000 n
-0000431090 00000 n
-0001007493 00000 n
-0001004134 00000 n
-0001007314 00000 n
-0000431219 00000 n
-0000431348 00000 n
-0000431477 00000 n
-0000435809 00000 n
-0000435130 00000 n
+0000023787 00000 n
+0000974104 00000 n
+0001211597 00000 n
+0000023837 00000 n
+0000023871 00000 n
+0000979694 00000 n
+0001211504 00000 n
+0000023921 00000 n
+0000023958 00000 n
+0000982902 00000 n
+0001211411 00000 n
+0000024008 00000 n
+0000024045 00000 n
+0000988586 00000 n
+0001211318 00000 n
+0000024095 00000 n
+0000024128 00000 n
+0000989040 00000 n
+0001211225 00000 n
+0000024178 00000 n
+0000024212 00000 n
+0000991752 00000 n
+0001211132 00000 n
+0000024262 00000 n
+0000024301 00000 n
+0000993865 00000 n
+0001211053 00000 n
+0000024351 00000 n
+0000024385 00000 n
+0000024758 00000 n
+0000024880 00000 n
+0000289681 00000 n
+0000024438 00000 n
+0000289555 00000 n
+0000289618 00000 n
+0001205007 00000 n
+0001178865 00000 n
+0001204833 00000 n
+0001206053 00000 n
+0000026189 00000 n
+0000026382 00000 n
+0000026462 00000 n
+0000026499 00000 n
+0000026580 00000 n
+0000026704 00000 n
+0000026963 00000 n
+0000027322 00000 n
+0000027354 00000 n
+0000027448 00000 n
+0000028481 00000 n
+0000039617 00000 n
+0000105207 00000 n
+0000170797 00000 n
+0000236387 00000 n
+0000291121 00000 n
+0000290936 00000 n
+0000289781 00000 n
+0000291058 00000 n
+0001177629 00000 n
+0001151010 00000 n
+0001177455 00000 n
+0001150325 00000 n
+0001148180 00000 n
+0001150161 00000 n
+0000302898 00000 n
+0000294171 00000 n
+0000291206 00000 n
+0000302772 00000 n
+0000302835 00000 n
+0000294741 00000 n
+0000294895 00000 n
+0000295052 00000 n
+0000295209 00000 n
+0000295366 00000 n
+0000295523 00000 n
+0000295685 00000 n
+0000295847 00000 n
+0000296008 00000 n
+0000296170 00000 n
+0000296337 00000 n
+0000296504 00000 n
+0000296669 00000 n
+0000296831 00000 n
+0000296997 00000 n
+0000297160 00000 n
+0000297315 00000 n
+0000297473 00000 n
+0000297631 00000 n
+0000297788 00000 n
+0000297945 00000 n
+0000298103 00000 n
+0000298259 00000 n
+0000298417 00000 n
+0000298580 00000 n
+0000298743 00000 n
+0000298901 00000 n
+0000299057 00000 n
+0000299219 00000 n
+0000299387 00000 n
+0000299555 00000 n
+0000299718 00000 n
+0000299874 00000 n
+0000300032 00000 n
+0000300190 00000 n
+0000300353 00000 n
+0000300511 00000 n
+0000300669 00000 n
+0000300832 00000 n
+0000300990 00000 n
+0000301153 00000 n
+0000301321 00000 n
+0000301489 00000 n
+0000301652 00000 n
+0000301815 00000 n
+0000301978 00000 n
+0000302141 00000 n
+0000302304 00000 n
+0000302460 00000 n
+0000302616 00000 n
+0000316405 00000 n
+0000306338 00000 n
+0000302983 00000 n
+0000316340 00000 n
+0001147592 00000 n
+0001130171 00000 n
+0001147406 00000 n
+0000306988 00000 n
+0000307152 00000 n
+0000307316 00000 n
+0000307479 00000 n
+0000307638 00000 n
+0000307802 00000 n
+0000307966 00000 n
+0000308130 00000 n
+0000308294 00000 n
+0000308458 00000 n
+0000308622 00000 n
+0000308786 00000 n
+0000308950 00000 n
+0000309114 00000 n
+0000309279 00000 n
+0000309444 00000 n
+0000309609 00000 n
+0000309774 00000 n
+0000309934 00000 n
+0000310099 00000 n
+0000310263 00000 n
+0000310423 00000 n
+0000310588 00000 n
+0000310757 00000 n
+0000310927 00000 n
+0000311097 00000 n
+0000311262 00000 n
+0000311431 00000 n
+0000311601 00000 n
+0000311771 00000 n
+0000311935 00000 n
+0000312100 00000 n
+0000312265 00000 n
+0000312430 00000 n
+0000312589 00000 n
+0000312754 00000 n
+0000312919 00000 n
+0000313076 00000 n
+0000313235 00000 n
+0000313394 00000 n
+0000313550 00000 n
+0000313709 00000 n
+0000313873 00000 n
+0000314042 00000 n
+0000314211 00000 n
+0000314375 00000 n
+0000314544 00000 n
+0000314713 00000 n
+0000314872 00000 n
+0000315036 00000 n
+0000315200 00000 n
+0000315364 00000 n
+0000315528 00000 n
+0000315691 00000 n
+0000315855 00000 n
+0000316017 00000 n
+0000316178 00000 n
+0000330524 00000 n
+0000319967 00000 n
+0000316505 00000 n
+0000330459 00000 n
+0000320635 00000 n
+0000320799 00000 n
+0000320968 00000 n
+0000321137 00000 n
+0000321305 00000 n
+0000321469 00000 n
+0000321633 00000 n
+0000321797 00000 n
+0000321961 00000 n
+0000322125 00000 n
+0000322289 00000 n
+0000322458 00000 n
+0000322627 00000 n
+0000322795 00000 n
+0000322964 00000 n
+0000323133 00000 n
+0000323302 00000 n
+0000323471 00000 n
+0000323640 00000 n
+0000323808 00000 n
+0000323978 00000 n
+0000324148 00000 n
+0000324318 00000 n
+0000324488 00000 n
+0000324658 00000 n
+0000324828 00000 n
+0000324998 00000 n
+0000325168 00000 n
+0000325337 00000 n
+0000325507 00000 n
+0000325676 00000 n
+0000325846 00000 n
+0000326010 00000 n
+0000326174 00000 n
+0000326338 00000 n
+0000326502 00000 n
+0000326666 00000 n
+0000326830 00000 n
+0000326994 00000 n
+0000327157 00000 n
+0000327321 00000 n
+0000327485 00000 n
+0000327649 00000 n
+0000327813 00000 n
+0000327982 00000 n
+0000328150 00000 n
+0000328319 00000 n
+0000328488 00000 n
+0000328645 00000 n
+0000328808 00000 n
+0000328975 00000 n
+0000329143 00000 n
+0000329306 00000 n
+0000329469 00000 n
+0000329632 00000 n
+0000329795 00000 n
+0000329963 00000 n
+0000330129 00000 n
+0000330294 00000 n
+0000343771 00000 n
+0000334192 00000 n
+0000330624 00000 n
+0000343706 00000 n
+0000334824 00000 n
+0000334987 00000 n
+0000335150 00000 n
+0000335308 00000 n
+0000335476 00000 n
+0000335639 00000 n
+0000335807 00000 n
+0000335975 00000 n
+0000336142 00000 n
+0001129280 00000 n
+0001107946 00000 n
+0001129104 00000 n
+0000336309 00000 n
+0000336477 00000 n
+0000336633 00000 n
+0000336791 00000 n
+0000336949 00000 n
+0000337112 00000 n
+0000337275 00000 n
+0000337433 00000 n
+0000337589 00000 n
+0000337747 00000 n
+0000337910 00000 n
+0000338068 00000 n
+0000338226 00000 n
+0000338383 00000 n
+0000338541 00000 n
+0000338703 00000 n
+0000338860 00000 n
+0000339023 00000 n
+0000339181 00000 n
+0000339344 00000 n
+0000339507 00000 n
+0000339670 00000 n
+0000339828 00000 n
+0000339991 00000 n
+0000340154 00000 n
+0000340317 00000 n
+0000340480 00000 n
+0000340643 00000 n
+0000340806 00000 n
+0000340974 00000 n
+0000341141 00000 n
+0000341308 00000 n
+0000341476 00000 n
+0000341644 00000 n
+0000341812 00000 n
+0000341974 00000 n
+0000342131 00000 n
+0000342289 00000 n
+0000342447 00000 n
+0000342605 00000 n
+0000342763 00000 n
+0000342921 00000 n
+0000343079 00000 n
+0000343237 00000 n
+0000343393 00000 n
+0000343549 00000 n
+0000347466 00000 n
+0000344914 00000 n
+0000343885 00000 n
+0000347401 00000 n
+0000345178 00000 n
+0000345337 00000 n
+0000345496 00000 n
+0000345654 00000 n
+0000345813 00000 n
+0000345972 00000 n
+0000346131 00000 n
+0001106967 00000 n
+0001086840 00000 n
+0001106792 00000 n
+0000346290 00000 n
+0000346449 00000 n
+0000346607 00000 n
+0000346766 00000 n
+0000346924 00000 n
+0000347083 00000 n
+0000347242 00000 n
+0001206174 00000 n
+0000350589 00000 n
+0000349822 00000 n
+0000347567 00000 n
+0000350010 00000 n
+0000350138 00000 n
+0000350266 00000 n
+0000350394 00000 n
+0000350459 00000 n
+0000350524 00000 n
+0001085998 00000 n
+0001067298 00000 n
+0001085823 00000 n
+0000355126 00000 n
+0000353985 00000 n
+0000350717 00000 n
+0000354487 00000 n
+0000354552 00000 n
+0000354679 00000 n
+0000354807 00000 n
+0000354935 00000 n
+0000354141 00000 n
+0000354335 00000 n
+0000355061 00000 n
+0000721448 00000 n
+0000782640 00000 n
+0000359808 00000 n
+0000358750 00000 n
+0000355254 00000 n
+0000359231 00000 n
+0000359359 00000 n
+0000358906 00000 n
+0000359069 00000 n
+0000359487 00000 n
+0000359615 00000 n
+0000359743 00000 n
+0000375605 00000 n
+0000363049 00000 n
+0000362474 00000 n
+0000359936 00000 n
+0000362600 00000 n
+0000362728 00000 n
+0000362856 00000 n
+0000362984 00000 n
+0000366507 00000 n
+0000365341 00000 n
+0000363163 00000 n
+0000365803 00000 n
+0000365931 00000 n
+0000366059 00000 n
+0000366187 00000 n
+0000366315 00000 n
+0000365497 00000 n
+0000365650 00000 n
+0000366442 00000 n
+0000627518 00000 n
+0000367584 00000 n
+0000367265 00000 n
+0000366593 00000 n
+0000367391 00000 n
+0000367519 00000 n
+0001206299 00000 n
+0000369627 00000 n
+0000368924 00000 n
+0000367684 00000 n
+0000369050 00000 n
+0000369178 00000 n
+0000369305 00000 n
+0000369433 00000 n
+0000369562 00000 n
+0000372206 00000 n
+0000371576 00000 n
+0000369727 00000 n
+0000371882 00000 n
+0000372011 00000 n
+0000372076 00000 n
+0000372141 00000 n
+0000371723 00000 n
+0000604772 00000 n
+0000375799 00000 n
+0000375094 00000 n
+0000372320 00000 n
+0000375220 00000 n
+0000375349 00000 n
+0000375476 00000 n
+0001066576 00000 n
+0001053199 00000 n
+0001066397 00000 n
+0000375734 00000 n
+0000380671 00000 n
+0000380110 00000 n
+0000375927 00000 n
+0000380606 00000 n
+0000380266 00000 n
+0000380420 00000 n
+0000955743 00000 n
+0000485787 00000 n
+0000382913 00000 n
+0000382465 00000 n
+0000380826 00000 n
+0000382591 00000 n
+0000382719 00000 n
+0000382784 00000 n
+0000382849 00000 n
+0000383382 00000 n
+0000383191 00000 n
+0000383041 00000 n
+0000383317 00000 n
+0001206424 00000 n
+0000386078 00000 n
+0000388668 00000 n
+0000385913 00000 n
+0000383424 00000 n
+0000388216 00000 n
+0000388345 00000 n
+0000388474 00000 n
+0000387721 00000 n
+0000387883 00000 n
+0001052293 00000 n
+0001042273 00000 n
+0001052119 00000 n
+0001041709 00000 n
+0001032622 00000 n
+0001041534 00000 n
+0000388603 00000 n
+0000388045 00000 n
+0000387550 00000 n
+0000387608 00000 n
+0000387698 00000 n
+0000541930 00000 n
+0000582017 00000 n
+0000710797 00000 n
+0000393435 00000 n
+0000392499 00000 n
+0000388839 00000 n
+0000392983 00000 n
+0000393112 00000 n
+0001032021 00000 n
+0001019599 00000 n
+0001031842 00000 n
+0000393241 00000 n
+0000392655 00000 n
+0000392821 00000 n
+0000393370 00000 n
+0000786671 00000 n
+0000397354 00000 n
+0000396845 00000 n
+0000393591 00000 n
+0000397160 00000 n
+0000397289 00000 n
+0000396992 00000 n
+0000398502 00000 n
+0000398311 00000 n
+0000397495 00000 n
+0000398437 00000 n
+0000400368 00000 n
+0000400048 00000 n
+0000398603 00000 n
+0000400174 00000 n
+0000400303 00000 n
+0000403663 00000 n
+0000402828 00000 n
+0000400482 00000 n
+0000402954 00000 n
+0000403083 00000 n
+0000403212 00000 n
+0000403340 00000 n
+0000403469 00000 n
+0000403598 00000 n
+0001206549 00000 n
+0000407717 00000 n
+0000406821 00000 n
+0000403805 00000 n
+0000407138 00000 n
+0000407267 00000 n
+0000407395 00000 n
+0000406968 00000 n
+0000407523 00000 n
+0000407652 00000 n
+0000411744 00000 n
+0000411166 00000 n
+0000407858 00000 n
+0000411292 00000 n
+0000411421 00000 n
+0000411550 00000 n
+0000411679 00000 n
+0000415671 00000 n
+0000415222 00000 n
+0000411886 00000 n
+0000415348 00000 n
+0000415477 00000 n
+0000415606 00000 n
+0000417984 00000 n
+0000417793 00000 n
+0000415799 00000 n
+0000417919 00000 n
+0000421253 00000 n
+0000420675 00000 n
+0000418128 00000 n
+0000420801 00000 n
+0001019324 00000 n
+0001015966 00000 n
+0001019145 00000 n
+0000420930 00000 n
+0000421059 00000 n
+0000421188 00000 n
+0000425521 00000 n
+0000424842 00000 n
+0000421424 00000 n
+0000425327 00000 n
+0000425456 00000 n
+0001015611 00000 n
+0001013613 00000 n
+0001015446 00000 n
+0000424998 00000 n
+0000425162 00000 n
+0001206674 00000 n
+0000875141 00000 n
+0000892172 00000 n
+0000428887 00000 n
+0000428183 00000 n
+0000425649 00000 n
+0000428309 00000 n
+0000428438 00000 n
+0000428567 00000 n
+0000428696 00000 n
+0000428823 00000 n
+0000432292 00000 n
+0000431329 00000 n
+0000429001 00000 n
+0000431455 00000 n
+0000431584 00000 n
0000431713 00000 n
-0000435615 00000 n
-0000435744 00000 n
-0000435286 00000 n
-0000435450 00000 n
-0000876654 00000 n
-0000893684 00000 n
-0000439175 00000 n
-0000438471 00000 n
-0000435937 00000 n
-0000438597 00000 n
-0000438726 00000 n
-0000438855 00000 n
-0000438984 00000 n
-0000439111 00000 n
-0000442580 00000 n
-0000441617 00000 n
-0000439289 00000 n
-0000441743 00000 n
-0000441872 00000 n
-0000442001 00000 n
-0000442129 00000 n
-0000442258 00000 n
-0000442386 00000 n
-0000442515 00000 n
-0000446702 00000 n
-0000445943 00000 n
-0000442708 00000 n
-0000446250 00000 n
-0000446379 00000 n
-0000446508 00000 n
-0000446090 00000 n
-0000446637 00000 n
-0000669800 00000 n
-0000450233 00000 n
-0000449784 00000 n
-0000446816 00000 n
-0000449910 00000 n
-0000450039 00000 n
-0000450168 00000 n
-0001197320 00000 n
-0000453029 00000 n
-0000452581 00000 n
-0000450403 00000 n
-0000452707 00000 n
-0000452836 00000 n
-0000452964 00000 n
-0000455747 00000 n
-0000455427 00000 n
-0000453186 00000 n
-0000455553 00000 n
-0000455682 00000 n
-0000458655 00000 n
-0000457819 00000 n
-0000455861 00000 n
-0000457945 00000 n
-0000458074 00000 n
-0000458203 00000 n
-0000458332 00000 n
-0000458461 00000 n
-0000458590 00000 n
-0000461287 00000 n
-0000460967 00000 n
-0000458769 00000 n
-0000461093 00000 n
-0000461222 00000 n
-0000467005 00000 n
-0000464225 00000 n
-0000463776 00000 n
-0000461401 00000 n
-0000463902 00000 n
-0000464031 00000 n
-0000464160 00000 n
-0000468544 00000 n
-0000466858 00000 n
-0000464353 00000 n
-0000468092 00000 n
-0000468221 00000 n
-0000467931 00000 n
-0000468350 00000 n
-0000468479 00000 n
-0001197445 00000 n
-0000784076 00000 n
-0000471287 00000 n
-0000470709 00000 n
-0000468715 00000 n
-0000470835 00000 n
-0000470964 00000 n
-0000471093 00000 n
-0000471222 00000 n
-0000471728 00000 n
-0000471537 00000 n
-0000471387 00000 n
-0000471663 00000 n
-0000475815 00000 n
-0000475049 00000 n
-0000471770 00000 n
-0000475363 00000 n
-0000475492 00000 n
-0000475620 00000 n
-0000475685 00000 n
-0000475750 00000 n
-0000475196 00000 n
-0000484045 00000 n
-0000480510 00000 n
-0000480319 00000 n
-0000475915 00000 n
-0000480445 00000 n
-0000484497 00000 n
-0000483790 00000 n
-0000480652 00000 n
-0000483916 00000 n
-0000484174 00000 n
-0000484303 00000 n
-0000484432 00000 n
-0000487416 00000 n
-0000486710 00000 n
-0000484638 00000 n
-0000486836 00000 n
-0000486965 00000 n
-0000487094 00000 n
-0000487223 00000 n
-0000487288 00000 n
-0000487352 00000 n
-0001197570 00000 n
-0000490785 00000 n
-0000490209 00000 n
-0000487573 00000 n
-0000490335 00000 n
-0000490463 00000 n
-0000490592 00000 n
-0000490656 00000 n
-0000490720 00000 n
-0000496142 00000 n
-0000495354 00000 n
-0000490899 00000 n
-0000495820 00000 n
-0000495949 00000 n
-0000495510 00000 n
-0000495661 00000 n
-0000985113 00000 n
-0000500128 00000 n
-0000498728 00000 n
-0000496283 00000 n
-0000499419 00000 n
-0000499548 00000 n
-0000499677 00000 n
-0000499806 00000 n
-0000499935 00000 n
-0000498893 00000 n
-0000499045 00000 n
-0000499232 00000 n
-0000500063 00000 n
-0000503956 00000 n
-0000503507 00000 n
-0000500256 00000 n
-0000503633 00000 n
-0000503762 00000 n
-0000503891 00000 n
-0000508184 00000 n
-0000507805 00000 n
-0000504084 00000 n
-0000508119 00000 n
-0000507952 00000 n
-0000510692 00000 n
-0000510885 00000 n
-0000510437 00000 n
-0000508298 00000 n
-0000510563 00000 n
-0000510757 00000 n
-0000510821 00000 n
-0001197695 00000 n
-0000514189 00000 n
-0000513998 00000 n
-0000510999 00000 n
-0000514124 00000 n
-0000517789 00000 n
-0000517343 00000 n
-0000514303 00000 n
-0000517469 00000 n
-0000517596 00000 n
-0000517661 00000 n
-0000517725 00000 n
-0000520890 00000 n
-0000520570 00000 n
-0000517903 00000 n
-0000520696 00000 n
-0000520825 00000 n
-0000524177 00000 n
-0000523136 00000 n
-0000521004 00000 n
-0000523596 00000 n
-0000523725 00000 n
-0000523292 00000 n
-0000523445 00000 n
-0000523854 00000 n
-0000523983 00000 n
-0000524112 00000 n
-0000525695 00000 n
-0000525504 00000 n
-0000524291 00000 n
-0000525630 00000 n
-0000527275 00000 n
-0000527084 00000 n
-0000525796 00000 n
-0000527210 00000 n
-0001197820 00000 n
-0000528717 00000 n
-0000528526 00000 n
-0000527376 00000 n
-0000528652 00000 n
-0000531674 00000 n
-0000531355 00000 n
-0000528818 00000 n
-0000531481 00000 n
-0000535819 00000 n
-0000535628 00000 n
-0000531802 00000 n
-0000535754 00000 n
-0000540252 00000 n
-0000539704 00000 n
-0000535961 00000 n
-0000540187 00000 n
-0000539860 00000 n
-0000540017 00000 n
-0000752239 00000 n
-0000544577 00000 n
-0000544178 00000 n
-0000540380 00000 n
-0000544512 00000 n
-0000544325 00000 n
-0000548943 00000 n
-0000548396 00000 n
-0000544719 00000 n
-0000548878 00000 n
-0000548552 00000 n
-0000548723 00000 n
-0001197945 00000 n
-0000552975 00000 n
-0000552527 00000 n
-0000549071 00000 n
-0000552653 00000 n
-0000552845 00000 n
-0000552910 00000 n
-0000557460 00000 n
-0000557094 00000 n
-0000553089 00000 n
-0000557395 00000 n
-0000557241 00000 n
-0000562172 00000 n
-0000561204 00000 n
-0000557588 00000 n
-0000562107 00000 n
-0000561378 00000 n
-0000561563 00000 n
-0000561737 00000 n
-0000561922 00000 n
-0000655028 00000 n
-0000566399 00000 n
-0000566208 00000 n
-0000562370 00000 n
-0000566334 00000 n
-0000570376 00000 n
-0000570185 00000 n
-0000566513 00000 n
-0000570311 00000 n
-0000574874 00000 n
-0000574197 00000 n
-0000570490 00000 n
-0000574680 00000 n
-0000574353 00000 n
-0000574517 00000 n
-0000574809 00000 n
-0001198070 00000 n
-0000579004 00000 n
-0000578191 00000 n
-0000574988 00000 n
-0000578681 00000 n
-0000578347 00000 n
-0000578810 00000 n
-0000578939 00000 n
-0000578516 00000 n
-0000675536 00000 n
-0000583235 00000 n
-0000582672 00000 n
-0000579175 00000 n
-0000583170 00000 n
-0000582828 00000 n
-0000582999 00000 n
-0000771790 00000 n
-0000586781 00000 n
-0000586333 00000 n
-0000583420 00000 n
-0000586459 00000 n
-0000586588 00000 n
-0000586716 00000 n
-0000589969 00000 n
-0000589778 00000 n
-0000586895 00000 n
-0000589904 00000 n
-0000593811 00000 n
-0000593492 00000 n
-0000590140 00000 n
-0000593618 00000 n
-0000597512 00000 n
-0000597321 00000 n
-0000593968 00000 n
-0000597447 00000 n
-0001198195 00000 n
-0000601936 00000 n
-0000601122 00000 n
-0000597683 00000 n
-0000601613 00000 n
-0000601742 00000 n
-0000601278 00000 n
-0000601871 00000 n
-0000601438 00000 n
-0000606043 00000 n
-0000605547 00000 n
-0000602093 00000 n
-0000605849 00000 n
-0000605978 00000 n
-0000605694 00000 n
-0000609420 00000 n
-0000608971 00000 n
-0000606171 00000 n
-0000609097 00000 n
-0000609226 00000 n
-0000609355 00000 n
-0000613272 00000 n
-0000612607 00000 n
-0000609577 00000 n
-0000613079 00000 n
-0000613207 00000 n
-0000612763 00000 n
-0000612924 00000 n
-0000616813 00000 n
-0000616173 00000 n
-0000613443 00000 n
-0000616489 00000 n
-0000616320 00000 n
-0000616683 00000 n
-0000616748 00000 n
-0000620853 00000 n
-0000620350 00000 n
-0000616998 00000 n
-0000620659 00000 n
-0000620788 00000 n
-0000620497 00000 n
-0001198320 00000 n
-0000625451 00000 n
-0000625077 00000 n
-0000621024 00000 n
-0000625386 00000 n
-0000625224 00000 n
-0000748474 00000 n
-0000629635 00000 n
-0000628998 00000 n
-0000625579 00000 n
-0000629312 00000 n
-0000629441 00000 n
-0000629145 00000 n
-0000629570 00000 n
-0000673734 00000 n
-0000631367 00000 n
-0000631176 00000 n
-0000629776 00000 n
-0000631302 00000 n
-0000633072 00000 n
-0000632881 00000 n
-0000631467 00000 n
-0000633007 00000 n
-0000635769 00000 n
-0000635578 00000 n
-0000633172 00000 n
-0000635704 00000 n
-0000640114 00000 n
-0000639666 00000 n
-0000635939 00000 n
-0000639792 00000 n
-0000640049 00000 n
-0001198445 00000 n
-0000644285 00000 n
-0000643740 00000 n
-0000640228 00000 n
-0000644091 00000 n
-0000643887 00000 n
-0000644220 00000 n
-0000648657 00000 n
-0000648466 00000 n
-0000644426 00000 n
-0000648592 00000 n
-0000651795 00000 n
-0000651604 00000 n
-0000648784 00000 n
-0000651730 00000 n
-0000655093 00000 n
-0000654644 00000 n
-0000651922 00000 n
-0000654770 00000 n
-0000654899 00000 n
-0000659779 00000 n
-0000659118 00000 n
-0000655207 00000 n
-0000659586 00000 n
-0000659274 00000 n
-0000659426 00000 n
-0000659714 00000 n
-0000665556 00000 n
-0000663865 00000 n
-0000659893 00000 n
-0000665104 00000 n
-0000665233 00000 n
-0000664057 00000 n
-0000664232 00000 n
-0000664410 00000 n
-0000664590 00000 n
-0000664769 00000 n
-0000665362 00000 n
-0000665491 00000 n
-0000664950 00000 n
-0001198570 00000 n
-0000669864 00000 n
-0000669416 00000 n
-0000665684 00000 n
-0000669542 00000 n
-0000669671 00000 n
-0000673928 00000 n
-0000673479 00000 n
-0000669992 00000 n
-0000673605 00000 n
-0000673863 00000 n
-0000675601 00000 n
-0000675281 00000 n
-0000674056 00000 n
-0000675407 00000 n
-0000677188 00000 n
-0000676997 00000 n
-0000675715 00000 n
-0000677123 00000 n
-0000678748 00000 n
-0000678557 00000 n
-0000677289 00000 n
-0000678683 00000 n
-0000680575 00000 n
-0000679996 00000 n
-0000678849 00000 n
-0000680122 00000 n
-0000680251 00000 n
-0000680380 00000 n
-0000680445 00000 n
-0000680510 00000 n
-0001198695 00000 n
-0000683579 00000 n
-0000683388 00000 n
-0000680689 00000 n
-0000683514 00000 n
-0000686467 00000 n
-0000686276 00000 n
-0000683693 00000 n
-0000686402 00000 n
-0000690831 00000 n
-0000689686 00000 n
-0000686581 00000 n
-0000690509 00000 n
-0000689860 00000 n
-0000690637 00000 n
-0000690766 00000 n
-0000690028 00000 n
-0000690188 00000 n
-0000690349 00000 n
-0000985080 00000 n
-0000696838 00000 n
-0000694238 00000 n
-0000690959 00000 n
-0000696773 00000 n
-0000694502 00000 n
-0000694664 00000 n
-0000694826 00000 n
-0000694997 00000 n
-0000695159 00000 n
-0000695322 00000 n
-0000695484 00000 n
-0000695647 00000 n
-0000695809 00000 n
-0000695972 00000 n
-0000696134 00000 n
-0000696297 00000 n
-0000696451 00000 n
-0000696614 00000 n
-0000702071 00000 n
-0000700150 00000 n
-0000696966 00000 n
-0000702006 00000 n
-0000700378 00000 n
-0000700541 00000 n
-0000700708 00000 n
-0000700878 00000 n
-0000701040 00000 n
-0000701202 00000 n
-0000701364 00000 n
-0000701526 00000 n
-0000701689 00000 n
-0000701843 00000 n
-0000707284 00000 n
-0000705078 00000 n
-0000702199 00000 n
-0000707219 00000 n
-0000705324 00000 n
-0000705477 00000 n
-0000705631 00000 n
-0000705781 00000 n
-0000705935 00000 n
-0000706097 00000 n
-0000706259 00000 n
-0000706421 00000 n
-0000706583 00000 n
-0000706744 00000 n
-0000706906 00000 n
-0000707067 00000 n
-0001198820 00000 n
-0000712615 00000 n
-0000711097 00000 n
-0000707398 00000 n
-0000712422 00000 n
-0000711298 00000 n
-0000711461 00000 n
-0000711612 00000 n
-0000711777 00000 n
-0000711943 00000 n
-0000712105 00000 n
-0000712259 00000 n
-0000716554 00000 n
-0000716233 00000 n
-0000712757 00000 n
-0000716359 00000 n
-0000716424 00000 n
-0000716489 00000 n
-0000719331 00000 n
-0000719140 00000 n
-0000716696 00000 n
-0000719266 00000 n
-0000723526 00000 n
-0000722457 00000 n
-0000719489 00000 n
-0000722944 00000 n
-0000723073 00000 n
-0000723331 00000 n
-0000722613 00000 n
-0000722783 00000 n
-0000723396 00000 n
-0000723461 00000 n
-0000726978 00000 n
-0000726658 00000 n
-0000723654 00000 n
-0000726784 00000 n
-0000726849 00000 n
-0000726913 00000 n
-0000730463 00000 n
-0000730142 00000 n
-0000727079 00000 n
-0000730268 00000 n
-0000730333 00000 n
-0000730398 00000 n
-0001198945 00000 n
-0000734387 00000 n
-0000733678 00000 n
-0000730578 00000 n
-0000733804 00000 n
-0000733933 00000 n
-0000733998 00000 n
-0000734063 00000 n
-0000734128 00000 n
-0000734193 00000 n
-0000734322 00000 n
-0000738616 00000 n
-0000737779 00000 n
-0000734501 00000 n
-0000737905 00000 n
-0000737970 00000 n
-0000738035 00000 n
-0000738164 00000 n
-0000738229 00000 n
-0000738294 00000 n
-0000738423 00000 n
-0000738488 00000 n
-0000738552 00000 n
-0000741644 00000 n
-0000740942 00000 n
-0000738744 00000 n
-0000741068 00000 n
-0000741195 00000 n
-0000741322 00000 n
-0000741451 00000 n
-0000741579 00000 n
-0000744345 00000 n
-0000743768 00000 n
-0000741843 00000 n
-0000743894 00000 n
-0000744023 00000 n
-0000744152 00000 n
-0000744217 00000 n
-0000744281 00000 n
-0000748539 00000 n
-0000748219 00000 n
-0000744530 00000 n
-0000748345 00000 n
-0000752304 00000 n
-0000751544 00000 n
-0000748666 00000 n
-0000751851 00000 n
-0000751980 00000 n
-0000752045 00000 n
-0000752110 00000 n
-0000751691 00000 n
-0001199070 00000 n
-0000755992 00000 n
-0000755413 00000 n
-0000752418 00000 n
-0000755539 00000 n
-0000755668 00000 n
-0000755797 00000 n
-0000755862 00000 n
-0000755927 00000 n
-0000759614 00000 n
-0000758719 00000 n
-0000756106 00000 n
-0000759031 00000 n
-0000758866 00000 n
-0000759160 00000 n
-0000759225 00000 n
-0000759290 00000 n
-0000759419 00000 n
-0000759484 00000 n
-0000759549 00000 n
-0000985047 00000 n
-0000763714 00000 n
-0000763265 00000 n
-0000759728 00000 n
-0000763391 00000 n
-0000763520 00000 n
-0000763584 00000 n
-0000763649 00000 n
-0000765757 00000 n
-0000765437 00000 n
-0000763842 00000 n
-0000765563 00000 n
-0001003853 00000 n
-0000996569 00000 n
-0001003673 00000 n
-0000765692 00000 n
-0000767669 00000 n
-0000767222 00000 n
-0000765899 00000 n
-0000767348 00000 n
-0000767477 00000 n
-0000767604 00000 n
-0000771855 00000 n
-0000771149 00000 n
-0000767783 00000 n
-0000771275 00000 n
-0000996248 00000 n
-0000987035 00000 n
-0000996062 00000 n
-0000771404 00000 n
-0000771533 00000 n
-0000771661 00000 n
-0001199195 00000 n
-0000772888 00000 n
-0000772697 00000 n
-0000772082 00000 n
-0000772823 00000 n
-0000773316 00000 n
-0000773125 00000 n
-0000772975 00000 n
-0000773251 00000 n
-0000776630 00000 n
-0000775404 00000 n
-0000773358 00000 n
-0000775921 00000 n
-0000776050 00000 n
-0000776179 00000 n
-0000776308 00000 n
-0000776437 00000 n
-0000776566 00000 n
-0000775560 00000 n
-0000775732 00000 n
-0000777085 00000 n
-0000776894 00000 n
-0000776744 00000 n
-0000777020 00000 n
-0000780330 00000 n
-0000779752 00000 n
-0000777127 00000 n
-0000779878 00000 n
-0000780007 00000 n
-0000780136 00000 n
-0000780265 00000 n
-0000784527 00000 n
-0000783308 00000 n
-0000780416 00000 n
-0000783818 00000 n
-0000783947 00000 n
-0000784205 00000 n
-0000783464 00000 n
-0000783643 00000 n
-0000784399 00000 n
-0000784463 00000 n
-0001199320 00000 n
-0000791417 00000 n
-0000787589 00000 n
-0000784683 00000 n
-0000787715 00000 n
-0000787780 00000 n
-0000787845 00000 n
-0000787910 00000 n
-0000787975 00000 n
-0000788040 00000 n
-0000788105 00000 n
-0000788170 00000 n
-0000788235 00000 n
-0000788300 00000 n
-0000788430 00000 n
-0000788495 00000 n
-0000788560 00000 n
-0000788625 00000 n
-0000788690 00000 n
-0000788755 00000 n
-0000788820 00000 n
-0000788885 00000 n
-0000788950 00000 n
-0000789015 00000 n
-0000789080 00000 n
-0000789145 00000 n
-0000789210 00000 n
-0000789275 00000 n
-0000789340 00000 n
-0000789405 00000 n
-0000789470 00000 n
-0000789535 00000 n
-0000789600 00000 n
-0000789665 00000 n
-0000789730 00000 n
-0000789795 00000 n
-0000789860 00000 n
-0000789925 00000 n
-0000789989 00000 n
-0000790054 00000 n
-0000790119 00000 n
-0000790184 00000 n
-0000790249 00000 n
-0000790314 00000 n
-0000790379 00000 n
-0000790444 00000 n
-0000790509 00000 n
-0000790574 00000 n
-0000790639 00000 n
-0000790704 00000 n
-0000790769 00000 n
-0000790834 00000 n
-0000790899 00000 n
-0000790964 00000 n
-0000791029 00000 n
-0000791094 00000 n
-0000791159 00000 n
-0000791224 00000 n
-0000791289 00000 n
-0000791353 00000 n
-0000798065 00000 n
-0000794501 00000 n
-0000791531 00000 n
-0000794627 00000 n
-0000794692 00000 n
-0000794757 00000 n
-0000794822 00000 n
-0000794887 00000 n
-0000794952 00000 n
-0000795017 00000 n
-0000795082 00000 n
-0000795147 00000 n
-0000795212 00000 n
-0000795277 00000 n
-0000795342 00000 n
-0000795406 00000 n
-0000795471 00000 n
-0000795536 00000 n
-0000795601 00000 n
-0000795666 00000 n
-0000795731 00000 n
-0000795796 00000 n
-0000795861 00000 n
-0000795926 00000 n
-0000795991 00000 n
-0000796056 00000 n
-0000796121 00000 n
-0000796185 00000 n
-0000796250 00000 n
-0000796315 00000 n
-0000796380 00000 n
-0000796445 00000 n
-0000796510 00000 n
-0000796575 00000 n
-0000796640 00000 n
-0000796705 00000 n
-0000796770 00000 n
-0000796835 00000 n
-0000796900 00000 n
-0000796965 00000 n
-0000797030 00000 n
-0000797095 00000 n
-0000797160 00000 n
-0000797224 00000 n
-0000797288 00000 n
-0000797352 00000 n
-0000797417 00000 n
-0000797482 00000 n
-0000797547 00000 n
-0000797612 00000 n
-0000797677 00000 n
-0000797742 00000 n
-0000797807 00000 n
-0000797872 00000 n
-0000797937 00000 n
-0000798001 00000 n
-0000804240 00000 n
-0000800802 00000 n
-0000798179 00000 n
-0000800928 00000 n
-0000800993 00000 n
-0000801058 00000 n
-0000801123 00000 n
-0000801188 00000 n
-0000801253 00000 n
-0000801318 00000 n
-0000801383 00000 n
-0000801448 00000 n
-0000801513 00000 n
-0000801578 00000 n
-0000801643 00000 n
-0000801708 00000 n
-0000801773 00000 n
-0000801838 00000 n
-0000801903 00000 n
-0000801968 00000 n
-0000802033 00000 n
-0000802098 00000 n
-0000802163 00000 n
-0000802228 00000 n
-0000802293 00000 n
-0000802358 00000 n
-0000802423 00000 n
-0000802488 00000 n
-0000802553 00000 n
-0000802618 00000 n
-0000802683 00000 n
-0000802748 00000 n
-0000802813 00000 n
-0000802878 00000 n
-0000802943 00000 n
-0000803008 00000 n
-0000803073 00000 n
-0000803137 00000 n
-0000803202 00000 n
-0000803267 00000 n
-0000803332 00000 n
-0000803397 00000 n
-0000803462 00000 n
-0000803527 00000 n
-0000803592 00000 n
-0000803657 00000 n
-0000803722 00000 n
-0000803787 00000 n
-0000803852 00000 n
-0000803917 00000 n
-0000803982 00000 n
-0000804047 00000 n
-0000804112 00000 n
-0000804176 00000 n
-0000809759 00000 n
-0000807363 00000 n
-0000804354 00000 n
-0000807489 00000 n
-0000807554 00000 n
-0000807619 00000 n
-0000807684 00000 n
-0000807749 00000 n
-0000807814 00000 n
-0000807879 00000 n
-0000807944 00000 n
-0000808009 00000 n
-0000808074 00000 n
-0000808139 00000 n
-0000808204 00000 n
-0000808269 00000 n
-0000808333 00000 n
-0000808398 00000 n
-0000808463 00000 n
-0000808528 00000 n
-0000808593 00000 n
-0000808658 00000 n
-0000808723 00000 n
-0000808788 00000 n
-0000808853 00000 n
-0000808918 00000 n
-0000808983 00000 n
-0000809048 00000 n
-0000809176 00000 n
-0000809305 00000 n
-0000809370 00000 n
-0000809435 00000 n
-0000809500 00000 n
-0000809565 00000 n
-0000809694 00000 n
-0000812967 00000 n
-0000812260 00000 n
-0000809886 00000 n
-0000812386 00000 n
-0000812515 00000 n
-0000812644 00000 n
-0000812773 00000 n
-0000812902 00000 n
-0000816459 00000 n
-0000815702 00000 n
-0000813094 00000 n
-0000816009 00000 n
-0000816138 00000 n
-0000815849 00000 n
-0000816266 00000 n
-0000816394 00000 n
-0001199445 00000 n
-0000819703 00000 n
-0000819125 00000 n
-0000816586 00000 n
-0000819251 00000 n
-0000819380 00000 n
-0000819509 00000 n
-0000819638 00000 n
-0000822611 00000 n
-0000822291 00000 n
-0000819817 00000 n
-0000822417 00000 n
-0000822546 00000 n
-0000825201 00000 n
-0000824752 00000 n
-0000822781 00000 n
-0000824878 00000 n
-0000825007 00000 n
-0000825136 00000 n
-0000825642 00000 n
-0000825451 00000 n
-0000825301 00000 n
-0000825577 00000 n
-0000828425 00000 n
-0000827781 00000 n
-0000825684 00000 n
-0000827907 00000 n
-0000828036 00000 n
-0000828165 00000 n
-0000828230 00000 n
-0000828295 00000 n
-0000828360 00000 n
-0000832759 00000 n
-0000832438 00000 n
-0000828539 00000 n
-0000832564 00000 n
-0000832629 00000 n
-0000832694 00000 n
-0001199570 00000 n
-0000836522 00000 n
-0000836266 00000 n
-0000832915 00000 n
-0000836392 00000 n
-0000836457 00000 n
-0000839813 00000 n
-0000839622 00000 n
-0000836664 00000 n
-0000839748 00000 n
-0000843332 00000 n
-0000843141 00000 n
-0000839941 00000 n
-0000843267 00000 n
-0000846613 00000 n
-0000846098 00000 n
-0000843474 00000 n
-0000846224 00000 n
-0000846289 00000 n
-0000846354 00000 n
-0000846419 00000 n
-0000846484 00000 n
-0000846549 00000 n
-0000850812 00000 n
-0000850297 00000 n
-0000846769 00000 n
-0000850423 00000 n
-0000850552 00000 n
-0000850617 00000 n
-0000850682 00000 n
-0000850747 00000 n
-0000854444 00000 n
-0000853735 00000 n
-0000850940 00000 n
-0000853861 00000 n
-0000853926 00000 n
-0000853991 00000 n
-0000854056 00000 n
-0000854185 00000 n
-0000854250 00000 n
-0000854315 00000 n
-0000854380 00000 n
-0001199695 00000 n
-0000857649 00000 n
-0000856941 00000 n
-0000854586 00000 n
-0000857067 00000 n
-0000857132 00000 n
-0000857195 00000 n
-0000857260 00000 n
-0000857389 00000 n
-0000857454 00000 n
-0000857519 00000 n
-0000857584 00000 n
-0000860939 00000 n
-0000860554 00000 n
-0000857791 00000 n
-0000860680 00000 n
-0000860745 00000 n
-0000860810 00000 n
-0000860875 00000 n
-0000864116 00000 n
-0000863537 00000 n
-0000861067 00000 n
-0000863663 00000 n
-0000863792 00000 n
-0000863857 00000 n
-0000863922 00000 n
-0000863987 00000 n
-0000864051 00000 n
-0000866712 00000 n
-0000865937 00000 n
-0000864272 00000 n
-0000866063 00000 n
-0000866128 00000 n
-0000866193 00000 n
-0000866258 00000 n
-0000866323 00000 n
-0000866388 00000 n
-0000866517 00000 n
-0000866582 00000 n
-0000866647 00000 n
-0000870208 00000 n
-0000869887 00000 n
-0000866882 00000 n
-0000870013 00000 n
-0000870078 00000 n
-0000870143 00000 n
-0000873763 00000 n
-0000873444 00000 n
-0000870336 00000 n
-0000873570 00000 n
-0000873635 00000 n
-0000873700 00000 n
-0001199820 00000 n
-0000876979 00000 n
-0000876269 00000 n
-0000873891 00000 n
-0000876395 00000 n
-0000876460 00000 n
-0000876525 00000 n
-0000876719 00000 n
-0000876784 00000 n
-0000876849 00000 n
-0000876914 00000 n
-0000880742 00000 n
-0000880551 00000 n
-0000877148 00000 n
-0000880677 00000 n
-0000884452 00000 n
-0000884196 00000 n
-0000880870 00000 n
-0000884322 00000 n
-0000884387 00000 n
-0000887967 00000 n
-0000887646 00000 n
-0000884580 00000 n
-0000887772 00000 n
-0000887837 00000 n
-0000887902 00000 n
-0000890628 00000 n
-0000889918 00000 n
-0000888122 00000 n
-0000890044 00000 n
-0000890109 00000 n
-0000890174 00000 n
-0000890303 00000 n
-0000890368 00000 n
-0000890433 00000 n
-0000890498 00000 n
-0000890563 00000 n
-0000894009 00000 n
-0000893299 00000 n
-0000890798 00000 n
-0000893425 00000 n
-0000893490 00000 n
-0000893555 00000 n
-0000893749 00000 n
-0000893814 00000 n
-0000893879 00000 n
-0000893944 00000 n
-0001199945 00000 n
-0000897390 00000 n
-0000897069 00000 n
-0000894165 00000 n
-0000897195 00000 n
-0000897260 00000 n
-0000897325 00000 n
-0000900533 00000 n
-0000899824 00000 n
-0000897504 00000 n
-0000899950 00000 n
-0000900015 00000 n
-0000900080 00000 n
-0000900209 00000 n
-0000900273 00000 n
-0000900338 00000 n
-0000900403 00000 n
-0000900468 00000 n
-0000904546 00000 n
-0000904355 00000 n
-0000900689 00000 n
-0000904481 00000 n
-0000908433 00000 n
-0000908242 00000 n
-0000904674 00000 n
-0000908368 00000 n
-0000911974 00000 n
-0000911783 00000 n
-0000908561 00000 n
-0000911909 00000 n
-0000914929 00000 n
-0000914544 00000 n
-0000912102 00000 n
-0000914670 00000 n
-0000914735 00000 n
-0000914800 00000 n
-0000914865 00000 n
-0001200070 00000 n
-0000918175 00000 n
-0000917531 00000 n
-0000915099 00000 n
-0000917657 00000 n
-0000917786 00000 n
-0000917851 00000 n
-0000917916 00000 n
-0000917981 00000 n
-0000918046 00000 n
-0000918111 00000 n
-0000921075 00000 n
-0000920368 00000 n
-0000918331 00000 n
-0000920494 00000 n
-0000920559 00000 n
-0000920688 00000 n
-0000920753 00000 n
-0000920818 00000 n
-0000920882 00000 n
-0000920947 00000 n
-0000921012 00000 n
-0000923928 00000 n
-0000923218 00000 n
-0000921217 00000 n
-0000923344 00000 n
-0000923409 00000 n
-0000923474 00000 n
-0000923603 00000 n
-0000923668 00000 n
-0000923733 00000 n
-0000923798 00000 n
-0000923863 00000 n
-0000927644 00000 n
-0000927453 00000 n
-0000924070 00000 n
-0000927579 00000 n
-0000930768 00000 n
-0000930124 00000 n
-0000927772 00000 n
-0000930250 00000 n
-0000930315 00000 n
-0000930380 00000 n
-0000930444 00000 n
-0000930573 00000 n
-0000930638 00000 n
-0000930703 00000 n
-0000934289 00000 n
-0000933968 00000 n
-0000930924 00000 n
-0000934094 00000 n
-0000934159 00000 n
-0000934224 00000 n
-0001200195 00000 n
-0000937509 00000 n
-0000937318 00000 n
-0000934474 00000 n
-0000937444 00000 n
-0000940334 00000 n
-0000939627 00000 n
-0000937722 00000 n
-0000939753 00000 n
-0000939818 00000 n
-0000939882 00000 n
-0000939947 00000 n
-0000940012 00000 n
-0000940077 00000 n
-0000940205 00000 n
-0000940270 00000 n
-0000943549 00000 n
-0000942775 00000 n
-0000940519 00000 n
-0000942901 00000 n
-0000942966 00000 n
-0000943031 00000 n
-0000943096 00000 n
-0000943161 00000 n
-0000943289 00000 n
-0000943354 00000 n
-0000943419 00000 n
-0000943484 00000 n
-0000948023 00000 n
-0000947832 00000 n
-0000943691 00000 n
-0000947958 00000 n
-0000951673 00000 n
-0000951417 00000 n
-0000948151 00000 n
-0000951543 00000 n
-0000951608 00000 n
-0000954688 00000 n
-0000954432 00000 n
-0000951801 00000 n
-0000954558 00000 n
-0000954623 00000 n
-0001200320 00000 n
-0000957931 00000 n
-0000957223 00000 n
-0000954816 00000 n
-0000957349 00000 n
-0000957414 00000 n
-0000957479 00000 n
-0000957544 00000 n
-0000957671 00000 n
-0000957736 00000 n
-0000957801 00000 n
-0000957866 00000 n
-0000961463 00000 n
-0000960820 00000 n
-0000958100 00000 n
-0000960946 00000 n
-0000961011 00000 n
-0000961076 00000 n
-0000961141 00000 n
-0000961206 00000 n
-0000961334 00000 n
-0000961399 00000 n
-0000965032 00000 n
-0000964646 00000 n
-0000961633 00000 n
-0000964772 00000 n
-0000964837 00000 n
-0000964902 00000 n
-0000964967 00000 n
-0000967393 00000 n
-0000967008 00000 n
-0000965160 00000 n
-0000967134 00000 n
-0000967199 00000 n
-0000967264 00000 n
-0000967329 00000 n
-0000971078 00000 n
-0000970498 00000 n
-0000967549 00000 n
-0000970624 00000 n
-0000970753 00000 n
-0000970818 00000 n
-0000970883 00000 n
-0000970948 00000 n
-0000971013 00000 n
-0000974225 00000 n
-0000973517 00000 n
-0000971220 00000 n
-0000973643 00000 n
-0000973708 00000 n
-0000973773 00000 n
-0000973837 00000 n
-0000973965 00000 n
-0000974030 00000 n
-0000974095 00000 n
-0000974160 00000 n
-0001200445 00000 n
-0000977657 00000 n
-0000977078 00000 n
-0000974395 00000 n
-0000977204 00000 n
-0000977269 00000 n
-0000977334 00000 n
-0000977399 00000 n
-0000977528 00000 n
-0000977593 00000 n
-0000980073 00000 n
-0000979169 00000 n
-0000977813 00000 n
-0000979295 00000 n
-0000979360 00000 n
-0000979425 00000 n
-0000979490 00000 n
-0000979555 00000 n
-0000979684 00000 n
-0000979749 00000 n
-0000979814 00000 n
-0000979879 00000 n
-0000979944 00000 n
-0000980009 00000 n
-0000983045 00000 n
-0000982079 00000 n
-0000980229 00000 n
-0000982205 00000 n
-0000982270 00000 n
-0000982399 00000 n
-0000982463 00000 n
-0000982528 00000 n
-0000982593 00000 n
-0000982658 00000 n
-0000982723 00000 n
-0000982787 00000 n
-0000982916 00000 n
-0000982981 00000 n
-0000984905 00000 n
-0000984391 00000 n
-0000983187 00000 n
-0000984517 00000 n
-0000984582 00000 n
-0000984647 00000 n
-0000984712 00000 n
-0000984777 00000 n
-0000984841 00000 n
-0000985146 00000 n
-0000996490 00000 n
-0001004079 00000 n
-0001007713 00000 n
-0001017153 00000 n
-0001027888 00000 n
-0001030590 00000 n
-0001030559 00000 n
-0001043439 00000 n
-0001057508 00000 n
-0001077014 00000 n
-0001098080 00000 n
-0001120230 00000 n
-0001138486 00000 n
-0001141333 00000 n
-0001141103 00000 n
-0001168751 00000 n
-0001196080 00000 n
-0001200561 00000 n
-0001200686 00000 n
-0001200812 00000 n
-0001200938 00000 n
-0001201064 00000 n
-0001201190 00000 n
-0001201280 00000 n
-0001201390 00000 n
-0001223571 00000 n
-0001248515 00000 n
-0001248556 00000 n
-0001248596 00000 n
-0001248730 00000 n
+0000431841 00000 n
+0000431970 00000 n
+0000432098 00000 n
+0000432227 00000 n
+0000436414 00000 n
+0000435655 00000 n
+0000432420 00000 n
+0000435962 00000 n
+0000436091 00000 n
+0000436220 00000 n
+0000435802 00000 n
+0000436349 00000 n
+0000666455 00000 n
+0000439945 00000 n
+0000439496 00000 n
+0000436528 00000 n
+0000439622 00000 n
+0000439751 00000 n
+0000439880 00000 n
+0000442741 00000 n
+0000442293 00000 n
+0000440115 00000 n
+0000442419 00000 n
+0000442548 00000 n
+0000442676 00000 n
+0000445459 00000 n
+0000445139 00000 n
+0000442898 00000 n
+0000445265 00000 n
+0000445394 00000 n
+0001206799 00000 n
+0000448367 00000 n
+0000447531 00000 n
+0000445573 00000 n
+0000447657 00000 n
+0000447786 00000 n
+0000447915 00000 n
+0000448044 00000 n
+0000448173 00000 n
+0000448302 00000 n
+0000450998 00000 n
+0000450678 00000 n
+0000448481 00000 n
+0000450804 00000 n
+0000450933 00000 n
+0000456715 00000 n
+0000453935 00000 n
+0000453486 00000 n
+0000451112 00000 n
+0000453612 00000 n
+0000453741 00000 n
+0000453870 00000 n
+0000458254 00000 n
+0000456568 00000 n
+0000454063 00000 n
+0000457802 00000 n
+0000457931 00000 n
+0000457641 00000 n
+0000458060 00000 n
+0000458189 00000 n
+0000782382 00000 n
+0000460997 00000 n
+0000460419 00000 n
+0000458425 00000 n
+0000460545 00000 n
+0000460674 00000 n
+0000460803 00000 n
+0000460932 00000 n
+0000461438 00000 n
+0000461247 00000 n
+0000461097 00000 n
+0000461373 00000 n
+0001206924 00000 n
+0000465525 00000 n
+0000464759 00000 n
+0000461480 00000 n
+0000465073 00000 n
+0000465202 00000 n
+0000465330 00000 n
+0000465395 00000 n
+0000465460 00000 n
+0000464906 00000 n
+0000473755 00000 n
+0000470220 00000 n
+0000470029 00000 n
+0000465625 00000 n
+0000470155 00000 n
+0000474207 00000 n
+0000473500 00000 n
+0000470362 00000 n
+0000473626 00000 n
+0000473884 00000 n
+0000474013 00000 n
+0000474142 00000 n
+0000477126 00000 n
+0000476420 00000 n
+0000474348 00000 n
+0000476546 00000 n
+0000476675 00000 n
+0000476804 00000 n
+0000476933 00000 n
+0000476998 00000 n
+0000477062 00000 n
+0000480495 00000 n
+0000479919 00000 n
+0000477283 00000 n
+0000480045 00000 n
+0000480173 00000 n
+0000480302 00000 n
+0000480366 00000 n
+0000480430 00000 n
+0000485852 00000 n
+0000485064 00000 n
+0000480609 00000 n
+0000485530 00000 n
+0000485659 00000 n
+0000485220 00000 n
+0000485371 00000 n
+0001207049 00000 n
+0000994592 00000 n
+0000489838 00000 n
+0000488438 00000 n
+0000485993 00000 n
+0000489129 00000 n
+0000489258 00000 n
+0000489387 00000 n
+0000489516 00000 n
+0000489645 00000 n
+0000488603 00000 n
+0000488755 00000 n
+0000488942 00000 n
+0000489773 00000 n
+0000493666 00000 n
+0000493217 00000 n
+0000489966 00000 n
+0000493343 00000 n
+0000493472 00000 n
+0000493601 00000 n
+0000497913 00000 n
+0000497535 00000 n
+0000493794 00000 n
+0000497848 00000 n
+0000497682 00000 n
+0000500441 00000 n
+0000500633 00000 n
+0000500186 00000 n
+0000498027 00000 n
+0000500312 00000 n
+0000500506 00000 n
+0000500570 00000 n
+0000503937 00000 n
+0000503746 00000 n
+0000500747 00000 n
+0000503872 00000 n
+0000507367 00000 n
+0000507047 00000 n
+0000504051 00000 n
+0000507173 00000 n
+0000507302 00000 n
+0001207174 00000 n
+0000510891 00000 n
+0000510570 00000 n
+0000507495 00000 n
+0000510696 00000 n
+0000510761 00000 n
+0000510826 00000 n
+0000514312 00000 n
+0000513142 00000 n
+0000510992 00000 n
+0000513602 00000 n
+0000513731 00000 n
+0000513860 00000 n
+0000513298 00000 n
+0000513451 00000 n
+0000513989 00000 n
+0000514118 00000 n
+0000514247 00000 n
+0000515847 00000 n
+0000515656 00000 n
+0000514426 00000 n
+0000515782 00000 n
+0000517350 00000 n
+0000517159 00000 n
+0000515948 00000 n
+0000517285 00000 n
+0000518861 00000 n
+0000518670 00000 n
+0000517451 00000 n
+0000518796 00000 n
+0000521060 00000 n
+0000520740 00000 n
+0000518962 00000 n
+0000520866 00000 n
+0000520995 00000 n
+0001207299 00000 n
+0000524632 00000 n
+0000524441 00000 n
+0000521174 00000 n
+0000524567 00000 n
+0000528882 00000 n
+0000528513 00000 n
+0000524774 00000 n
+0000528817 00000 n
+0000528660 00000 n
+0000750486 00000 n
+0000532831 00000 n
+0000532449 00000 n
+0000529010 00000 n
+0000532766 00000 n
+0000532596 00000 n
+0000537440 00000 n
+0000537044 00000 n
+0000532959 00000 n
+0000537375 00000 n
+0000537191 00000 n
+0000541995 00000 n
+0000541319 00000 n
+0000537582 00000 n
+0000541801 00000 n
+0000541475 00000 n
+0000541644 00000 n
+0000545818 00000 n
+0000545498 00000 n
+0000542123 00000 n
+0000545624 00000 n
+0000545689 00000 n
+0000545753 00000 n
+0001207424 00000 n
+0000550885 00000 n
+0000549757 00000 n
+0000545946 00000 n
+0000550820 00000 n
+0000549940 00000 n
+0000550094 00000 n
+0000550279 00000 n
+0000550453 00000 n
+0000550638 00000 n
+0000656973 00000 n
+0000555149 00000 n
+0000554958 00000 n
+0000551069 00000 n
+0000555084 00000 n
+0000559362 00000 n
+0000559171 00000 n
+0000555277 00000 n
+0000559297 00000 n
+0000563007 00000 n
+0000562816 00000 n
+0000559476 00000 n
+0000562942 00000 n
+0000567638 00000 n
+0000566651 00000 n
+0000563121 00000 n
+0000567316 00000 n
+0000566816 00000 n
+0000566981 00000 n
+0000567444 00000 n
+0000567147 00000 n
+0000567573 00000 n
+0000673516 00000 n
+0000571087 00000 n
+0000570579 00000 n
+0000567752 00000 n
+0000570893 00000 n
+0000571022 00000 n
+0000570726 00000 n
+0001207549 00000 n
+0000575417 00000 n
+0000574726 00000 n
+0000571244 00000 n
+0000575223 00000 n
+0000574882 00000 n
+0000575052 00000 n
+0000575352 00000 n
+0000770096 00000 n
+0000579164 00000 n
+0000578844 00000 n
+0000575545 00000 n
+0000578970 00000 n
+0000579099 00000 n
+0000582082 00000 n
+0000581762 00000 n
+0000579278 00000 n
+0000581888 00000 n
+0000586113 00000 n
+0000585922 00000 n
+0000582253 00000 n
+0000586048 00000 n
+0000589553 00000 n
+0000589055 00000 n
+0000586227 00000 n
+0000589360 00000 n
+0000589489 00000 n
+0000589202 00000 n
+0000593870 00000 n
+0000593064 00000 n
+0000589710 00000 n
+0000593548 00000 n
+0000593677 00000 n
+0000593220 00000 n
+0000593805 00000 n
+0000593394 00000 n
+0001207674 00000 n
+0000597895 00000 n
+0000597577 00000 n
+0000593984 00000 n
+0000597703 00000 n
+0000597830 00000 n
+0000601609 00000 n
+0000600817 00000 n
+0000598023 00000 n
+0000601287 00000 n
+0000601416 00000 n
+0000601544 00000 n
+0000600973 00000 n
+0000601134 00000 n
+0000604837 00000 n
+0000604329 00000 n
+0000601780 00000 n
+0000604643 00000 n
+0000604476 00000 n
+0000608443 00000 n
+0000607994 00000 n
+0000604951 00000 n
+0000608120 00000 n
+0000608185 00000 n
+0000608250 00000 n
+0000608378 00000 n
+0000612443 00000 n
+0000612070 00000 n
+0000608628 00000 n
+0000612378 00000 n
+0000612217 00000 n
+0000616887 00000 n
+0000616385 00000 n
+0000612614 00000 n
+0000616695 00000 n
+0000616532 00000 n
+0000616824 00000 n
+0001207799 00000 n
+0000746721 00000 n
+0000620634 00000 n
+0000620124 00000 n
+0000617015 00000 n
+0000620440 00000 n
+0000620271 00000 n
+0000620569 00000 n
+0000670761 00000 n
+0000622375 00000 n
+0000622184 00000 n
+0000620775 00000 n
+0000622310 00000 n
+0000624120 00000 n
+0000623929 00000 n
+0000622475 00000 n
+0000624055 00000 n
+0000627583 00000 n
+0000627263 00000 n
+0000624220 00000 n
+0000627389 00000 n
+0000632281 00000 n
+0000631735 00000 n
+0000627753 00000 n
+0000632087 00000 n
+0000632216 00000 n
+0000631882 00000 n
+0000636511 00000 n
+0000636191 00000 n
+0000632409 00000 n
+0000636317 00000 n
+0000636446 00000 n
+0001207924 00000 n
+0000640643 00000 n
+0000640452 00000 n
+0000636652 00000 n
+0000640578 00000 n
+0000643549 00000 n
+0000643230 00000 n
+0000640770 00000 n
+0000643356 00000 n
+0000643485 00000 n
+0000648262 00000 n
+0000648071 00000 n
+0000643677 00000 n
+0000648197 00000 n
+0000652313 00000 n
+0000651993 00000 n
+0000648376 00000 n
+0000652119 00000 n
+0000652248 00000 n
+0000657038 00000 n
+0000656547 00000 n
+0000652441 00000 n
+0000656845 00000 n
+0000656694 00000 n
+0000662533 00000 n
+0000660971 00000 n
+0000657152 00000 n
+0000662210 00000 n
+0000661163 00000 n
+0000662339 00000 n
+0000662468 00000 n
+0000661323 00000 n
+0000661498 00000 n
+0000661676 00000 n
+0000661856 00000 n
+0000662032 00000 n
+0001208049 00000 n
+0000666519 00000 n
+0000665638 00000 n
+0000662661 00000 n
+0000665939 00000 n
+0000666068 00000 n
+0000666197 00000 n
+0000665785 00000 n
+0000666326 00000 n
+0000670953 00000 n
+0000670506 00000 n
+0000666633 00000 n
+0000670632 00000 n
+0000670890 00000 n
+0000673581 00000 n
+0000673261 00000 n
+0000671095 00000 n
+0000673387 00000 n
+0000675208 00000 n
+0000675017 00000 n
+0000673695 00000 n
+0000675143 00000 n
+0000676793 00000 n
+0000676602 00000 n
+0000675309 00000 n
+0000676728 00000 n
+0000678173 00000 n
+0000677982 00000 n
+0000676894 00000 n
+0000678108 00000 n
+0001208174 00000 n
+0000681825 00000 n
+0000681246 00000 n
+0000678274 00000 n
+0000681372 00000 n
+0000681501 00000 n
+0000681630 00000 n
+0000681695 00000 n
+0000681760 00000 n
+0000684713 00000 n
+0000684522 00000 n
+0000681939 00000 n
+0000684648 00000 n
+0000689077 00000 n
+0000687932 00000 n
+0000684827 00000 n
+0000688755 00000 n
+0000688106 00000 n
+0000688883 00000 n
+0000689012 00000 n
+0000688274 00000 n
+0000688434 00000 n
+0000688595 00000 n
+0000994559 00000 n
+0000695084 00000 n
+0000692484 00000 n
+0000689205 00000 n
+0000695019 00000 n
+0000692748 00000 n
+0000692910 00000 n
+0000693072 00000 n
+0000693243 00000 n
+0000693405 00000 n
+0000693568 00000 n
+0000693730 00000 n
+0000693893 00000 n
+0000694055 00000 n
+0000694218 00000 n
+0000694380 00000 n
+0000694543 00000 n
+0000694697 00000 n
+0000694860 00000 n
+0000700317 00000 n
+0000698396 00000 n
+0000695212 00000 n
+0000700252 00000 n
+0000698624 00000 n
+0000698787 00000 n
+0000698954 00000 n
+0000699124 00000 n
+0000699286 00000 n
+0000699448 00000 n
+0000699610 00000 n
+0000699772 00000 n
+0000699935 00000 n
+0000700089 00000 n
+0000705530 00000 n
+0000703324 00000 n
+0000700445 00000 n
+0000705465 00000 n
+0000703570 00000 n
+0000703723 00000 n
+0000703877 00000 n
+0000704027 00000 n
+0000704181 00000 n
+0000704343 00000 n
+0000704505 00000 n
+0000704667 00000 n
+0000704829 00000 n
+0000704990 00000 n
+0000705152 00000 n
+0000705313 00000 n
+0001208299 00000 n
+0000710861 00000 n
+0000709343 00000 n
+0000705644 00000 n
+0000710668 00000 n
+0000709544 00000 n
+0000709707 00000 n
+0000709858 00000 n
+0000710023 00000 n
+0000710189 00000 n
+0000710351 00000 n
+0000710505 00000 n
+0000714800 00000 n
+0000714479 00000 n
+0000711003 00000 n
+0000714605 00000 n
+0000714670 00000 n
+0000714735 00000 n
+0000717577 00000 n
+0000717386 00000 n
+0000714942 00000 n
+0000717512 00000 n
+0000721772 00000 n
+0000720703 00000 n
+0000717735 00000 n
+0000721190 00000 n
+0000721319 00000 n
+0000721577 00000 n
+0000720859 00000 n
+0000721029 00000 n
+0000721642 00000 n
+0000721707 00000 n
+0000725224 00000 n
+0000724904 00000 n
+0000721900 00000 n
+0000725030 00000 n
+0000725095 00000 n
+0000725159 00000 n
+0000728709 00000 n
+0000728388 00000 n
+0000725325 00000 n
+0000728514 00000 n
+0000728579 00000 n
+0000728644 00000 n
+0001208424 00000 n
+0000732633 00000 n
+0000731924 00000 n
+0000728824 00000 n
+0000732050 00000 n
+0000732179 00000 n
+0000732244 00000 n
+0000732309 00000 n
+0000732374 00000 n
+0000732439 00000 n
+0000732568 00000 n
+0000736862 00000 n
+0000736025 00000 n
+0000732747 00000 n
+0000736151 00000 n
+0000736216 00000 n
+0000736281 00000 n
+0000736410 00000 n
+0000736475 00000 n
+0000736540 00000 n
+0000736669 00000 n
+0000736734 00000 n
+0000736798 00000 n
+0000739891 00000 n
+0000739189 00000 n
+0000736990 00000 n
+0000739315 00000 n
+0000739442 00000 n
+0000739569 00000 n
+0000739698 00000 n
+0000739826 00000 n
+0000742592 00000 n
+0000742015 00000 n
+0000740090 00000 n
+0000742141 00000 n
+0000742270 00000 n
+0000742399 00000 n
+0000742464 00000 n
+0000742528 00000 n
+0000746786 00000 n
+0000746466 00000 n
+0000742777 00000 n
+0000746592 00000 n
+0000750551 00000 n
+0000749791 00000 n
+0000746913 00000 n
+0000750098 00000 n
+0000750227 00000 n
+0000750292 00000 n
+0000750357 00000 n
+0000749938 00000 n
+0001208549 00000 n
+0000754239 00000 n
+0000753660 00000 n
+0000750665 00000 n
+0000753786 00000 n
+0000753915 00000 n
+0000754044 00000 n
+0000754109 00000 n
+0000754174 00000 n
+0000757836 00000 n
+0000756942 00000 n
+0000754353 00000 n
+0000757254 00000 n
+0000757089 00000 n
+0000757383 00000 n
+0000757448 00000 n
+0000757513 00000 n
+0000757642 00000 n
+0000757707 00000 n
+0000757772 00000 n
+0000994526 00000 n
+0000762020 00000 n
+0000761571 00000 n
+0000757950 00000 n
+0000761697 00000 n
+0000761826 00000 n
+0000761891 00000 n
+0000761956 00000 n
+0000764063 00000 n
+0000763743 00000 n
+0000762148 00000 n
+0000763869 00000 n
+0001013332 00000 n
+0001006048 00000 n
+0001013152 00000 n
+0000763998 00000 n
+0000765975 00000 n
+0000765528 00000 n
+0000764205 00000 n
+0000765654 00000 n
+0000765783 00000 n
+0000765910 00000 n
+0000770161 00000 n
+0000769455 00000 n
+0000766089 00000 n
+0000769581 00000 n
+0001005727 00000 n
+0000996514 00000 n
+0001005541 00000 n
+0000769710 00000 n
+0000769839 00000 n
+0000769967 00000 n
+0001208674 00000 n
+0000771194 00000 n
+0000771003 00000 n
+0000770388 00000 n
+0000771129 00000 n
+0000771622 00000 n
+0000771431 00000 n
+0000771281 00000 n
+0000771557 00000 n
+0000774936 00000 n
+0000773710 00000 n
+0000771664 00000 n
+0000774227 00000 n
+0000774356 00000 n
+0000774485 00000 n
+0000774614 00000 n
+0000774743 00000 n
+0000774872 00000 n
+0000773866 00000 n
+0000774038 00000 n
+0000775391 00000 n
+0000775200 00000 n
+0000775050 00000 n
+0000775326 00000 n
+0000778636 00000 n
+0000778058 00000 n
+0000775433 00000 n
+0000778184 00000 n
+0000778313 00000 n
+0000778442 00000 n
+0000778571 00000 n
+0000782833 00000 n
+0000781614 00000 n
+0000778722 00000 n
+0000782124 00000 n
+0000782253 00000 n
+0000782511 00000 n
+0000781770 00000 n
+0000781949 00000 n
+0000782705 00000 n
+0000782769 00000 n
+0001208799 00000 n
+0000789723 00000 n
+0000785895 00000 n
+0000782989 00000 n
+0000786021 00000 n
+0000786086 00000 n
+0000786151 00000 n
+0000786216 00000 n
+0000786281 00000 n
+0000786346 00000 n
+0000786411 00000 n
+0000786476 00000 n
+0000786541 00000 n
+0000786606 00000 n
+0000786736 00000 n
+0000786801 00000 n
+0000786866 00000 n
+0000786931 00000 n
+0000786996 00000 n
+0000787061 00000 n
+0000787126 00000 n
+0000787191 00000 n
+0000787256 00000 n
+0000787321 00000 n
+0000787386 00000 n
+0000787451 00000 n
+0000787516 00000 n
+0000787581 00000 n
+0000787646 00000 n
+0000787711 00000 n
+0000787776 00000 n
+0000787841 00000 n
+0000787906 00000 n
+0000787971 00000 n
+0000788036 00000 n
+0000788101 00000 n
+0000788166 00000 n
+0000788231 00000 n
+0000788295 00000 n
+0000788360 00000 n
+0000788425 00000 n
+0000788490 00000 n
+0000788555 00000 n
+0000788620 00000 n
+0000788685 00000 n
+0000788750 00000 n
+0000788815 00000 n
+0000788880 00000 n
+0000788945 00000 n
+0000789010 00000 n
+0000789075 00000 n
+0000789140 00000 n
+0000789205 00000 n
+0000789270 00000 n
+0000789335 00000 n
+0000789400 00000 n
+0000789465 00000 n
+0000789530 00000 n
+0000789595 00000 n
+0000789659 00000 n
+0000796371 00000 n
+0000792807 00000 n
+0000789837 00000 n
+0000792933 00000 n
+0000792998 00000 n
+0000793063 00000 n
+0000793128 00000 n
+0000793193 00000 n
+0000793258 00000 n
+0000793323 00000 n
+0000793388 00000 n
+0000793453 00000 n
+0000793518 00000 n
+0000793583 00000 n
+0000793648 00000 n
+0000793712 00000 n
+0000793777 00000 n
+0000793842 00000 n
+0000793907 00000 n
+0000793972 00000 n
+0000794037 00000 n
+0000794102 00000 n
+0000794167 00000 n
+0000794232 00000 n
+0000794297 00000 n
+0000794362 00000 n
+0000794427 00000 n
+0000794491 00000 n
+0000794556 00000 n
+0000794621 00000 n
+0000794686 00000 n
+0000794751 00000 n
+0000794816 00000 n
+0000794881 00000 n
+0000794946 00000 n
+0000795011 00000 n
+0000795076 00000 n
+0000795141 00000 n
+0000795206 00000 n
+0000795271 00000 n
+0000795336 00000 n
+0000795401 00000 n
+0000795466 00000 n
+0000795530 00000 n
+0000795594 00000 n
+0000795658 00000 n
+0000795723 00000 n
+0000795788 00000 n
+0000795853 00000 n
+0000795918 00000 n
+0000795983 00000 n
+0000796048 00000 n
+0000796113 00000 n
+0000796178 00000 n
+0000796243 00000 n
+0000796307 00000 n
+0000802546 00000 n
+0000799108 00000 n
+0000796485 00000 n
+0000799234 00000 n
+0000799299 00000 n
+0000799364 00000 n
+0000799429 00000 n
+0000799494 00000 n
+0000799559 00000 n
+0000799624 00000 n
+0000799689 00000 n
+0000799754 00000 n
+0000799819 00000 n
+0000799884 00000 n
+0000799949 00000 n
+0000800014 00000 n
+0000800079 00000 n
+0000800144 00000 n
+0000800209 00000 n
+0000800274 00000 n
+0000800339 00000 n
+0000800404 00000 n
+0000800469 00000 n
+0000800534 00000 n
+0000800599 00000 n
+0000800664 00000 n
+0000800729 00000 n
+0000800794 00000 n
+0000800859 00000 n
+0000800924 00000 n
+0000800989 00000 n
+0000801054 00000 n
+0000801119 00000 n
+0000801184 00000 n
+0000801249 00000 n
+0000801314 00000 n
+0000801379 00000 n
+0000801443 00000 n
+0000801508 00000 n
+0000801573 00000 n
+0000801638 00000 n
+0000801703 00000 n
+0000801768 00000 n
+0000801833 00000 n
+0000801898 00000 n
+0000801963 00000 n
+0000802028 00000 n
+0000802093 00000 n
+0000802158 00000 n
+0000802223 00000 n
+0000802288 00000 n
+0000802353 00000 n
+0000802418 00000 n
+0000802482 00000 n
+0000808065 00000 n
+0000805669 00000 n
+0000802660 00000 n
+0000805795 00000 n
+0000805860 00000 n
+0000805925 00000 n
+0000805990 00000 n
+0000806055 00000 n
+0000806120 00000 n
+0000806185 00000 n
+0000806250 00000 n
+0000806315 00000 n
+0000806380 00000 n
+0000806445 00000 n
+0000806510 00000 n
+0000806575 00000 n
+0000806639 00000 n
+0000806704 00000 n
+0000806769 00000 n
+0000806834 00000 n
+0000806899 00000 n
+0000806964 00000 n
+0000807029 00000 n
+0000807094 00000 n
+0000807159 00000 n
+0000807224 00000 n
+0000807289 00000 n
+0000807354 00000 n
+0000807482 00000 n
+0000807611 00000 n
+0000807676 00000 n
+0000807741 00000 n
+0000807806 00000 n
+0000807871 00000 n
+0000808000 00000 n
+0000811273 00000 n
+0000810566 00000 n
+0000808192 00000 n
+0000810692 00000 n
+0000810821 00000 n
+0000810950 00000 n
+0000811079 00000 n
+0000811208 00000 n
+0000814765 00000 n
+0000814008 00000 n
+0000811400 00000 n
+0000814315 00000 n
+0000814444 00000 n
+0000814155 00000 n
+0000814572 00000 n
+0000814700 00000 n
+0001208924 00000 n
+0000818009 00000 n
+0000817431 00000 n
+0000814892 00000 n
+0000817557 00000 n
+0000817686 00000 n
+0000817815 00000 n
+0000817944 00000 n
+0000820917 00000 n
+0000820597 00000 n
+0000818123 00000 n
+0000820723 00000 n
+0000820852 00000 n
+0000823507 00000 n
+0000823058 00000 n
+0000821087 00000 n
+0000823184 00000 n
+0000823313 00000 n
+0000823442 00000 n
+0000823948 00000 n
+0000823757 00000 n
+0000823607 00000 n
+0000823883 00000 n
+0000826727 00000 n
+0000826083 00000 n
+0000823990 00000 n
+0000826209 00000 n
+0000826338 00000 n
+0000826467 00000 n
+0000826532 00000 n
+0000826597 00000 n
+0000826662 00000 n
+0000831061 00000 n
+0000830740 00000 n
+0000826841 00000 n
+0000830866 00000 n
+0000830931 00000 n
+0000830996 00000 n
+0001209049 00000 n
+0000834824 00000 n
+0000834568 00000 n
+0000831217 00000 n
+0000834694 00000 n
+0000834759 00000 n
+0000838115 00000 n
+0000837924 00000 n
+0000834966 00000 n
+0000838050 00000 n
+0000841634 00000 n
+0000841443 00000 n
+0000838243 00000 n
+0000841569 00000 n
+0000845099 00000 n
+0000844584 00000 n
+0000841776 00000 n
+0000844710 00000 n
+0000844775 00000 n
+0000844840 00000 n
+0000844905 00000 n
+0000844970 00000 n
+0000845035 00000 n
+0000849298 00000 n
+0000848783 00000 n
+0000845255 00000 n
+0000848909 00000 n
+0000849038 00000 n
+0000849103 00000 n
+0000849168 00000 n
+0000849233 00000 n
+0000852930 00000 n
+0000852221 00000 n
+0000849426 00000 n
+0000852347 00000 n
+0000852412 00000 n
+0000852477 00000 n
+0000852542 00000 n
+0000852671 00000 n
+0000852736 00000 n
+0000852801 00000 n
+0000852866 00000 n
+0001209174 00000 n
+0000856135 00000 n
+0000855427 00000 n
+0000853072 00000 n
+0000855553 00000 n
+0000855618 00000 n
+0000855681 00000 n
+0000855746 00000 n
+0000855875 00000 n
+0000855940 00000 n
+0000856005 00000 n
+0000856070 00000 n
+0000859425 00000 n
+0000859040 00000 n
+0000856277 00000 n
+0000859166 00000 n
+0000859231 00000 n
+0000859296 00000 n
+0000859361 00000 n
+0000862602 00000 n
+0000862023 00000 n
+0000859553 00000 n
+0000862149 00000 n
+0000862278 00000 n
+0000862343 00000 n
+0000862408 00000 n
+0000862473 00000 n
+0000862537 00000 n
+0000865199 00000 n
+0000864424 00000 n
+0000862758 00000 n
+0000864550 00000 n
+0000864615 00000 n
+0000864680 00000 n
+0000864745 00000 n
+0000864810 00000 n
+0000864875 00000 n
+0000865004 00000 n
+0000865069 00000 n
+0000865134 00000 n
+0000868695 00000 n
+0000868374 00000 n
+0000865369 00000 n
+0000868500 00000 n
+0000868565 00000 n
+0000868630 00000 n
+0000872250 00000 n
+0000871931 00000 n
+0000868823 00000 n
+0000872057 00000 n
+0000872122 00000 n
+0000872187 00000 n
+0001209299 00000 n
+0000875466 00000 n
+0000874756 00000 n
+0000872378 00000 n
+0000874882 00000 n
+0000874947 00000 n
+0000875012 00000 n
+0000875206 00000 n
+0000875271 00000 n
+0000875336 00000 n
+0000875401 00000 n
+0000879229 00000 n
+0000879038 00000 n
+0000875635 00000 n
+0000879164 00000 n
+0000882939 00000 n
+0000882683 00000 n
+0000879357 00000 n
+0000882809 00000 n
+0000882874 00000 n
+0000886454 00000 n
+0000886133 00000 n
+0000883067 00000 n
+0000886259 00000 n
+0000886324 00000 n
+0000886389 00000 n
+0000889116 00000 n
+0000888406 00000 n
+0000886609 00000 n
+0000888532 00000 n
+0000888597 00000 n
+0000888662 00000 n
+0000888791 00000 n
+0000888856 00000 n
+0000888921 00000 n
+0000888986 00000 n
+0000889051 00000 n
+0000892497 00000 n
+0000891787 00000 n
+0000889286 00000 n
+0000891913 00000 n
+0000891978 00000 n
+0000892043 00000 n
+0000892237 00000 n
+0000892302 00000 n
+0000892367 00000 n
+0000892432 00000 n
+0001209424 00000 n
+0000895878 00000 n
+0000895557 00000 n
+0000892653 00000 n
+0000895683 00000 n
+0000895748 00000 n
+0000895813 00000 n
+0000899021 00000 n
+0000898312 00000 n
+0000895992 00000 n
+0000898438 00000 n
+0000898503 00000 n
+0000898568 00000 n
+0000898697 00000 n
+0000898761 00000 n
+0000898826 00000 n
+0000898891 00000 n
+0000898956 00000 n
+0000903034 00000 n
+0000902843 00000 n
+0000899177 00000 n
+0000902969 00000 n
+0000906921 00000 n
+0000906730 00000 n
+0000903162 00000 n
+0000906856 00000 n
+0000910447 00000 n
+0000910256 00000 n
+0000907049 00000 n
+0000910382 00000 n
+0000913639 00000 n
+0000913319 00000 n
+0000910575 00000 n
+0000913445 00000 n
+0000913510 00000 n
+0000913575 00000 n
+0001209549 00000 n
+0000916823 00000 n
+0000916179 00000 n
+0000913809 00000 n
+0000916305 00000 n
+0000916370 00000 n
+0000916499 00000 n
+0000916564 00000 n
+0000916629 00000 n
+0000916694 00000 n
+0000916759 00000 n
+0000919965 00000 n
+0000919256 00000 n
+0000916965 00000 n
+0000919382 00000 n
+0000919447 00000 n
+0000919512 00000 n
+0000919641 00000 n
+0000919706 00000 n
+0000919771 00000 n
+0000919836 00000 n
+0000919901 00000 n
+0000922878 00000 n
+0000922106 00000 n
+0000920121 00000 n
+0000922232 00000 n
+0000922297 00000 n
+0000922362 00000 n
+0000922427 00000 n
+0000922556 00000 n
+0000922621 00000 n
+0000922684 00000 n
+0000922749 00000 n
+0000922814 00000 n
+0000926235 00000 n
+0000926044 00000 n
+0000923020 00000 n
+0000926170 00000 n
+0000929379 00000 n
+0000928994 00000 n
+0000926349 00000 n
+0000929120 00000 n
+0000929185 00000 n
+0000929250 00000 n
+0000929315 00000 n
+0000932889 00000 n
+0000932309 00000 n
+0000929521 00000 n
+0000932435 00000 n
+0000932564 00000 n
+0000932629 00000 n
+0000932694 00000 n
+0000932759 00000 n
+0000932824 00000 n
+0001209674 00000 n
+0000935845 00000 n
+0000935654 00000 n
+0000933031 00000 n
+0000935780 00000 n
+0000938913 00000 n
+0000938528 00000 n
+0000936058 00000 n
+0000938654 00000 n
+0000938719 00000 n
+0000938784 00000 n
+0000938849 00000 n
+0000941620 00000 n
+0000940652 00000 n
+0000939154 00000 n
+0000940778 00000 n
+0000940843 00000 n
+0000940908 00000 n
+0000941037 00000 n
+0000941102 00000 n
+0000941167 00000 n
+0000941232 00000 n
+0000941297 00000 n
+0000941362 00000 n
+0000941491 00000 n
+0000941556 00000 n
+0000946126 00000 n
+0000945805 00000 n
+0000941762 00000 n
+0000945931 00000 n
+0000945996 00000 n
+0000946061 00000 n
+0000949876 00000 n
+0000949620 00000 n
+0000946254 00000 n
+0000949746 00000 n
+0000949811 00000 n
+0000953293 00000 n
+0000953037 00000 n
+0000950004 00000 n
+0000953163 00000 n
+0000953228 00000 n
+0001209799 00000 n
+0000955872 00000 n
+0000955294 00000 n
+0000953421 00000 n
+0000955420 00000 n
+0000955485 00000 n
+0000955550 00000 n
+0000955614 00000 n
+0000955808 00000 n
+0000959715 00000 n
+0000959264 00000 n
+0000956027 00000 n
+0000959390 00000 n
+0000959455 00000 n
+0000959520 00000 n
+0000959585 00000 n
+0000959650 00000 n
+0000963219 00000 n
+0000963028 00000 n
+0000959871 00000 n
+0000963154 00000 n
+0000966745 00000 n
+0000966554 00000 n
+0000963361 00000 n
+0000966680 00000 n
+0000970638 00000 n
+0000970319 00000 n
+0000966914 00000 n
+0000970445 00000 n
+0000970510 00000 n
+0000970575 00000 n
+0000974428 00000 n
+0000973848 00000 n
+0000970808 00000 n
+0000973974 00000 n
+0000974039 00000 n
+0000974168 00000 n
+0000974233 00000 n
+0000974298 00000 n
+0000974363 00000 n
+0001209924 00000 n
+0000976675 00000 n
+0000976354 00000 n
+0000974570 00000 n
+0000976480 00000 n
+0000976545 00000 n
+0000976610 00000 n
+0000980081 00000 n
+0000979373 00000 n
+0000976817 00000 n
+0000979499 00000 n
+0000979564 00000 n
+0000979629 00000 n
+0000979758 00000 n
+0000979823 00000 n
+0000979887 00000 n
+0000979952 00000 n
+0000980016 00000 n
+0000983160 00000 n
+0000982517 00000 n
+0000980237 00000 n
+0000982643 00000 n
+0000982708 00000 n
+0000982773 00000 n
+0000982837 00000 n
+0000982966 00000 n
+0000983031 00000 n
+0000983096 00000 n
+0000986882 00000 n
+0000986432 00000 n
+0000983330 00000 n
+0000986558 00000 n
+0000986623 00000 n
+0000986688 00000 n
+0000986753 00000 n
+0000986818 00000 n
+0000989427 00000 n
+0000988395 00000 n
+0000987038 00000 n
+0000988521 00000 n
+0000988650 00000 n
+0000988715 00000 n
+0000988780 00000 n
+0000988845 00000 n
+0000988910 00000 n
+0000988975 00000 n
+0000989103 00000 n
+0000989168 00000 n
+0000989233 00000 n
+0000989298 00000 n
+0000989363 00000 n
+0000992270 00000 n
+0000991431 00000 n
+0000989583 00000 n
+0000991557 00000 n
+0000991622 00000 n
+0000991687 00000 n
+0000991816 00000 n
+0000991881 00000 n
+0000991946 00000 n
+0000992011 00000 n
+0000992076 00000 n
+0000992141 00000 n
+0000992206 00000 n
+0001210049 00000 n
+0000994384 00000 n
+0000993674 00000 n
+0000992412 00000 n
+0000993800 00000 n
+0000993929 00000 n
+0000993994 00000 n
+0000994059 00000 n
+0000994124 00000 n
+0000994189 00000 n
+0000994254 00000 n
+0000994319 00000 n
+0000994625 00000 n
+0001005969 00000 n
+0001013558 00000 n
+0001015858 00000 n
+0001015827 00000 n
+0001019544 00000 n
+0001032341 00000 n
+0001042008 00000 n
+0001052743 00000 n
+0001066987 00000 n
+0001086493 00000 n
+0001107559 00000 n
+0001129709 00000 n
+0001147965 00000 n
+0001150812 00000 n
+0001150582 00000 n
+0001178230 00000 n
+0001205559 00000 n
+0001210138 00000 n
+0001210263 00000 n
+0001210389 00000 n
+0001210515 00000 n
+0001210641 00000 n
+0001210767 00000 n
+0001210866 00000 n
+0001210976 00000 n
+0001233250 00000 n
+0001258333 00000 n
+0001258374 00000 n
+0001258414 00000 n
+0001258548 00000 n
trailer
<<
-/Size 2838
-/Root 2836 0 R
-/Info 2837 0 R
-/ID [<E1541D0B72B34C8C74B211C7F67883CD> <E1541D0B72B34C8C74B211C7F67883CD>]
+/Size 2855
+/Root 2853 0 R
+/Info 2854 0 R
+/ID [<D92076DFF62B13FFD21C721A377CFD07> <D92076DFF62B13FFD21C721A377CFD07>]
>>
startxref
-1248988
+1258806
%%EOF
diff --git a/doc/arm/man.arpaname.html b/doc/arm/man.arpaname.html
index 45391da16d94..8f823ab058eb 100644
--- a/doc/arm/man.arpaname.html
+++ b/doc/arm/man.arpaname.html
@@ -50,20 +50,20 @@
<div class="cmdsynopsis"><p><code class="command">arpaname</code> {<em class="replaceable"><code>ipaddress </code></em>...}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619538"></a><h2>DESCRIPTION</h2>
+<a name="id2617724"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">arpaname</strong></span> translates IP addresses (IPv4 and
IPv6) to the corresponding IN-ADDR.ARPA or IP6.ARPA names.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619553"></a><h2>SEE ALSO</h2>
+<a name="id2617739"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619566"></a><h2>AUTHOR</h2>
+<a name="id2659054"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.ddns-confgen.html b/doc/arm/man.ddns-confgen.html
index fed8fbcf7876..ddaa199a07a8 100644
--- a/doc/arm/man.ddns-confgen.html
+++ b/doc/arm/man.ddns-confgen.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">ddns-confgen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [ -s <em class="replaceable"><code>name</code></em> | -z <em class="replaceable"><code>zone</code></em> ] [<code class="option">-q</code>] [name]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2657925"></a><h2>DESCRIPTION</h2>
+<a name="id2650650"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">ddns-confgen</strong></span>
generates a key for use by <span><strong class="command">nsupdate</strong></span>
and <span><strong class="command">named</strong></span>. It simplifies configuration
@@ -77,7 +77,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2658012"></a><h2>OPTIONS</h2>
+<a name="id2650738"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd><p>
@@ -144,7 +144,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2658418"></a><h2>SEE ALSO</h2>
+<a name="id2658994"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">nsupdate</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -152,7 +152,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2658456"></a><h2>AUTHOR</h2>
+<a name="id2659032"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dig.html b/doc/arm/man.dig.html
index 556e34b12b4c..0d185b6d312f 100644
--- a/doc/arm/man.dig.html
+++ b/doc/arm/man.dig.html
@@ -52,7 +52,7 @@
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2611368"></a><h2>DESCRIPTION</h2>
+<a name="id2611552"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dig</strong></span>
(domain information groper) is a flexible tool
for interrogating DNS name servers. It performs DNS lookups and
@@ -76,7 +76,7 @@
<p>
Unless it is told to query a specific name server,
<span><strong class="command">dig</strong></span> will try each of the servers listed in
- <code class="filename">/etc/resolv.conf</code>. If no usable server addreses
+ <code class="filename">/etc/resolv.conf</code>. If no usable server addresses
are found, <span><strong class="command">dig</strong></span> will send the query to the local
host.
</p>
@@ -99,7 +99,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2611470"></a><h2>SIMPLE USAGE</h2>
+<a name="id2611654"></a><h2>SIMPLE USAGE</h2>
<p>
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
</p>
@@ -152,7 +152,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2611596"></a><h2>OPTIONS</h2>
+<a name="id2611780"></a><h2>OPTIONS</h2>
<p>
The <code class="option">-b</code> option sets the source IP address of the query
to <em class="parameter"><code>address</code></em>. This must be a valid
@@ -256,7 +256,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2664641"></a><h2>QUERY OPTIONS</h2>
+<a name="id2652877"></a><h2>QUERY OPTIONS</h2>
<p><span><strong class="command">dig</strong></span>
provides a number of query options which affect
the way in which lookups are made and the results displayed. Some of
@@ -601,13 +601,19 @@
<dd><p>
Include an EDNS name server ID request when sending a query.
</p></dd>
+<dt><span class="term"><code class="option">+[no]keepopen</code></span></dt>
+<dd><p>
+ Keep the TCP socket open between queries and reuse it rather
+ than creating a new TCP socket for each lookup. The default
+ is <code class="option">+nokeepopen</code>.
+ </p></dd>
</dl></div>
<p>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665643"></a><h2>MULTIPLE QUERIES</h2>
+<a name="id2653897"></a><h2>MULTIPLE QUERIES</h2>
<p>
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
supports
@@ -653,7 +659,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665729"></a><h2>IDN SUPPORT</h2>
+<a name="id2654051"></a><h2>IDN SUPPORT</h2>
<p>
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
@@ -667,14 +673,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665962"></a><h2>FILES</h2>
+<a name="id2654080"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
<p><code class="filename">${HOME}/.digrc</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665984"></a><h2>SEE ALSO</h2>
+<a name="id2654101"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
@@ -682,7 +688,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2666021"></a><h2>BUGS</h2>
+<a name="id2654138"></a><h2>BUGS</h2>
<p>
There are probably too many query options.
</p>
diff --git a/doc/arm/man.dnssec-checkds.html b/doc/arm/man.dnssec-checkds.html
new file mode 100644
index 000000000000..74fe87af4185
--- /dev/null
+++ b/doc/arm/man.dnssec-checkds.html
@@ -0,0 +1,122 @@
+<!--
+ - Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2000-2003 Internet Software Consortium.
+ -
+ - 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$ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>dnssec-checkds</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
+<link rel="start" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
+<link rel="up" href="Bv9ARM.ch10.html" title="Manual pages">
+<link rel="prev" href="man.host.html" title="host">
+<link rel="next" href="man.dnssec-coverage.html" title="dnssec-coverage">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="navheader">
+<table width="100%" summary="Navigation header">
+<tr><th colspan="3" align="center"><span class="application">dnssec-checkds</span></th></tr>
+<tr>
+<td width="20%" align="left">
+<a accesskey="p" href="man.host.html">Prev</a> </td>
+<th width="60%" align="center">Manual pages</th>
+<td width="20%" align="right"> <a accesskey="n" href="man.dnssec-coverage.html">Next</a>
+</td>
+</tr>
+</table>
+<hr>
+</div>
+<div class="refentry" lang="en">
+<a name="man.dnssec-checkds"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2>Name</h2>
+<p><span class="application">dnssec-checkds</span> &#8212; A DNSSEC delegation consistency checking tool.</p>
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="cmdsynopsis"><p><code class="command">dnssec-checkds</code> [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>dig path</code></em></code>] [<code class="option">-D <em class="replaceable"><code>dsfromkey path</code></em></code>] {zone}</p></div>
+<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>dig path</code></em></code>] [<code class="option">-D <em class="replaceable"><code>dsfromkey path</code></em></code>] {zone}</p></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2612723"></a><h2>DESCRIPTION</h2>
+<p><span><strong class="command">dnssec-checkds</strong></span>
+ verifies the correctness of Delegation Signer (DS) or DNSSEC
+ Lookaside Validation (DLV) resource records for keys in a specified
+ zone.
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2612737"></a><h2>OPTIONS</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt>
+<dd><p>
+ If a <code class="option">file</code> is specified, then the zone is
+ read from that file to find the DNSKEY records. If not,
+ then the DNSKEY records for the zone are looked up in the DNS.
+ </p></dd>
+<dt><span class="term">-l <em class="replaceable"><code>domain</code></em></span></dt>
+<dd><p>
+ Check for a DLV record in the specified lookaside domain,
+ instead of checking for a DS record in the zone's parent.
+ For example, to check for DLV records for "example.com"
+ in ISC's DLV zone, use:
+ <span><strong class="command">dnssec-checkds -l dlv.isc.org example.com</strong></span>
+ </p></dd>
+<dt><span class="term">-d <em class="replaceable"><code>dig path</code></em></span></dt>
+<dd><p>
+ Specifies a path to a <span><strong class="command">dig</strong></span> binary. Used
+ for testing.
+ </p></dd>
+<dt><span class="term">-D <em class="replaceable"><code>dsfromkey path</code></em></span></dt>
+<dd><p>
+ Specifies a path to a <span><strong class="command">dnssec-dsfromkey</strong></span> binary.
+ Used for testing.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2612839"></a><h2>SEE ALSO</h2>
+<p><span class="citerefentry"><span class="refentrytitle">dnssec-dsfromkey</span>(8)</span>,
+ <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
+ <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2612873"></a><h2>AUTHOR</h2>
+<p><span class="corpauthor">Internet Systems Consortium</span>
+ </p>
+</div>
+</div>
+<div class="navfooter">
+<hr>
+<table width="100%" summary="Navigation footer">
+<tr>
+<td width="40%" align="left">
+<a accesskey="p" href="man.host.html">Prev</a> </td>
+<td width="20%" align="center"><a accesskey="u" href="Bv9ARM.ch10.html">Up</a></td>
+<td width="40%" align="right"> <a accesskey="n" href="man.dnssec-coverage.html">Next</a>
+</td>
+</tr>
+<tr>
+<td width="40%" align="left" valign="top">host </td>
+<td width="20%" align="center"><a accesskey="h" href="Bv9ARM.html">Home</a></td>
+<td width="40%" align="right" valign="top"> <span class="application">dnssec-coverage</span>
+</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
diff --git a/doc/arm/man.dnssec-coverage.html b/doc/arm/man.dnssec-coverage.html
new file mode 100644
index 000000000000..e8c7a22ea009
--- /dev/null
+++ b/doc/arm/man.dnssec-coverage.html
@@ -0,0 +1,205 @@
+<!--
+ - Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2000-2003 Internet Software Consortium.
+ -
+ - 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$ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>dnssec-coverage</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
+<link rel="start" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
+<link rel="up" href="Bv9ARM.ch10.html" title="Manual pages">
+<link rel="prev" href="man.dnssec-checkds.html" title="dnssec-checkds">
+<link rel="next" href="man.dnssec-dsfromkey.html" title="dnssec-dsfromkey">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="navheader">
+<table width="100%" summary="Navigation header">
+<tr><th colspan="3" align="center"><span class="application">dnssec-coverage</span></th></tr>
+<tr>
+<td width="20%" align="left">
+<a accesskey="p" href="man.dnssec-checkds.html">Prev</a> </td>
+<th width="60%" align="center">Manual pages</th>
+<td width="20%" align="right"> <a accesskey="n" href="man.dnssec-dsfromkey.html">Next</a>
+</td>
+</tr>
+</table>
+<hr>
+</div>
+<div class="refentry" lang="en">
+<a name="man.dnssec-coverage"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2>Name</h2>
+<p><span class="application">dnssec-coverage</span> &#8212; checks future DNSKEY coverage for a zone</p>
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="cmdsynopsis"><p><code class="command">dnssec-coverage</code> [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>DNSKEY TTL</code></em></code>] [<code class="option">-m <em class="replaceable"><code>max TTL</code></em></code>] [<code class="option">-r <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-c <em class="replaceable"><code>compilezone path</code></em></code>] [zone]</p></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2613986"></a><h2>DESCRIPTION</h2>
+<p><span><strong class="command">dnssec-coverage</strong></span>
+ verifies that the DNSSEC keys for a given zone or a set of zones
+ have timing metadata set properly to ensure no future lapses in DNSSEC
+ coverage.
+ </p>
+<p>
+ If <code class="option">zone</code> is specified, then keys found in
+ the key repository matching that zone are scanned, and an ordered
+ list is generated of the events scheduled for that key (i.e.,
+ publication, activation, inactivation, deletion). The list of
+ events is walked in order of occurrence. Warnings are generated
+ if any event is scheduled which could cause the zone to enter a
+ state in which validation failures might occur: for example, if
+ the number of published or active keys for a given algorithm drops
+ to zero, or if a key is deleted from the zone too soon after a new
+ key is rolled, and cached data signed by the prior key has not had
+ time to expire from resolver caches.
+ </p>
+<p>
+ If <code class="option">zone</code> is not specified, then all keys in the
+ key repository will be scanned, and all zones for which there are
+ keys will be analyzed. (Note: This method of reporting is only
+ accurate if all the zones that have keys in a given repository
+ share the same TTL parameters.)
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2614012"></a><h2>OPTIONS</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt>
+<dd><p>
+ If a <code class="option">file</code> is specified, then the zone is
+ read from that file; the largest TTL and the DNSKEY TTL are
+ determined directly from the zone data, and the
+ <code class="option">-m</code> and <code class="option">-d</code> options do
+ not need to be specified on the command line.
+ </p></dd>
+<dt><span class="term">-K <em class="replaceable"><code>directory</code></em></span></dt>
+<dd><p>
+ Sets the directory in which keys can be found. Defaults to the
+ current working directory.
+ </p></dd>
+<dt><span class="term">-m <em class="replaceable"><code>maximum TTL</code></em></span></dt>
+<dd>
+<p>
+ Sets the value to be used as the maximum TTL for the zone or
+ zones being analyzed when determining whether there is a
+ possibility of validation failure. When a zone-signing key is
+ deactivated, there must be enough time for the record in the
+ zone with the longest TTL to have expired from resolver caches
+ before that key can be purged from the DNSKEY RRset. If that
+ condition does not apply, a warning will be generated.
+ </p>
+<p>
+ The length of the TTL can be set in seconds, or in larger units
+ of time by adding a suffix: 'mi' for minutes, 'h' for hours,
+ 'd' for days, 'w' for weeks, 'mo' for months, 'y' for years.
+ </p>
+<p>
+ This option is mandatory unless the <code class="option">-f</code> has
+ been used to specify a zone file. (If <code class="option">-f</code> has
+ been specified, this option may still be used; it will overrde
+ the value found in the file.)
+ </p>
+</dd>
+<dt><span class="term">-d <em class="replaceable"><code>DNSKEY TTL</code></em></span></dt>
+<dd>
+<p>
+ Sets the value to be used as the DNSKEY TTL for the zone or
+ zones being analyzed when determining whether there is a
+ possibility of validation failure. When a key is rolled (that
+ is, replaced with a new key), there must be enough time
+ for the old DNSKEY RRset to have expired from resolver caches
+ before the new key is activated and begins generating
+ signatures. If that condition does not apply, a warning
+ will be generated.
+ </p>
+<p>
+ The length of the TTL can be set in seconds, or in larger units
+ of time by adding a suffix: 'mi' for minutes, 'h' for hours,
+ 'd' for days, 'w' for weeks, 'mo' for months, 'y' for years.
+ </p>
+<p>
+ This option is mandatory unless the <code class="option">-f</code> has
+ been used to specify a zone file, or a default key TTL was
+ set with the <code class="option">-L</code> to
+ <span><strong class="command">dnssec-keygen</strong></span>. (If either of those is true,
+ this option may still be used; it will overrde the value found
+ in the zone or key file.)
+ </p>
+</dd>
+<dt><span class="term">-r <em class="replaceable"><code>resign interval</code></em></span></dt>
+<dd>
+<p>
+ Sets the value to be used as the resign interval for the zone
+ or zones being analyzed when determining whether there is a
+ possibility of validation failure. This value defaults to
+ 22.5 days, which is also the default in
+ <span><strong class="command">named</strong></span>. However, if it has been changed
+ by the <code class="option">sig-validity-interval</code> option in
+ <code class="filename">named.conf</code>, then it should also be
+ changed here.
+ </p>
+<p>
+ The length of the interval can be set in seconds, or in larger
+ units of time by adding a suffix: 'mi' for minutes, 'h' for hours,
+ 'd' for days, 'w' for weeks, 'mo' for months, 'y' for years.
+ </p>
+</dd>
+<dt><span class="term">-c <em class="replaceable"><code>compilezone path</code></em></span></dt>
+<dd><p>
+ Specifies a path to a <span><strong class="command">named-compilezone</strong></span> binary.
+ Used for testing.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2614400"></a><h2>SEE ALSO</h2>
+<p>
+ <span class="citerefentry"><span class="refentrytitle">dnssec-checkds</span>(8)</span>,
+ <span class="citerefentry"><span class="refentrytitle">dnssec-dsfromkey</span>(8)</span>,
+ <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
+ <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2614443"></a><h2>AUTHOR</h2>
+<p><span class="corpauthor">Internet Systems Consortium</span>
+ </p>
+</div>
+</div>
+<div class="navfooter">
+<hr>
+<table width="100%" summary="Navigation footer">
+<tr>
+<td width="40%" align="left">
+<a accesskey="p" href="man.dnssec-checkds.html">Prev</a> </td>
+<td width="20%" align="center"><a accesskey="u" href="Bv9ARM.ch10.html">Up</a></td>
+<td width="40%" align="right"> <a accesskey="n" href="man.dnssec-dsfromkey.html">Next</a>
+</td>
+</tr>
+<tr>
+<td width="40%" align="left" valign="top">
+<span class="application">dnssec-checkds</span> </td>
+<td width="20%" align="center"><a accesskey="h" href="Bv9ARM.html">Home</a></td>
+<td width="40%" align="right" valign="top"> <span class="application">dnssec-dsfromkey</span>
+</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
diff --git a/doc/arm/man.dnssec-dsfromkey.html b/doc/arm/man.dnssec-dsfromkey.html
index bb8d13607fff..e9e07c2273e1 100644
--- a/doc/arm/man.dnssec-dsfromkey.html
+++ b/doc/arm/man.dnssec-dsfromkey.html
@@ -51,14 +51,14 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> {-s} [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-s</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-A</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {dnsname}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2615475"></a><h2>DESCRIPTION</h2>
+<a name="id2615180"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-dsfromkey</strong></span>
outputs the Delegation Signer (DS) resource record (RR), as defined in
RFC 3658 and RFC 4509, for the given key(s).
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2615489"></a><h2>OPTIONS</h2>
+<a name="id2615194"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-1</span></dt>
<dd><p>
@@ -135,7 +135,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2615860"></a><h2>EXAMPLE</h2>
+<a name="id2615770"></a><h2>EXAMPLE</h2>
<p>
To build the SHA-256 DS RR from the
<strong class="userinput"><code>Kexample.com.+003+26160</code></strong>
@@ -150,7 +150,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2615896"></a><h2>FILES</h2>
+<a name="id2615875"></a><h2>FILES</h2>
<p>
The keyfile can be designed by the key identification
<code class="filename">Knnnn.+aaa+iiiii</code> or the full file name
@@ -164,13 +164,13 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2615938"></a><h2>CAVEAT</h2>
+<a name="id2616736"></a><h2>CAVEAT</h2>
<p>
A keyfile error can give a "file not found" even if the file exists.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2615947"></a><h2>SEE ALSO</h2>
+<a name="id2616745"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -180,7 +180,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2615987"></a><h2>AUTHOR</h2>
+<a name="id2616785"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-keyfromlabel.html b/doc/arm/man.dnssec-keyfromlabel.html
index dad88378e892..cb1c8db18be4 100644
--- a/doc/arm/man.dnssec-keyfromlabel.html
+++ b/doc/arm/man.dnssec-keyfromlabel.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-keyfromlabel</code> {-l <em class="replaceable"><code>label</code></em>} [<code class="option">-3</code>] [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-k</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-y</code>] {name}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2616617"></a><h2>DESCRIPTION</h2>
+<a name="id2616118"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-keyfromlabel</strong></span>
gets keys with the given label from a crypto hardware and builds
key files for DNSSEC (Secure DNS), as defined in RFC 2535
@@ -63,7 +63,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2616637"></a><h2>OPTIONS</h2>
+<a name="id2616138"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
@@ -192,7 +192,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2618535"></a><h2>TIMING OPTIONS</h2>
+<a name="id2617968"></a><h2>TIMING OPTIONS</h2>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
@@ -239,7 +239,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2618633"></a><h2>GENERATED KEY FILES</h2>
+<a name="id2662302"></a><h2>GENERATED KEY FILES</h2>
<p>
When <span><strong class="command">dnssec-keyfromlabel</strong></span> completes
successfully,
@@ -278,7 +278,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2669176"></a><h2>SEE ALSO</h2>
+<a name="id2662396"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -286,7 +286,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2669209"></a><h2>AUTHOR</h2>
+<a name="id2662498"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-keygen.html b/doc/arm/man.dnssec-keygen.html
index 8f846e0c34e6..55d8532a4a2d 100644
--- a/doc/arm/man.dnssec-keygen.html
+++ b/doc/arm/man.dnssec-keygen.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-3</code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-C</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-k</code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-q</code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {name}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2617453"></a><h2>DESCRIPTION</h2>
+<a name="id2617296"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-keygen</strong></span>
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535
and RFC 4034. It can also generate keys for use with
@@ -64,7 +64,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2617474"></a><h2>OPTIONS</h2>
+<a name="id2617316"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
@@ -274,7 +274,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2669682"></a><h2>TIMING OPTIONS</h2>
+<a name="id2662970"></a><h2>TIMING OPTIONS</h2>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
@@ -345,7 +345,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2669872"></a><h2>GENERATED KEYS</h2>
+<a name="id2663160"></a><h2>GENERATED KEYS</h2>
<p>
When <span><strong class="command">dnssec-keygen</strong></span> completes
successfully,
@@ -391,7 +391,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2669979"></a><h2>EXAMPLE</h2>
+<a name="id2663336"></a><h2>EXAMPLE</h2>
<p>
To generate a 768-bit DSA key for the domain
<strong class="userinput"><code>example.com</code></strong>, the following command would be
@@ -412,7 +412,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2670036"></a><h2>SEE ALSO</h2>
+<a name="id2663461"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 2539</em>,
@@ -421,7 +421,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2670067"></a><h2>AUTHOR</h2>
+<a name="id2663492"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-revoke.html b/doc/arm/man.dnssec-revoke.html
index c6490eff2b85..43ed05402f21 100644
--- a/doc/arm/man.dnssec-revoke.html
+++ b/doc/arm/man.dnssec-revoke.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-revoke</code> [<code class="option">-hr</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f</code>] [<code class="option">-R</code>] {keyfile}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2617950"></a><h2>DESCRIPTION</h2>
+<a name="id2618407"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-revoke</strong></span>
reads a DNSSEC key file, sets the REVOKED bit on the key as defined
in RFC 5011, and creates a new pair of key files containing the
@@ -58,7 +58,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2617964"></a><h2>OPTIONS</h2>
+<a name="id2618421"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -96,14 +96,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2618085"></a><h2>SEE ALSO</h2>
+<a name="id2618541"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 5011</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2618109"></a><h2>AUTHOR</h2>
+<a name="id2618566"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-settime.html b/doc/arm/man.dnssec-settime.html
index 3e121c4e2645..498ea96f0a3f 100644
--- a/doc/arm/man.dnssec-settime.html
+++ b/doc/arm/man.dnssec-settime.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-settime</code> [<code class="option">-f</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-h</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] {keyfile}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619165"></a><h2>DESCRIPTION</h2>
+<a name="id2618803"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-settime</strong></span>
reads a DNSSEC private key file and sets the key timing metadata
as specified by the <code class="option">-P</code>, <code class="option">-A</code>,
@@ -76,7 +76,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619224"></a><h2>OPTIONS</h2>
+<a name="id2618861"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-f</span></dt>
<dd><p>
@@ -118,7 +118,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619346"></a><h2>TIMING OPTIONS</h2>
+<a name="id2619051"></a><h2>TIMING OPTIONS</h2>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
@@ -197,7 +197,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2620167"></a><h2>PRINTING OPTIONS</h2>
+<a name="id2619326"></a><h2>PRINTING OPTIONS</h2>
<p>
<span><strong class="command">dnssec-settime</strong></span> can also be used to print the
timing metadata associated with a key.
@@ -223,7 +223,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2620315"></a><h2>SEE ALSO</h2>
+<a name="id2619406"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -231,7 +231,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2621372"></a><h2>AUTHOR</h2>
+<a name="id2619440"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-signzone.html b/doc/arm/man.dnssec-signzone.html
index 290e7700973c..6b126fe661b4 100644
--- a/doc/arm/man.dnssec-signzone.html
+++ b/doc/arm/man.dnssec-signzone.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-P</code>] [<code class="option">-p</code>] [<code class="option">-R</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S</code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-T <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-t</code>] [<code class="option">-u</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-X <em class="replaceable"><code>extended end-time</code></em></code>] [<code class="option">-x</code>] [<code class="option">-z</code>] [<code class="option">-3 <em class="replaceable"><code>salt</code></em></code>] [<code class="option">-H <em class="replaceable"><code>iterations</code></em></code>] [<code class="option">-A</code>] {zonefile} [key...]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2620935"></a><h2>DESCRIPTION</h2>
+<a name="id2633714"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-signzone</strong></span>
signs a zone. It generates
NSEC and RRSIG records and produces a signed version of the
@@ -61,7 +61,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2620954"></a><h2>OPTIONS</h2>
+<a name="id2633733"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a</span></dt>
<dd><p>
@@ -306,10 +306,10 @@
This option skips these tests.
</p>
</dd>
-<dt><span class="term">-R</span></dt>
+<dt><span class="term">-Q</span></dt>
<dd>
<p>
- Remove signatures from keys that no longer exist.
+ Remove signatures from keys that are no longer active.
</p>
<p>
Normally, when a previously-signed zone is passed as input
@@ -317,9 +317,24 @@
replaced with a new one, signatures from the old key
that are still within their validity period are retained.
This allows the zone to continue to validate with cached
- copies of the old DNSKEY RRset. The <code class="option">-R</code> forces
- <span><strong class="command">dnssec-signzone</strong></span> to remove all orphaned
- signatures.
+ copies of the old DNSKEY RRset. The <code class="option">-Q</code>
+ forces <span><strong class="command">dnssec-signzone</strong></span> to remove
+ signatures from keys that are no longer active. This
+ enables ZSK rollover using the procedure described in
+ RFC 4641, section 4.2.1.1 ("Pre-Publish Key Rollover").
+ </p>
+</dd>
+<dt><span class="term">-R</span></dt>
+<dd>
+<p>
+ Remove signatures from keys that are no longer published.
+ </p>
+<p>
+ This option is similar to <code class="option">-Q</code>, except it
+ forces <span><strong class="command">dnssec-signzone</strong></span> to signatures from
+ keys that are no longer published. This enables ZSK rollover
+ using the procedure described in RFC 4641, section 4.2.1.2
+ ("Double Signature Zone Signing Key Rollover").
</p>
</dd>
<dt><span class="term">-r <em class="replaceable"><code>randomdev</code></em></span></dt>
@@ -432,7 +447,7 @@
</p></dd>
<dt><span class="term">-H <em class="replaceable"><code>iterations</code></em></span></dt>
<dd><p>
- When generating an NSEC3 chain, use this many interations. The
+ When generating an NSEC3 chain, use this many iterations. The
default is 10.
</p></dd>
<dt><span class="term">-A</span></dt>
@@ -464,7 +479,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2675701"></a><h2>EXAMPLE</h2>
+<a name="id2670004"></a><h2>EXAMPLE</h2>
<p>
The following command signs the <strong class="userinput"><code>example.com</code></strong>
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
@@ -494,14 +509,14 @@ db.example.com.signed
%</pre>
</div>
<div class="refsect1" lang="en">
-<a name="id2675848"></a><h2>SEE ALSO</h2>
+<a name="id2670083"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
- <em class="citetitle">RFC 4033</em>.
+ <em class="citetitle">RFC 4033</em>, <em class="citetitle">RFC 4641</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2675873"></a><h2>AUTHOR</h2>
+<a name="id2670110"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-verify.html b/doc/arm/man.dnssec-verify.html
index d8a0bf0ebb4b..09f287e58c9d 100644
--- a/doc/arm/man.dnssec-verify.html
+++ b/doc/arm/man.dnssec-verify.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-verify</code> [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-x</code>] [<code class="option">-z</code>] {zonefile}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2622443"></a><h2>DESCRIPTION</h2>
+<a name="id2621361"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-verify</strong></span>
verifies that a zone is fully signed for each algorithm found
in the DNSKEY RRset for the zone, and that the NSEC / NSEC3
@@ -58,7 +58,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2622457"></a><h2>OPTIONS</h2>
+<a name="id2621374"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd><p>
@@ -120,7 +120,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2622606"></a><h2>SEE ALSO</h2>
+<a name="id2627941"></a><h2>SEE ALSO</h2>
<p>
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -128,7 +128,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2622632"></a><h2>AUTHOR</h2>
+<a name="id2627966"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.genrandom.html b/doc/arm/man.genrandom.html
index e7f0eebaf6ff..2052cb6b8259 100644
--- a/doc/arm/man.genrandom.html
+++ b/doc/arm/man.genrandom.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">genrandom</code> [<code class="option">-n <em class="replaceable"><code>number</code></em></code>] {<em class="replaceable"><code>size</code></em>} {<em class="replaceable"><code>filename</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619662"></a><h2>DESCRIPTION</h2>
+<a name="id2659150"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">genrandom</strong></span>
generates a file or a set of files containing a specified quantity
@@ -59,7 +59,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2658794"></a><h2>ARGUMENTS</h2>
+<a name="id2659165"></a><h2>ARGUMENTS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-n <em class="replaceable"><code>number</code></em></span></dt>
<dd><p>
@@ -77,14 +77,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2658855"></a><h2>SEE ALSO</h2>
+<a name="id2659294"></a><h2>SEE ALSO</h2>
<p>
<span class="citerefentry"><span class="refentrytitle">rand</span>(3)</span>,
<span class="citerefentry"><span class="refentrytitle">arc4random</span>(3)</span>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2658882"></a><h2>AUTHOR</h2>
+<a name="id2659321"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.host.html b/doc/arm/man.host.html
index 2166dd224a70..b01b72245315 100644
--- a/doc/arm/man.host.html
+++ b/doc/arm/man.host.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] {name} [server]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2612042"></a><h2>DESCRIPTION</h2>
+<a name="id2612021"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">host</strong></span>
is a simple utility for performing DNS lookups.
It is normally used to convert names to IP addresses and vice versa.
@@ -202,7 +202,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613034"></a><h2>IDN SUPPORT</h2>
+<a name="id2612535"></a><h2>IDN SUPPORT</h2>
<p>
If <span><strong class="command">host</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
@@ -216,12 +216,12 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613131"></a><h2>FILES</h2>
+<a name="id2612564"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613145"></a><h2>SEE ALSO</h2>
+<a name="id2612578"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
</p>
diff --git a/doc/arm/man.isc-hmac-fixup.html b/doc/arm/man.isc-hmac-fixup.html
index 5b35c3854ec8..6b60d3b27393 100644
--- a/doc/arm/man.isc-hmac-fixup.html
+++ b/doc/arm/man.isc-hmac-fixup.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">isc-hmac-fixup</code> {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>secret</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2659345"></a><h2>DESCRIPTION</h2>
+<a name="id2618278"></a><h2>DESCRIPTION</h2>
<p>
Versions of BIND 9 up to and including BIND 9.6 had a bug causing
HMAC-SHA* TSIG keys which were longer than the digest length of the
@@ -76,7 +76,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659372"></a><h2>SECURITY CONSIDERATIONS</h2>
+<a name="id2660972"></a><h2>SECURITY CONSIDERATIONS</h2>
<p>
Secrets that have been converted by <span><strong class="command">isc-hmac-fixup</strong></span>
are shortened, but as this is how the HMAC protocol works in
@@ -87,14 +87,14 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659388"></a><h2>SEE ALSO</h2>
+<a name="id2660988"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 2104</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659405"></a><h2>AUTHOR</h2>
+<a name="id2661005"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named-checkconf.html b/doc/arm/man.named-checkconf.html
index d120cb44d1bd..ca13940f26fd 100644
--- a/doc/arm/man.named-checkconf.html
+++ b/doc/arm/man.named-checkconf.html
@@ -47,10 +47,10 @@
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
-<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-z</code>]</p></div>
+<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-x</code>] [<code class="option">-z</code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2628740"></a><h2>DESCRIPTION</h2>
+<a name="id2633915"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkconf</strong></span>
checks the syntax, but not the semantics, of a
<span><strong class="command">named</strong></span> configuration file. The file is parsed
@@ -70,7 +70,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2628810"></a><h2>OPTIONS</h2>
+<a name="id2633986"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -92,6 +92,16 @@
Print out the <code class="filename">named.conf</code> and included files
in canonical form if no errors were detected.
</p></dd>
+<dt><span class="term">-x</span></dt>
+<dd><p>
+ When printing the configuration files in canonical
+ form, obscure shared secrets by replacing them with
+ strings of question marks ('?'). This allows the
+ contents of <code class="filename">named.conf</code> and related
+ files to be shared &#8212; for example, when submitting
+ bug reports &#8212; without compromising private data.
+ This option cannot be used without <code class="option">-p</code>.
+ </p></dd>
<dt><span class="term">-z</span></dt>
<dd><p>
Perform a test load of all master zones found in
@@ -109,21 +119,21 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2634474"></a><h2>RETURN VALUES</h2>
+<a name="id2634210"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkconf</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2634488"></a><h2>SEE ALSO</h2>
+<a name="id2634224"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2634518"></a><h2>AUTHOR</h2>
+<a name="id2634253"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named-checkzone.html b/doc/arm/man.named-checkzone.html
index b828f19764c8..159f005a38e1 100644
--- a/doc/arm/man.named-checkzone.html
+++ b/doc/arm/man.named-checkzone.html
@@ -51,7 +51,7 @@
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2641051"></a><h2>DESCRIPTION</h2>
+<a name="id2637408"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkzone</strong></span>
checks the syntax and integrity of a zone file. It performs the
same checks as <span><strong class="command">named</strong></span> does when loading a
@@ -71,7 +71,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2678170"></a><h2>OPTIONS</h2>
+<a name="id2637458"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-d</span></dt>
<dd><p>
@@ -288,14 +288,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2679079"></a><h2>RETURN VALUES</h2>
+<a name="id2670998"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkzone</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2679093"></a><h2>SEE ALSO</h2>
+<a name="id2671080"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
<em class="citetitle">RFC 1035</em>,
@@ -303,7 +303,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2679126"></a><h2>AUTHOR</h2>
+<a name="id2671113"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named-journalprint.html b/doc/arm/man.named-journalprint.html
index 5c1f3db111f9..e391a4071f81 100644
--- a/doc/arm/man.named-journalprint.html
+++ b/doc/arm/man.named-journalprint.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">named-journalprint</code> {<em class="replaceable"><code>journal</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2616467"></a><h2>DESCRIPTION</h2>
+<a name="id2614871"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">named-journalprint</strong></span>
prints the contents of a zone journal file in a human-readable
@@ -76,7 +76,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2616513"></a><h2>SEE ALSO</h2>
+<a name="id2641882"></a><h2>SEE ALSO</h2>
<p>
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">nsupdate</span>(8)</span>,
@@ -84,7 +84,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2643372"></a><h2>AUTHOR</h2>
+<a name="id2641913"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named.html b/doc/arm/man.named.html
index 02d61353a8c6..dc9ebe4eeb37 100644
--- a/doc/arm/man.named.html
+++ b/doc/arm/man.named.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine-name</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-U <em class="replaceable"><code>#listeners</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2641300"></a><h2>DESCRIPTION</h2>
+<a name="id2640387"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named</strong></span>
is a Domain Name System (DNS) server,
part of the BIND 9 distribution from ISC. For more
@@ -65,7 +65,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2641331"></a><h2>OPTIONS</h2>
+<a name="id2641442"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-4</span></dt>
<dd><p>
@@ -256,7 +256,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2679261"></a><h2>SIGNALS</h2>
+<a name="id2666470"></a><h2>SIGNALS</h2>
<p>
In routine operation, signals should not be used to control
the nameserver; <span><strong class="command">rndc</strong></span> should be used
@@ -277,7 +277,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2679312"></a><h2>CONFIGURATION</h2>
+<a name="id2673074"></a><h2>CONFIGURATION</h2>
<p>
The <span><strong class="command">named</strong></span> configuration file is too complex
to describe in detail here. A complete description is provided
@@ -294,7 +294,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2679361"></a><h2>FILES</h2>
+<a name="id2673123"></a><h2>FILES</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt>
<dd><p>
@@ -307,7 +307,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2679404"></a><h2>SEE ALSO</h2>
+<a name="id2673166"></a><h2>SEE ALSO</h2>
<p><em class="citetitle">RFC 1033</em>,
<em class="citetitle">RFC 1034</em>,
<em class="citetitle">RFC 1035</em>,
@@ -320,7 +320,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2679475"></a><h2>AUTHOR</h2>
+<a name="id2673237"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.nsec3hash.html b/doc/arm/man.nsec3hash.html
index bdba8a683d2a..9f6215c363a4 100644
--- a/doc/arm/man.nsec3hash.html
+++ b/doc/arm/man.nsec3hash.html
@@ -48,7 +48,7 @@
<div class="cmdsynopsis"><p><code class="command">nsec3hash</code> {<em class="replaceable"><code>salt</code></em>} {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>iterations</code></em>} {<em class="replaceable"><code>domain</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2621016"></a><h2>DESCRIPTION</h2>
+<a name="id2661050"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">nsec3hash</strong></span> generates an NSEC3 hash based on
a set of NSEC3 parameters. This can be used to check the validity
@@ -56,7 +56,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659465"></a><h2>ARGUMENTS</h2>
+<a name="id2661065"></a><h2>ARGUMENTS</h2>
<div class="variablelist"><dl>
<dt><span class="term">salt</span></dt>
<dd><p>
@@ -80,14 +80,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2659527"></a><h2>SEE ALSO</h2>
+<a name="id2661127"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 5155</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659612"></a><h2>AUTHOR</h2>
+<a name="id2661144"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.nsupdate.html b/doc/arm/man.nsupdate.html
index 6793b42389cb..03c5f554ccf1 100644
--- a/doc/arm/man.nsupdate.html
+++ b/doc/arm/man.nsupdate.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [filename]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2643632"></a><h2>DESCRIPTION</h2>
+<a name="id2642172"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">nsupdate</strong></span>
is used to submit Dynamic DNS Update requests as defined in RFC 2136
to a name server.
@@ -210,7 +210,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2644170"></a><h2>INPUT FORMAT</h2>
+<a name="id2642574"></a><h2>INPUT FORMAT</h2>
<p><span><strong class="command">nsupdate</strong></span>
reads input from
<em class="parameter"><code>filename</code></em>
@@ -498,7 +498,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2681622"></a><h2>EXAMPLES</h2>
+<a name="id2674292"></a><h2>EXAMPLES</h2>
<p>
The examples below show how
<span><strong class="command">nsupdate</strong></span>
@@ -552,7 +552,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2681672"></a><h2>FILES</h2>
+<a name="id2674342"></a><h2>FILES</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="constant">/etc/resolv.conf</code></span></dt>
<dd><p>
@@ -575,7 +575,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2681755"></a><h2>SEE ALSO</h2>
+<a name="id2674425"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">RFC 2136</em>,
<em class="citetitle">RFC 3007</em>,
@@ -590,7 +590,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2681813"></a><h2>BUGS</h2>
+<a name="id2674483"></a><h2>BUGS</h2>
<p>
The TSIG key is redundantly stored in two separate files.
This is a consequence of nsupdate using the DST library
diff --git a/doc/arm/man.rndc-confgen.html b/doc/arm/man.rndc-confgen.html
index 1ad009bffb17..d394e0832fbf 100644
--- a/doc/arm/man.rndc-confgen.html
+++ b/doc/arm/man.rndc-confgen.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc-confgen</code> [<code class="option">-a</code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-c <em class="replaceable"><code>keyfile</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [<code class="option">-s <em class="replaceable"><code>address</code></em></code>] [<code class="option">-t <em class="replaceable"><code>chrootdir</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2657330"></a><h2>DESCRIPTION</h2>
+<a name="id2647597"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">rndc-confgen</strong></span>
generates configuration files
for <span><strong class="command">rndc</strong></span>. It can be used as a
@@ -66,7 +66,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2657396"></a><h2>OPTIONS</h2>
+<a name="id2649916"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a</span></dt>
<dd>
@@ -173,7 +173,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2659147"></a><h2>EXAMPLES</h2>
+<a name="id2650507"></a><h2>EXAMPLES</h2>
<p>
To allow <span><strong class="command">rndc</strong></span> to be used with
no manual configuration, run
@@ -190,7 +190,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659204"></a><h2>SEE ALSO</h2>
+<a name="id2650564"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -198,7 +198,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659242"></a><h2>AUTHOR</h2>
+<a name="id2659545"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.rndc.conf.html b/doc/arm/man.rndc.conf.html
index 6b9ea5fb7d73..9dcb4516a35c 100644
--- a/doc/arm/man.rndc.conf.html
+++ b/doc/arm/man.rndc.conf.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc.conf</code> </p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2649469"></a><h2>DESCRIPTION</h2>
+<a name="id2644379"></a><h2>DESCRIPTION</h2>
<p><code class="filename">rndc.conf</code> is the configuration file
for <span><strong class="command">rndc</strong></span>, the BIND 9 name server control
utility. This file has a similar structure and syntax to
@@ -135,7 +135,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2650392"></a><h2>EXAMPLE</h2>
+<a name="id2644551"></a><h2>EXAMPLE</h2>
<pre class="programlisting">
options {
default-server localhost;
@@ -209,7 +209,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2650514"></a><h2>NAME SERVER CONFIGURATION</h2>
+<a name="id2645014"></a><h2>NAME SERVER CONFIGURATION</h2>
<p>
The name server must be configured to accept rndc connections and
to recognize the key specified in the <code class="filename">rndc.conf</code>
@@ -219,7 +219,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2654704"></a><h2>SEE ALSO</h2>
+<a name="id2645040"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">mmencode</span>(1)</span>,
@@ -227,7 +227,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2654742"></a><h2>AUTHOR</h2>
+<a name="id2645078"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.rndc.html b/doc/arm/man.rndc.html
index 059f7263ca75..3a22cb1ae868 100644
--- a/doc/arm/man.rndc.html
+++ b/doc/arm/man.rndc.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc</code> [<code class="option">-b <em class="replaceable"><code>source-address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key-file</code></em></code>] [<code class="option">-s <em class="replaceable"><code>server</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y <em class="replaceable"><code>key_id</code></em></code>] {command}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2644796"></a><h2>DESCRIPTION</h2>
+<a name="id2642850"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">rndc</strong></span>
controls the operation of a name
server. It supersedes the <span><strong class="command">ndc</strong></span> utility
@@ -79,7 +79,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2644846"></a><h2>OPTIONS</h2>
+<a name="id2643856"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-b <em class="replaceable"><code>source-address</code></em></span></dt>
<dd><p>
@@ -143,19 +143,362 @@
or write access.
</p></dd>
</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id2644201"></a><h2>COMMANDS</h2>
<p>
- For the complete set of commands supported by <span><strong class="command">rndc</strong></span>,
- see the BIND 9 Administrator Reference Manual or run
- <span><strong class="command">rndc</strong></span> without arguments to see its help
- message.
+ A list of commands supported by <span><strong class="command">rndc</strong></span> can
+ be seen by running <span><strong class="command">rndc</strong></span> without arguments.
</p>
+<p>
+ Currently supported commands are:
+ </p>
+<div class="variablelist"><dl>
+<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt>
+<dd><p>
+ Reload configuration file and zones.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Reload the given zone.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Schedule zone maintenance for the given zone.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd>
+<p>
+ Retransfer the given slave zone from the master server.
+ </p>
+<p>
+ If the zone is configured to use
+ <span><strong class="command">inline-signing</strong></span>, the signed
+ version of the zone is discarded; after the
+ retransfer of the unsigned version is complete, the
+ signed version will be regenerated with all new
+ signatures.
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd>
+<p>
+ Fetch all DNSSEC keys for the given zone
+ from the key directory (see the
+ <span><strong class="command">key-directory</strong></span> option in
+ the BIND 9 Administrator Reference Manual). If they are within
+ their publication period, merge them into the
+ zone's DNSKEY RRset. If the DNSKEY RRset
+ is changed, then the zone is automatically
+ re-signed with the new key set.
+ </p>
+<p>
+ This command requires that the
+ <span><strong class="command">auto-dnssec</strong></span> zone option be set
+ to <code class="literal">allow</code> or
+ <code class="literal">maintain</code>,
+ and also requires the zone to be configured to
+ allow dynamic DNS.
+ (See "Dynamic Update Policies" in the Administrator
+ Reference Manual for more details.)
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>loadkeys <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd>
+<p>
+ Fetch all DNSSEC keys for the given zone
+ from the key directory. If they are within
+ their publication period, merge them into the
+ zone's DNSKEY RRset. Unlike <span><strong class="command">rndc
+ sign</strong></span>, however, the zone is not
+ immediately re-signed by the new keys, but is
+ allowed to incrementally re-sign over time.
+ </p>
+<p>
+ This command requires that the
+ <span><strong class="command">auto-dnssec</strong></span> zone option
+ be set to <code class="literal">maintain</code>,
+ and also requires the zone to be configured to
+ allow dynamic DNS.
+ (See "Dynamic Update Policies" in the Administrator
+ Reference Manual for more details.)
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Suspend updates to a dynamic zone. If no zone is
+ specified, then all zones are suspended. This allows
+ manual edits to be made to a zone normally updated by
+ dynamic update. It also causes changes in the
+ journal file to be synced into the master file.
+ All dynamic update attempts will be refused while
+ the zone is frozen.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Enable updates to a frozen dynamic zone. If no
+ zone is specified, then all frozen zones are
+ enabled. This causes the server to reload the zone
+ from disk, and re-enables dynamic updates after the
+ load has completed. After a zone is thawed,
+ dynamic updates will no longer be refused. If
+ the zone has changed and the
+ <span><strong class="command">ixfr-from-differences</strong></span> option is
+ in use, then the journal file will be updated to
+ reflect changes in the zone. Otherwise, if the
+ zone has changed, any existing journal file will be
+ removed.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>sync [<span class="optional">-clean</span>] [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Sync changes in the journal file for a dynamic zone
+ to the master file. If the "-clean" option is
+ specified, the journal file is also removed. If
+ no zone is specified, then all zones are synced.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>notify <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt>
+<dd><p>
+ Resend NOTIFY messages for the zone.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt>
+<dd><p>
+ Reload the configuration file and load new zones,
+ but do not reload existing zone files even if they
+ have changed.
+ This is faster than a full <span><strong class="command">reload</strong></span> when there
+ is a large number of zones because it avoids the need
+ to examine the
+ modification times of the zones files.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt>
+<dd><p>
+ Write server statistics to the statistics file.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>querylog</code></strong> [<span class="optional">on|off</span>] </span></dt>
+<dd>
+<p>
+ Enable or disable query logging. (For backward
+ compatibility, this command can also be used without
+ an argument to toggle query logging on and off.)
+ </p>
+<p>
+ Query logging can also be enabled
+ by explicitly directing the <span><strong class="command">queries</strong></span>
+ <span><strong class="command">category</strong></span> to a
+ <span><strong class="command">channel</strong></span> in the
+ <span><strong class="command">logging</strong></span> section of
+ <code class="filename">named.conf</code> or by specifying
+ <span><strong class="command">querylog yes;</strong></span> in the
+ <span><strong class="command">options</strong></span> section of
+ <code class="filename">named.conf</code>.
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
+<dd><p>
+ Dump the server's caches (default) and/or zones to
+ the
+ dump file for the specified views. If no view is
+ specified, all
+ views are dumped.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>secroots [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt>
+<dd><p>
+ Dump the server's security roots to the secroots
+ file for the specified views. If no view is
+ specified, security roots for all
+ views are dumped.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt>
+<dd><p>
+ Stop the server, making sure any recent changes
+ made through dynamic update or IXFR are first saved to
+ the master files of the updated zones.
+ If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
+ This allows an external process to determine when <span><strong class="command">named</strong></span>
+ had completed stopping.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt>
+<dd><p>
+ Stop the server immediately. Recent changes
+ made through dynamic update or IXFR are not saved to
+ the master files, but will be rolled forward from the
+ journal files when the server is restarted.
+ If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned.
+ This allows an external process to determine when <span><strong class="command">named</strong></span>
+ had completed halting.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt>
+<dd><p>
+ Increment the servers debugging level by one.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt>
+<dd><p>
+ Sets the server's debugging level to an explicit
+ value.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt>
+<dd><p>
+ Sets the server's debugging level to 0.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt>
+<dd><p>
+ Flushes the server's cache.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt>
+<dd><p>
+ Flushes the given name from the server's DNS cache
+ and, if applicable, from the server's nameserver address
+ database or bad-server cache.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt>
+<dd><p>
+ Flushes the given name, and all of its subdomains,
+ from the server's DNS cache. Note that this does
+ <span class="emphasis"><em>not</em></span> affect he server's address
+ database or bad-server cache.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>status</code></strong></span></dt>
+<dd><p>
+ Display status of the server.
+ Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone
+ and the default <span><strong class="command">./IN</strong></span>
+ hint zone if there is not an
+ explicit root zone configured.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt>
+<dd><p>
+ Dump the list of queries <span><strong class="command">named</strong></span> is currently recursing
+ on.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt>
+<dd><p>
+ Enable, disable, or check the current status of
+ DNSSEC validation.
+ Note <span><strong class="command">dnssec-enable</strong></span> also needs to be
+ set to <strong class="userinput"><code>yes</code></strong> or
+ <strong class="userinput"><code>auto</code></strong> to be effective.
+ It defaults to enabled.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt>
+<dd><p>
+ List the names of all TSIG keys currently configured
+ for use by <span><strong class="command">named</strong></span> in each view. The
+ list both statically configured keys and dynamic
+ TKEY-negotiated keys.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt>
+<dd><p>
+ Delete a given TKEY-negotiated key from the server.
+ (This does not apply to statically configured TSIG
+ keys.)
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>addzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] <em class="replaceable"><code>configuration</code></em> </code></strong></span></dt>
+<dd>
+<p>
+ Add a zone while the server is running. This
+ command requires the
+ <span><strong class="command">allow-new-zones</strong></span> option to be set
+ to <strong class="userinput"><code>yes</code></strong>. The
+ <em class="replaceable"><code>configuration</code></em> string
+ specified on the command line is the zone
+ configuration text that would ordinarily be
+ placed in <code class="filename">named.conf</code>.
+ </p>
+<p>
+ The configuration is saved in a file called
+ <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>,
+ where <em class="replaceable"><code>hash</code></em> is a
+ cryptographic hash generated from the name of
+ the view. When <span><strong class="command">named</strong></span> is
+ restarted, the file will be loaded into the view
+ configuration, so that zones that were added
+ can persist after a restart.
+ </p>
+<p>
+ This sample <span><strong class="command">addzone</strong></span> command
+ would add the zone <code class="literal">example.com</code>
+ to the default view:
+ </p>
+<p>
+<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong>
+ </p>
+<p>
+ (Note the brackets and semi-colon around the zone
+ configuration text.)
+ </p>
+</dd>
+<dt><span class="term"><strong class="userinput"><code>delzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt>
+<dd><p>
+ Delete a zone while the server is running.
+ Only zones that were originally added via
+ <span><strong class="command">rndc addzone</strong></span> can be deleted
+ in this manner.
+ </p></dd>
+<dt><span class="term"><strong class="userinput"><code>signing [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>] <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt>
+<dd>
+<p>
+ List, edit, or remove the DNSSEC signing state for
+ the specified zone. The status of ongoing DNSSEC
+ operations (such as signing or generating
+ NSEC3 chains) is stored in the zone in the form
+ of DNS resource records of type
+ <span><strong class="command">sig-signing-type</strong></span>.
+ <span><strong class="command">rndc signing -list</strong></span> converts
+ these records into a human-readable form,
+ indicating which keys are currently signing
+ or have finished signing the zone, and which NSEC3
+ chains are being created or removed.
+ </p>
+<p>
+ <span><strong class="command">rndc signing -clear</strong></span> can remove
+ a single key (specified in the same format that
+ <span><strong class="command">rndc signing -list</strong></span> uses to
+ display it), or all keys. In either case, only
+ completed keys are removed; any record indicating
+ that a key has not yet finished signing the zone
+ will be retained.
+ </p>
+<p>
+ <span><strong class="command">rndc signing -nsec3param</strong></span> sets
+ the NSEC3 parameters for a zone. This is the
+ only supported mechanism for using NSEC3 with
+ <span><strong class="command">inline-signing</strong></span> zones.
+ Parameters are specified in the same format as
+ an NSEC3PARAM resource record: hash algorithm,
+ flags, iterations, and salt, in that order.
+ </p>
+<p>
+ Currently, the only defined value for hash algorithm
+ is <code class="literal">1</code>, representing SHA-1.
+ The <code class="option">flags</code> may be set to
+ <code class="literal">0</code> or <code class="literal">1</code>,
+ depending on whether you wish to set the opt-out
+ bit in the NSEC3 chain. <code class="option">iterations</code>
+ defines the number of additional times to apply
+ the algorithm when generating an NSEC3 hash. The
+ <code class="option">salt</code> is a string of data expressed
+ in hexadecimal, or a hyphen (`-') if no salt is
+ to be used.
+ </p>
+<p>
+ So, for example, to create an NSEC3 chain using
+ the SHA-1 hash algorithm, no opt-out flag,
+ 10 iterations, and a salt value of "FFFF", use:
+ <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF <em class="replaceable"><code>zone</code></em></strong></span>.
+ To set the opt-out flag, 15 iterations, and no
+ salt, use:
+ <span><strong class="command">rndc signing -nsec3param 1 1 15 - <em class="replaceable"><code>zone</code></em></strong></span>.
+ </p>
+<p>
+ <span><strong class="command">rndc signing -nsec3param none</strong></span>
+ removes an existing NSEC3 chain and replaces it
+ with NSEC.
+ </p>
+</dd>
+</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2646710"></a><h2>LIMITATIONS</h2>
-<p><span><strong class="command">rndc</strong></span>
- does not yet support all the commands of
- the BIND 8 <span><strong class="command">ndc</strong></span> utility.
- </p>
+<a name="id2677869"></a><h2>LIMITATIONS</h2>
<p>
There is currently no way to provide the shared secret for a
<code class="option">key_id</code> without using the configuration file.
@@ -165,7 +508,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2646741"></a><h2>SEE ALSO</h2>
+<a name="id2677888"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -175,7 +518,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2654647"></a><h2>AUTHOR</h2>
+<a name="id2677943"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/pkcs11.xml b/doc/arm/pkcs11.xml
index 8a0062f4adb4..b4e22bb351e5 100644
--- a/doc/arm/pkcs11.xml
+++ b/doc/arm/pkcs11.xml
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2010, 2012, 2013 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
@@ -70,13 +70,14 @@
</itemizedlist>
<para>The modified OpenSSL code is included in the BIND 9 release,
in the form of a context diff against the latest verions of
- OpenSSL. OpenSSL 0.9.8 and 1.0.0 are both supported; there are
+ OpenSSL. OpenSSL 0.9.8, 1.0.0 and 1.0.1 are supported; there are
separate diffs for each version. In the examples to follow,
- we use OpenSSL 0.9.8, but the same methods work with OpenSSL 1.0.0.
+ we use OpenSSL 0.9.8, but the same methods work with OpenSSL 1.0.0
+ and 1.0.1.
</para>
<note>
The latest OpenSSL versions at the time of the BIND release
- are 0.9.8s and 1.0.0f.
+ are 0.9.8y, 1.0.0k and 1.0.1e.
ISC will provide an updated patch as new versions of OpenSSL
are released. The version number in the following examples
is expected to change.</note>
diff --git a/doc/misc/options b/doc/misc/options
index 2c9cddde4bbe..8cd0adb70888 100644
--- a/doc/misc/options
+++ b/doc/misc/options
@@ -199,7 +199,6 @@ options {
recursion <boolean>;
recursive-clients <integer>;
request-ixfr <boolean>;
- request-ixfr <boolean>;
request-nsid <boolean>;
reserved-sockets <integer>;
resolver-query-timeout <integer>;
@@ -412,7 +411,6 @@ view <string> <optional_class> {
queryport-pool-updateinterval <integer>; // obsolete
recursion <boolean>;
request-ixfr <boolean>;
- request-ixfr <boolean>;
request-nsid <boolean>;
resolver-query-timeout <integer>;
response-policy { zone <quoted_string> [ policy ( given | disabled
diff --git a/lib/bind9/api b/lib/bind9/api
index a27437f4335b..0adc934e71ce 100644
--- a/lib/bind9/api
+++ b/lib/bind9/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 7
+LIBREVISION = 9
LIBAGE = 0
diff --git a/lib/bind9/check.c b/lib/bind9/check.c
index 91f8bff13e95..af1b87ae23fd 100644
--- a/lib/bind9/check.c
+++ b/lib/bind9/check.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -25,6 +25,7 @@
#include <isc/base64.h>
#include <isc/buffer.h>
+#include <isc/file.h>
#include <isc/log.h>
#include <isc/mem.h>
#include <isc/netaddr.h>
@@ -1145,7 +1146,7 @@ validate_masters(const cfg_obj_t *obj, const cfg_obj_t *config,
void *ptr;
DE_CONST(stack, ptr);
- memcpy(new, stack, oldsize);
+ memmove(new, stack, oldsize);
isc_mem_put(mctx, ptr, oldsize);
}
stack = new;
@@ -1776,6 +1777,35 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
}
/*
+ * Warn if key-directory doesn't exist
+ */
+ obj = NULL;
+ tresult = cfg_map_get(zoptions, "key-directory", &obj);
+ if (tresult == ISC_R_SUCCESS) {
+ const char *dir = cfg_obj_asstring(obj);
+ tresult = isc_file_isdirectory(dir);
+ switch (tresult) {
+ case ISC_R_SUCCESS:
+ break;
+ case ISC_R_FILENOTFOUND:
+ cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+ "key-directory: '%s' does not exist",
+ dir);
+ break;
+ case ISC_R_INVALIDFILE:
+ cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+ "key-directory: '%s' is not a directory",
+ dir);
+ break;
+ default:
+ cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+ "key-directory: '%s' %s",
+ dir, isc_result_totext(tresult));
+ result = tresult;
+ }
+ }
+
+ /*
* Check various options.
*/
tresult = check_options(zoptions, logctx, mctx, optlevel_zone);
@@ -1801,8 +1831,9 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
obj = NULL;
res1 = cfg_map_get(zoptions, "inline-signing", &obj);
if ((tresult != ISC_R_SUCCESS &&
- (ztype == MASTERZONE || ztype == HINTZONE)) ||
- (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS)) {
+ (ztype == MASTERZONE || ztype == HINTZONE ||
+ (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS &&
+ cfg_obj_asboolean(obj))))) {
cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR,
"zone '%s': missing 'file' entry",
znamestr);
diff --git a/lib/dns/Makefile.in b/lib/dns/Makefile.in
index b712ab1cd874..a3e3e9a4e86a 100644
--- a/lib/dns/Makefile.in
+++ b/lib/dns/Makefile.in
@@ -55,6 +55,8 @@ DSTOBJS = @DST_EXTRA_OBJS@ @OPENSSLLINKOBJS@ \
dst_api.@O@ dst_lib.@O@ dst_parse.@O@ dst_result.@O@ \
gssapi_link.@O@ gssapictx.@O@ hmac_link.@O@ key.@O@
+RRLOBJS = rrl.@O@
+
# Alphabetically
DNSOBJS = acache.@O@ acl.@O@ adb.@O@ byaddr.@O@ \
cache.@O@ callbacks.@O@ clientinfo.@O@ compress.@O@ \
@@ -67,14 +69,14 @@ DNSOBJS = acache.@O@ acl.@O@ adb.@O@ byaddr.@O@ \
portlist.@O@ private.@O@ \
rbt.@O@ rbtdb.@O@ rbtdb64.@O@ rcode.@O@ rdata.@O@ \
rdatalist.@O@ rdataset.@O@ rdatasetiter.@O@ rdataslab.@O@ \
- request.@O@ resolver.@O@ result.@O@ rootns.@O@ rpz.@O@ \
- rriterator.@O@ sdb.@O@ \
+ request.@O@ resolver.@O@ result.@O@ rootns.@O@ \
+ rpz.@O@ rriterator.@O@ sdb.@O@ \
sdlz.@O@ soa.@O@ ssu.@O@ ssu_external.@O@ \
stats.@O@ tcpmsg.@O@ time.@O@ timer.@O@ tkey.@O@ \
tsec.@O@ tsig.@O@ ttl.@O@ update.@O@ validator.@O@ \
version.@O@ view.@O@ xfrin.@O@ zone.@O@ zonekey.@O@ zt.@O@
-OBJS= ${DNSOBJS} ${OTHEROBJS} ${DSTOBJS}
+OBJS= ${DNSOBJS} ${OTHEROBJS} ${DSTOBJS} @RRLLINKOBJS@
# Alphabetically
OPENSSLGOSTLINKSRCS = opensslgost_link.c
@@ -101,7 +103,9 @@ DNSSRCS = acache.c acl.c adb.c byaddr.c \
tsec.c tsig.c ttl.c update.c validator.c \
version.c view.c xfrin.c zone.c zonekey.c zt.c ${OTHERSRCS}
-SRCS = ${DSTSRCS} ${DNSSRCS}
+RRLSRCS = rrl.c
+
+SRCS = ${DSTSRCS} ${DNSSRCS} @RRLLINKSRCS@
SUBDIRS = include
TARGETS = include/dns/enumtype.h include/dns/enumclass.h \
diff --git a/lib/dns/acache.c b/lib/dns/acache.c
index 6df9b9838635..d3d28f856171 100644
--- a/lib/dns/acache.c
+++ b/lib/dns/acache.c
@@ -1669,13 +1669,14 @@ dns_acache_cancelentry(dns_acacheentry_t *entry) {
REQUIRE(DNS_ACACHEENTRY_VALID(entry));
acache = entry->acache;
- callback_active = ISC_TF(entry->cbarg != NULL);
INSIST(DNS_ACACHE_VALID(entry->acache));
LOCK(&acache->lock);
ACACHE_LOCK(&acache->entrylocks[entry->locknum], isc_rwlocktype_write);
+ callback_active = ISC_TF(entry->cbarg != NULL);
+
/*
* Release dependencies stored in this entry as much as possible.
* The main link cannot be released, since the acache object has
diff --git a/lib/dns/acl.c b/lib/dns/acl.c
index 3221d30c2b52..dbc6f9cb4f3a 100644
--- a/lib/dns/acl.c
+++ b/lib/dns/acl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -291,8 +291,8 @@ dns_acl_merge(dns_acl_t *dest, dns_acl_t *source, isc_boolean_t pos)
return (ISC_R_NOMEMORY);
/* Copy in the original elements */
- memcpy(newmem, dest->elements,
- dest->length * sizeof(dns_aclelement_t));
+ memmove(newmem, dest->elements,
+ dest->length * sizeof(dns_aclelement_t));
/* Release the memory for the old elements array */
isc_mem_put(dest->mctx, dest->elements,
diff --git a/lib/dns/adb.c b/lib/dns/adb.c
index ef7875dcb46b..10d51bc44143 100644
--- a/lib/dns/adb.c
+++ b/lib/dns/adb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -852,12 +852,12 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
dns_rdataset_current(rdataset, &rdata);
if (rdtype == dns_rdatatype_a) {
INSIST(rdata.length == 4);
- memcpy(&ina.s_addr, rdata.data, 4);
+ memmove(&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);
+ memmove(in6a.s6_addr, rdata.data, 16);
isc_sockaddr_fromin6(&sockaddr, &in6a, 0);
hookhead = &adbname->v6;
}
diff --git a/lib/dns/api b/lib/dns/api
index a8881101f4e1..cc5437d0be7b 100644
--- a/lib/dns/api
+++ b/lib/dns/api
@@ -4,6 +4,6 @@
# 9.8: 80-89, 120-129
# 9.9: 90-109
# 9.9-sub: 130-139
-LIBINTERFACE = 99
-LIBREVISION = 1
-LIBAGE = 0
+LIBINTERFACE = 102
+LIBREVISION = 2
+LIBAGE = 2
diff --git a/lib/dns/client.c b/lib/dns/client.c
index fc551cf9dfe5..cee4fb268d71 100644
--- a/lib/dns/client.c
+++ b/lib/dns/client.c
@@ -249,13 +249,14 @@ static isc_result_t send_update(updatectx_t *uctx);
static isc_result_t
getudpdispatch(int family, dns_dispatchmgr_t *dispatchmgr,
isc_socketmgr_t *socketmgr, isc_taskmgr_t *taskmgr,
- isc_boolean_t is_shared, dns_dispatch_t **dispp)
+ isc_boolean_t is_shared, dns_dispatch_t **dispp,
+ isc_sockaddr_t *localaddr)
{
unsigned int attrs, attrmask;
- isc_sockaddr_t sa;
dns_dispatch_t *disp;
unsigned buffersize, maxbuffers, maxrequests, buckets, increment;
isc_result_t result;
+ isc_sockaddr_t anyaddr;
attrs = 0;
attrs |= DNS_DISPATCHATTR_UDP;
@@ -275,7 +276,10 @@ getudpdispatch(int family, dns_dispatchmgr_t *dispatchmgr,
attrmask |= DNS_DISPATCHATTR_IPV4;
attrmask |= DNS_DISPATCHATTR_IPV6;
- isc_sockaddr_anyofpf(&sa, family);
+ if (localaddr == NULL) {
+ localaddr = &anyaddr;
+ isc_sockaddr_anyofpf(localaddr, family);
+ }
buffersize = 4096;
maxbuffers = is_shared ? 1000 : 8;
@@ -285,7 +289,7 @@ getudpdispatch(int family, dns_dispatchmgr_t *dispatchmgr,
disp = NULL;
result = dns_dispatch_getudp(dispatchmgr, socketmgr,
- taskmgr, &sa,
+ taskmgr, localaddr,
buffersize, maxbuffers, maxrequests,
buckets, increment,
attrs, attrmask, &disp);
@@ -422,6 +426,19 @@ dns_client_createx(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr,
unsigned int options, dns_client_t **clientp)
{
+ isc_result_t result;
+ result = dns_client_createx2(mctx, actx, taskmgr, socketmgr, timermgr,
+ options, clientp, NULL, NULL);
+ return (result);
+}
+
+isc_result_t
+dns_client_createx2(isc_mem_t *mctx, isc_appctx_t *actx,
+ isc_taskmgr_t *taskmgr, isc_socketmgr_t *socketmgr,
+ isc_timermgr_t *timermgr, unsigned int options,
+ dns_client_t **clientp, isc_sockaddr_t *localaddr4,
+ isc_sockaddr_t *localaddr6)
+{
dns_client_t *client;
isc_result_t result;
dns_dispatchmgr_t *dispatchmgr = NULL;
@@ -460,17 +477,27 @@ dns_client_createx(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
goto cleanup;
client->dispatchmgr = dispatchmgr;
- /* TODO: whether to use dispatch v4 or v6 should be configurable */
+ /*
+ * If only one address family is specified, use it.
+ * If neither family is specified, or if both are, use both.
+ */
client->dispatchv4 = NULL;
+ if (localaddr4 != NULL || localaddr6 == NULL) {
+ result = getudpdispatch(AF_INET, dispatchmgr, socketmgr,
+ taskmgr, ISC_TRUE,
+ &dispatchv4, localaddr4);
+ if (result == ISC_R_SUCCESS)
+ client->dispatchv4 = dispatchv4;
+ }
+
client->dispatchv6 = NULL;
- result = getudpdispatch(AF_INET, dispatchmgr, socketmgr,
- taskmgr, ISC_TRUE, &dispatchv4);
- if (result == ISC_R_SUCCESS)
- client->dispatchv4 = dispatchv4;
- result = getudpdispatch(AF_INET6, dispatchmgr, socketmgr,
- taskmgr, ISC_TRUE, &dispatchv6);
- if (result == ISC_R_SUCCESS)
- client->dispatchv6 = dispatchv6;
+ if (localaddr6 != NULL || localaddr4 == NULL) {
+ result = getudpdispatch(AF_INET6, dispatchmgr, socketmgr,
+ taskmgr, ISC_TRUE,
+ &dispatchv6, localaddr6);
+ if (result == ISC_R_SUCCESS)
+ client->dispatchv6 = dispatchv6;
+ }
/* We need at least one of the dispatchers */
if (dispatchv4 == NULL && dispatchv6 == NULL) {
@@ -1094,11 +1121,23 @@ client_resfind(resctx_t *rctx, dns_fetchevent_t *event) {
UNLOCK(&rctx->lock);
}
+
+static void
+suspend(isc_task_t *task, isc_event_t *event) {
+ isc_appctx_t *actx = event->ev_arg;
+
+ UNUSED(task);
+
+ isc_app_ctxsuspend(actx);
+ isc_event_free(&event);
+}
+
static void
resolve_done(isc_task_t *task, isc_event_t *event) {
resarg_t *resarg = event->ev_arg;
dns_clientresevent_t *rev = (dns_clientresevent_t *)event;
dns_name_t *name;
+ isc_result_t result;
UNUSED(task);
@@ -1117,8 +1156,16 @@ resolve_done(isc_task_t *task, isc_event_t *event) {
if (!resarg->canceled) {
UNLOCK(&resarg->lock);
- /* Exit from the internal event loop */
- isc_app_ctxsuspend(resarg->actx);
+ /*
+ * We may or may not be running. isc__appctx_onrun will
+ * fail if we are currently running otherwise we post a
+ * action to call isc_app_ctxsuspend when we do start
+ * running.
+ */
+ result = isc_app_ctxonrun(resarg->actx, resarg->client->mctx,
+ task, suspend, resarg->actx);
+ if (result == ISC_R_ALREADYRUNNING)
+ isc_app_ctxsuspend(resarg->actx);
} else {
/*
* We have already exited from the loop (due to some
@@ -1310,9 +1357,8 @@ dns_client_startresolve(dns_client_t *client, dns_name_t *name,
ISC_LIST_APPEND(client->resctxs, rctx, link);
UNLOCK(&client->lock);
- client_resfind(rctx, NULL);
-
*transp = (dns_clientrestrans_t *)rctx;
+ client_resfind(rctx, NULL);
return (ISC_R_SUCCESS);
diff --git a/lib/dns/diff.c b/lib/dns/diff.c
index ff60d462f372..4517dade38dc 100644
--- a/lib/dns/diff.c
+++ b/lib/dns/diff.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -79,7 +79,7 @@ dns_difftuple_create(isc_mem_t *mctx,
datap = (unsigned char *)(t + 1);
- memcpy(datap, name->ndata, name->length);
+ memmove(datap, name->ndata, name->length);
dns_name_init(&t->name, NULL);
dns_name_clone(name, &t->name);
t->name.ndata = datap;
@@ -87,7 +87,7 @@ dns_difftuple_create(isc_mem_t *mctx,
t->ttl = ttl;
- memcpy(datap, rdata->data, rdata->length);
+ memmove(datap, rdata->data, rdata->length);
dns_rdata_init(&t->rdata);
dns_rdata_clone(rdata, &t->rdata);
t->rdata.data = datap;
@@ -379,15 +379,6 @@ diff_apply(dns_diff_t *diff, dns_db_t *db, dns_dbversion_t *ver,
diff->resign);
dns_db_setsigningtime(db, modified,
resign);
- if (diff->resign == 0 &&
- (op == DNS_DIFFOP_ADDRESIGN ||
- op == DNS_DIFFOP_DELRESIGN))
- isc_log_write(
- DIFF_COMMON_LOGARGS,
- ISC_LOG_WARNING,
- "resign requested "
- "with 0 resign "
- "interval");
}
} else if (result == DNS_R_UNCHANGED) {
/*
diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c
index 5063914a9b29..7af8e644b197 100644
--- a/lib/dns/dispatch.c
+++ b/lib/dns/dispatch.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -706,8 +706,8 @@ destroy_disp_ok(dns_dispatch_t *disp)
/*
* Called when refcount reaches 0 (and safe to destroy).
*
- * The dispatcher must not be locked.
- * The manager must be locked.
+ * The dispatcher must be locked.
+ * The manager must not be locked.
*/
static void
destroy_disp(isc_task_t *task, isc_event_t *event) {
@@ -778,6 +778,7 @@ port_search(dns_dispatch_t *disp, in_port_t port) {
static dispportentry_t *
new_portentry(dns_dispatch_t *disp, in_port_t port) {
dispportentry_t *portentry;
+ dns_qid_t *qid;
REQUIRE(disp->port_table != NULL);
@@ -786,10 +787,13 @@ new_portentry(dns_dispatch_t *disp, in_port_t port) {
return (portentry);
portentry->port = port;
- portentry->refs = 0;
+ portentry->refs = 1;
ISC_LINK_INIT(portentry, link);
+ qid = DNS_QID(disp);
+ LOCK(&qid->lock);
ISC_LIST_APPEND(disp->port_table[port % DNS_DISPATCH_PORTTABLESIZE],
portentry, link);
+ UNLOCK(&qid->lock);
return (portentry);
}
@@ -800,7 +804,6 @@ new_portentry(dns_dispatch_t *disp, in_port_t port) {
static void
deref_portentry(dns_dispatch_t *disp, dispportentry_t **portentryp) {
dispportentry_t *portentry = *portentryp;
- isc_boolean_t unlink = ISC_FALSE;
dns_qid_t *qid;
REQUIRE(disp->port_table != NULL);
@@ -809,15 +812,14 @@ deref_portentry(dns_dispatch_t *disp, dispportentry_t **portentryp) {
qid = DNS_QID(disp);
LOCK(&qid->lock);
portentry->refs--;
- unlink = ISC_TF(portentry->refs == 0);
- UNLOCK(&qid->lock);
- if (unlink) {
+ if (portentry->refs == 0) {
ISC_LIST_UNLINK(disp->port_table[portentry->port %
DNS_DISPATCH_PORTTABLESIZE],
portentry, link);
isc_mempool_put(disp->portpool, portentry);
}
+ UNLOCK(&qid->lock);
*portentryp = NULL;
}
@@ -832,6 +834,7 @@ socket_search(dns_qid_t *qid, isc_sockaddr_t *dest, in_port_t port,
{
dispsocket_t *dispsock;
+ REQUIRE(VALID_QID(qid));
REQUIRE(bucket < qid->qid_nbuckets);
dispsock = ISC_LIST_HEAD(qid->sock_table[bucket]);
@@ -938,8 +941,11 @@ get_dispsocket(dns_dispatch_t *disp, isc_sockaddr_t *dest,
result = ISC_R_NOMEMORY;
break;
}
+ } else {
+ LOCK(&qid->lock);
+ portentry->refs++;
+ UNLOCK(&qid->lock);
}
- portentry->refs++;
break;
} else if (result == ISC_R_NOPERM) {
char buf[ISC_SOCKADDR_FORMATSIZE];
@@ -1076,6 +1082,7 @@ entry_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
{
dns_dispentry_t *res;
+ REQUIRE(VALID_QID(qid));
REQUIRE(bucket < qid->qid_nbuckets);
res = ISC_LIST_HEAD(qid->qid_table[bucket]);
@@ -1428,8 +1435,8 @@ udp_recv(isc_event_t *ev_in, dns_dispatch_t *disp, dispsocket_t *dispsock) {
}
/*
- * If both dispatches are bound to an address then fail as
- * the addresses can't be equal (enforced by the IP stack).
+ * If each dispatch is bound to a different address
+ * then fail.
*
* Note under Linux a packet can be sent out via IPv4 socket
* and the response be received via a IPv6 socket.
@@ -1444,7 +1451,8 @@ udp_recv(isc_event_t *ev_in, dns_dispatch_t *disp, dispsocket_t *dispsock) {
}
isc_sockaddr_anyofpf(&a1, isc_sockaddr_pf(&resp->disp->local));
isc_sockaddr_anyofpf(&a2, isc_sockaddr_pf(&disp->local));
- if (!isc_sockaddr_eqaddr(&a1, &resp->disp->local) &&
+ if (!isc_sockaddr_eqaddr(&disp->local, &resp->disp->local) &&
+ !isc_sockaddr_eqaddr(&a1, &resp->disp->local) &&
!isc_sockaddr_eqaddr(&a2, &disp->local)) {
free_buffer(disp, ev->region.base, ev->region.length);
goto unlock;
@@ -2647,8 +2655,7 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, unsigned int maxrequests,
* MUST be unlocked, and not used by anything.
*/
static void
-dispatch_free(dns_dispatch_t **dispp)
-{
+dispatch_free(dns_dispatch_t **dispp) {
dns_dispatch_t *disp;
dns_dispatchmgr_t *mgr;
int i;
@@ -3311,17 +3318,17 @@ dns_dispatch_addresponse2(dns_dispatch_t *disp, isc_sockaddr_t *dest,
*/
LOCK(&qid->lock);
id = (dns_messageid_t)dispatch_random(DISP_ARC4CTX(disp));
- bucket = dns_hash(qid, dest, id, localport);
ok = ISC_FALSE;
- for (i = 0; i < 64; i++) {
+ i = 0;
+ do {
+ bucket = dns_hash(qid, dest, id, localport);
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, localport);
- }
+ } while (i++ < 64);
UNLOCK(&qid->lock);
if (!ok) {
@@ -3331,9 +3338,9 @@ dns_dispatch_addresponse2(dns_dispatch_t *disp, isc_sockaddr_t *dest,
res = isc_mempool_get(disp->mgr->rpool);
if (res == NULL) {
- UNLOCK(&disp->lock);
if (dispsocket != NULL)
destroy_dispsocket(disp, &dispsocket);
+ UNLOCK(&disp->lock);
return (ISC_R_NOMEMORY);
}
@@ -3708,7 +3715,7 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event) {
isc_event_free(ISC_EVENT_PTR(&newsevent));
return;
}
- memcpy(buf, sevent->region.base, sevent->n);
+ memmove(buf, sevent->region.base, sevent->n);
newsevent->region.base = buf;
newsevent->region.length = disp->mgr->buffersize;
newsevent->n = sevent->n;
diff --git a/lib/dns/dns64.c b/lib/dns/dns64.c
index 78eff579a2ba..7d47c66933b5 100644
--- a/lib/dns/dns64.c
+++ b/lib/dns/dns64.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2010, 2011, 2014 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
@@ -83,10 +83,10 @@ dns_dns64_create(isc_mem_t *mctx, isc_netaddr_t *prefix,
if (new == NULL)
return (ISC_R_NOMEMORY);
memset(new->bits, 0, sizeof(new->bits));
- memcpy(new->bits, prefix->type.in6.s6_addr, prefixlen / 8);
+ memmove(new->bits, prefix->type.in6.s6_addr, prefixlen / 8);
if (suffix != NULL)
- memcpy(new->bits + nbytes, suffix->type.in6.s6_addr + nbytes,
- 16 - nbytes);
+ memmove(new->bits + nbytes, suffix->type.in6.s6_addr + nbytes,
+ 16 - nbytes);
new->clients = NULL;
if (clients != NULL)
dns_acl_attach(clients, &new->clients);
@@ -155,7 +155,7 @@ dns_dns64_aaaafroma(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
struct in_addr ina;
isc_netaddr_t netaddr;
- memcpy(&ina.s_addr, a, 4);
+ memmove(&ina.s_addr, a, 4);
isc_netaddr_fromin(&netaddr, &ina);
result = dns_acl_match(&netaddr, NULL, dns64->mapped, env,
&match, NULL);
@@ -168,7 +168,7 @@ dns_dns64_aaaafroma(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
nbytes = dns64->prefixlen / 8;
INSIST(nbytes <= 12);
/* Copy prefix. */
- memcpy(aaaa, dns64->bits, nbytes);
+ memmove(aaaa, dns64->bits, nbytes);
/* Bits 64-71 are zeros. draft-ietf-behave-address-format-04 */
if (nbytes == 8)
aaaa[nbytes++] = 0;
@@ -180,7 +180,7 @@ dns_dns64_aaaafroma(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
aaaa[nbytes++] = 0;
}
/* Copy suffix. */
- memcpy(aaaa + nbytes, dns64->bits + nbytes, 16 - nbytes);
+ memmove(aaaa + nbytes, dns64->bits + nbytes, 16 - nbytes);
return (ISC_R_SUCCESS);
}
@@ -268,7 +268,7 @@ dns_dns64_aaaaok(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
if (aaaaok == NULL || !aaaaok[i]) {
dns_rdataset_current(rdataset, &rdata);
- memcpy(&in6.s6_addr, rdata.data, 16);
+ memmove(&in6.s6_addr, rdata.data, 16);
isc_netaddr_fromin6(&netaddr, &in6);
result = dns_acl_match(&netaddr, NULL,
diff --git a/lib/dns/dnssec.c b/lib/dns/dnssec.c
index d00c99b4124c..d7addc681430 100644
--- a/lib/dns/dnssec.c
+++ b/lib/dns/dnssec.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -295,7 +295,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
* Create an envelope for each rdata: <name|type|class|ttl>.
*/
isc_buffer_init(&envbuf, data, sizeof(data));
- memcpy(data, r.base, r.length);
+ memmove(data, r.base, r.length);
isc_buffer_add(&envbuf, r.length);
isc_buffer_putuint16(&envbuf, set->type);
isc_buffer_putuint16(&envbuf, set->rdclass);
@@ -501,10 +501,10 @@ dns_dnssec_verify3(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
if (labels - sig.labels > 0) {
isc_buffer_putuint8(&envbuf, 1);
isc_buffer_putuint8(&envbuf, '*');
- memcpy(data + 2, r.base, r.length);
+ memmove(data + 2, r.base, r.length);
}
else
- memcpy(data, r.base, r.length);
+ memmove(data, r.base, r.length);
isc_buffer_add(&envbuf, r.length);
isc_buffer_putuint16(&envbuf, set->type);
isc_buffer_putuint16(&envbuf, set->rdclass);
@@ -609,8 +609,8 @@ dns_dnssec_verify(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
return (result);
}
-static isc_boolean_t
-key_active(dst_key_t *key, isc_stdtime_t now) {
+isc_boolean_t
+dns_dnssec_keyactive(dst_key_t *key, isc_stdtime_t now) {
isc_result_t result;
isc_stdtime_t publish, active, revoke, inactive, delete;
isc_boolean_t pubset = ISC_FALSE, actset = ISC_FALSE;
@@ -684,6 +684,7 @@ dns_dnssec_findzonekeys2(dns_db_t *db, dns_dbversion_t *ver,
isc_stdtime_get(&now);
*nkeys = 0;
+ memset(keys, 0, sizeof(*keys) * maxkeys);
dns_rdataset_init(&rdataset);
RETERR(dns_db_findrdataset(db, node, ver, dns_rdatatype_dnskey, 0, 0,
&rdataset, NULL));
@@ -763,7 +764,8 @@ dns_dnssec_findzonekeys2(dns_db_t *db, dns_dbversion_t *ver,
/*
* If a key is marked inactive, skip it
*/
- if (!key_active(keys[count], now)) {
+ if (!dns_dnssec_keyactive(keys[count], now)) {
+ dst_key_setinactive(pubkey, ISC_TRUE);
dst_key_free(&keys[count]);
keys[count] = pubkey;
pubkey = NULL;
@@ -1038,14 +1040,14 @@ dns_dnssec_verifymessage(isc_buffer_t *source, dns_message_t *msg,
/*
* Extract the header.
*/
- memcpy(header, source_r.base, DNS_MESSAGE_HEADERLEN);
+ memmove(header, source_r.base, DNS_MESSAGE_HEADERLEN);
/*
* Decrement the additional field counter.
*/
- memcpy(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
+ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
addcount = htons((isc_uint16_t)(ntohs(addcount) - 1));
- memcpy(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
+ memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
/*
* Digest the modified header.
@@ -1311,9 +1313,9 @@ dns_dnssec_findmatchingkeys(dns_name_t *origin, const char *directory,
isc_dir_t dir;
dns_dnsseckey_t *key = NULL;
dst_key_t *dstkey = NULL;
- char namebuf[DNS_NAME_FORMATSIZE], *p;
+ char namebuf[DNS_NAME_FORMATSIZE];
isc_buffer_t b;
- unsigned int len;
+ unsigned int len, i;
isc_stdtime_t now;
REQUIRE(keylist != NULL);
@@ -1333,49 +1335,62 @@ dns_dnssec_findmatchingkeys(dns_name_t *origin, const char *directory,
isc_stdtime_get(&now);
while (isc_dir_read(&dir) == ISC_R_SUCCESS) {
- if (dir.entry.name[0] == 'K' &&
- dir.entry.length > len + 1 &&
- dir.entry.name[len + 1] == '+' &&
- strncasecmp(dir.entry.name + 1, namebuf, len) == 0) {
- p = strrchr(dir.entry.name, '.');
- if (p != NULL && strcmp(p, ".private") != 0)
- continue;
+ if (dir.entry.name[0] != 'K' ||
+ dir.entry.length < len + 1 ||
+ dir.entry.name[len + 1] != '+' ||
+ strncasecmp(dir.entry.name + 1, namebuf, len) != 0)
+ continue;
- dstkey = NULL;
- result = dst_key_fromnamedfile(dir.entry.name,
- directory,
- DST_TYPE_PUBLIC |
- DST_TYPE_PRIVATE,
- mctx, &dstkey);
-
- if (result != ISC_R_SUCCESS) {
- isc_log_write(dns_lctx,
- DNS_LOGCATEGORY_GENERAL,
- DNS_LOGMODULE_DNSSEC,
- ISC_LOG_WARNING,
- "dns_dnssec_findmatchingkeys: "
- "error reading key file %s: %s",
- dir.entry.name,
- isc_result_totext(result));
+ for (i = len + 1 + 1; i < dir.entry.length ; i++)
+ if (dir.entry.name[i] < '0' || dir.entry.name[i] > '9')
+ break;
+
+ if (i == len + 1 + 1 || i >= dir.entry.length ||
+ dir.entry.name[i] != '+')
+ continue;
+
+ for (i++ ; i < dir.entry.length ; i++)
+ if (dir.entry.name[i] < '0' || dir.entry.name[i] > '9')
+ break;
+
+ if (strcmp(dir.entry.name + i, ".private") != 0)
continue;
- }
- RETERR(dns_dnsseckey_create(mctx, &dstkey, &key));
- key->source = dns_keysource_repository;
- get_hints(key, now);
+ dstkey = NULL;
+ result = dst_key_fromnamedfile(dir.entry.name,
+ directory,
+ DST_TYPE_PUBLIC |
+ DST_TYPE_PRIVATE,
+ mctx, &dstkey);
- if (key->legacy) {
- dns_dnsseckey_destroy(mctx, &key);
- } else {
- ISC_LIST_APPEND(list, key, link);
- key = NULL;
- }
+ if (result != ISC_R_SUCCESS) {
+ isc_log_write(dns_lctx,
+ DNS_LOGCATEGORY_GENERAL,
+ DNS_LOGMODULE_DNSSEC,
+ ISC_LOG_WARNING,
+ "dns_dnssec_findmatchingkeys: "
+ "error reading key file %s: %s",
+ dir.entry.name,
+ isc_result_totext(result));
+ continue;
+ }
+
+ RETERR(dns_dnsseckey_create(mctx, &dstkey, &key));
+ key->source = dns_keysource_repository;
+ get_hints(key, now);
+
+ if (key->legacy) {
+ dns_dnsseckey_destroy(mctx, &key);
+ } else {
+ ISC_LIST_APPEND(list, key, link);
+ key = NULL;
}
}
- if (!ISC_LIST_EMPTY(list))
+ if (!ISC_LIST_EMPTY(list)) {
+ result = ISC_R_SUCCESS;
ISC_LIST_APPENDLIST(*keylist, list, link);
- else
+ } else
result = ISC_R_NOTFOUND;
failure:
@@ -1793,7 +1808,13 @@ dns_dnssec_updatekeys(dns_dnsseckeylist_t *keys, dns_dnsseckeylist_t *newkeys,
for (key2 = ISC_LIST_HEAD(*keys);
key2 != NULL;
key2 = ISC_LIST_NEXT(key2, link)) {
- if (dst_key_pubcompare(key1->key, key2->key,
+ int f1 = dst_key_flags(key1->key);
+ int f2 = dst_key_flags(key2->key);
+ int nr1 = f1 & ~DNS_KEYFLAG_REVOKE;
+ int nr2 = f2 & ~DNS_KEYFLAG_REVOKE;
+ if (nr1 == nr2 &&
+ dst_key_alg(key1->key) == dst_key_alg(key2->key) &&
+ dst_key_pubcompare(key1->key, key2->key,
ISC_TRUE)) {
int r1, r2;
r1 = dst_key_flags(key1->key) &
diff --git a/lib/dns/dst_api.c b/lib/dns/dst_api.c
index 98607246effc..641627376047 100644
--- a/lib/dns/dst_api.c
+++ b/lib/dns/dst_api.c
@@ -443,6 +443,16 @@ dst_key_tofile(const dst_key_t *key, int type, const char *directory) {
return (ISC_R_SUCCESS);
}
+void
+dst_key_setexternal(dst_key_t *key, isc_boolean_t value) {
+ key->external = value;
+}
+
+isc_boolean_t
+dst_key_isexternal(dst_key_t *key) {
+ return (key->external);
+}
+
isc_result_t
dst_key_fromfile(dns_name_t *name, dns_keytag_t id,
unsigned int alg, int type, const char *directory,
@@ -1349,10 +1359,27 @@ get_key_struct(dns_name_t *name, unsigned int alg,
key->times[i] = 0;
key->timeset[i] = ISC_FALSE;
}
+ key->inactive = ISC_FALSE;
key->magic = KEY_MAGIC;
return (key);
}
+isc_boolean_t
+dst_key_inactive(const dst_key_t *key) {
+
+ REQUIRE(VALID_KEY(key));
+
+ return (key->inactive);
+}
+
+void
+dst_key_setinactive(dst_key_t *key, isc_boolean_t inactive) {
+
+ REQUIRE(VALID_KEY(key));
+
+ key->inactive = inactive;
+}
+
/*%
* Reads a public key from disk
*/
diff --git a/lib/dns/dst_internal.h b/lib/dns/dst_internal.h
index c3e8e29a46e8..49ca424e5b99 100644
--- a/lib/dns/dst_internal.h
+++ b/lib/dns/dst_internal.h
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -126,6 +126,9 @@ struct dst_key {
isc_boolean_t timeset[DST_MAX_TIMES + 1]; /*%< data set? */
isc_stdtime_t nums[DST_MAX_NUMERIC + 1]; /*%< numeric metadata */
isc_boolean_t numset[DST_MAX_NUMERIC + 1]; /*%< data set? */
+ isc_boolean_t inactive; /*%< private key not present as it is
+ inactive */
+ isc_boolean_t external; /*%< external key */
int fmt_major; /*%< private key format, major version */
int fmt_minor; /*%< private key format, minor version */
diff --git a/lib/dns/dst_parse.c b/lib/dns/dst_parse.c
index ca43cb3d1241..2b950d5a3b9c 100644
--- a/lib/dns/dst_parse.c
+++ b/lib/dns/dst_parse.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -178,14 +178,18 @@ find_numericdata(const char *s) {
}
static int
-check_rsa(const dst_private_t *priv) {
+check_rsa(const dst_private_t *priv, isc_boolean_t external) {
int i, j;
isc_boolean_t have[RSA_NTAGS];
isc_boolean_t ok;
unsigned int mask;
+ if (external)
+ return ((priv->nelements == 0) ? 0 : -1);
+
for (i = 0; i < RSA_NTAGS; i++)
have[i] = ISC_FALSE;
+
for (j = 0; j < priv->nelements; j++) {
for (i = 0; i < RSA_NTAGS; i++)
if (priv->elements[j].tag == TAG(DST_ALG_RSAMD5, i))
@@ -231,10 +235,15 @@ check_dh(const dst_private_t *priv) {
}
static int
-check_dsa(const dst_private_t *priv) {
+check_dsa(const dst_private_t *priv, isc_boolean_t external) {
int i, j;
+
+ if (external)
+ return ((priv->nelements == 0)? 0 : -1);
+
if (priv->nelements != DSA_NTAGS)
return (-1);
+
for (i = 0; i < DSA_NTAGS; i++) {
for (j = 0; j < priv->nelements; j++)
if (priv->elements[j].tag == TAG(DST_ALG_DSA, i))
@@ -246,7 +255,11 @@ check_dsa(const dst_private_t *priv) {
}
static int
-check_gost(const dst_private_t *priv) {
+check_gost(const dst_private_t *priv, isc_boolean_t external) {
+
+ if (external)
+ return ((priv->nelements == 0)? 0 : -1);
+
if (priv->nelements != GOST_NTAGS)
return (-1);
if (priv->elements[0].tag != TAG(DST_ALG_ECCGOST, 0))
@@ -255,7 +268,11 @@ check_gost(const dst_private_t *priv) {
}
static int
-check_ecdsa(const dst_private_t *priv) {
+check_ecdsa(const dst_private_t *priv, isc_boolean_t external) {
+
+ if (external)
+ return ((priv->nelements == 0) ? 0 : -1);
+
if (priv->nelements != ECDSA_NTAGS)
return (-1);
if (priv->elements[0].tag != TAG(DST_ALG_ECDSA256, 0))
@@ -309,7 +326,7 @@ check_hmac_sha(const dst_private_t *priv, unsigned int ntags,
static int
check_data(const dst_private_t *priv, const unsigned int alg,
- isc_boolean_t old)
+ isc_boolean_t old, isc_boolean_t external)
{
/* XXXVIX this switch statement is too sparse to gen a jump table. */
switch (alg) {
@@ -318,17 +335,17 @@ check_data(const dst_private_t *priv, const unsigned int alg,
case DST_ALG_NSEC3RSASHA1:
case DST_ALG_RSASHA256:
case DST_ALG_RSASHA512:
- return (check_rsa(priv));
+ return (check_rsa(priv, external));
case DST_ALG_DH:
return (check_dh(priv));
case DST_ALG_DSA:
case DST_ALG_NSEC3DSA:
- return (check_dsa(priv));
+ return (check_dsa(priv, external));
case DST_ALG_ECCGOST:
- return (check_gost(priv));
+ return (check_gost(priv, external));
case DST_ALG_ECDSA256:
case DST_ALG_ECDSA384:
- return (check_ecdsa(priv));
+ return (check_ecdsa(priv, external));
case DST_ALG_HMACMD5:
return (check_hmac_md5(priv, old));
case DST_ALG_HMACSHA1:
@@ -372,6 +389,7 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
unsigned int opt = ISC_LEXOPT_EOL;
isc_stdtime_t when;
isc_result_t ret;
+ isc_boolean_t external = ISC_FALSE;
REQUIRE(priv != NULL);
@@ -470,6 +488,11 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
goto fail;
}
+ if (strcmp(DST_AS_STR(token), "External:") == 0) {
+ external = ISC_TRUE;
+ goto next;
+ }
+
/* Numeric metadata */
tag = find_numericdata(DST_AS_STR(token));
if (tag >= 0) {
@@ -534,8 +557,14 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
READLINE(lex, opt, &token);
data = NULL;
}
+
done:
- check = check_data(priv, alg, ISC_TRUE);
+ if (external && priv->nelements != 0) {
+ ret = DST_R_INVALIDPRIVATEKEY;
+ goto fail;
+ }
+
+ check = check_data(priv, alg, ISC_TRUE, external);
if (check < 0) {
ret = DST_R_INVALIDPRIVATEKEY;
goto fail;
@@ -544,6 +573,8 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
goto fail;
}
+ key->external = external;
+
return (ISC_R_SUCCESS);
fail:
@@ -573,7 +604,7 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
REQUIRE(priv != NULL);
- ret = check_data(priv, dst_key_alg(key), ISC_FALSE);
+ ret = check_data(priv, dst_key_alg(key), ISC_FALSE, key->external);
if (ret < 0)
return (DST_R_INVALIDPRIVATEKEY);
else if (ret != ISC_R_SUCCESS)
@@ -691,6 +722,9 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
fprintf(fp, "%s %.*s\n", s, (int)r.length, r.base);
}
+ if (key->external)
+ fprintf(fp, "External:\n");
+
/* Add the metadata tags */
if (major > 1 || (major == 1 && minor >= 3)) {
for (i = 0; i < NUMERIC_NTAGS; i++) {
@@ -706,14 +740,14 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
isc_buffer_init(&b, buffer, sizeof(buffer));
result = dns_time32_totext(when, &b);
- if (result != ISC_R_SUCCESS) {
+ if (result != ISC_R_SUCCESS) {
fclose(fp);
return (DST_R_INVALIDPRIVATEKEY);
- }
+ }
isc_buffer_usedregion(&b, &r);
- fprintf(fp, "%s %.*s\n", timetags[i], (int)r.length,
+ fprintf(fp, "%s %.*s\n", timetags[i], (int)r.length,
r.base);
}
}
diff --git a/lib/dns/dst_result.c b/lib/dns/dst_result.c
index 297e809cc945..e9f7b06ab252 100644
--- a/lib/dns/dst_result.c
+++ b/lib/dns/dst_result.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -35,7 +35,7 @@ static const char *text[DST_R_NRESULTS] = {
"illegal operation for a null key", /*%< 3 */
"public key is invalid", /*%< 4 */
"private key is invalid", /*%< 5 */
- "UNUSED6", /*%< 6 */
+ "external key", /*%< 6 */
"error occurred writing key to disk", /*%< 7 */
"invalid algorithm specific parameter", /*%< 8 */
"UNUSED9", /*%< 9 */
diff --git a/lib/dns/gen.c b/lib/dns/gen.c
index 6b533dd23f9c..b934c9990fb3 100644
--- a/lib/dns/gen.c
+++ b/lib/dns/gen.c
@@ -309,7 +309,8 @@ find_typename(int type) {
static void
insert_into_typenames(int type, const char *typename, const char *attr) {
struct ttnam *ttn = NULL;
- int c, i, n;
+ size_t c;
+ int i, n;
char tmp[256];
INSIST(strlen(typename) < TYPECLASSBUF);
@@ -485,7 +486,7 @@ sd(int rdclass, const char *classname, const char *dirname, char filetype) {
static unsigned int
HASH(char *string) {
- unsigned int n;
+ size_t n;
unsigned char a, b;
n = strlen(string);
@@ -779,6 +780,14 @@ main(int argc, char **argv) {
ttn = find_typename(i);
if (ttn == NULL)
continue;
+ /*
+ * Remove KEYDATA (65533) from the type to memonic
+ * translation as it is internal use only. This
+ * stops the tools from displaying KEYDATA instead
+ * of TYPE65533.
+ */
+ if (i == 65533U)
+ continue;
fprintf(stdout, "\tcase %u: return "
"(str_totext(\"%s\", target)); \\\n",
i, upper(ttn->typename));
diff --git a/lib/dns/gssapi_link.c b/lib/dns/gssapi_link.c
index 5ad81cd80ced..2927b676d366 100644
--- a/lib/dns/gssapi_link.c
+++ b/lib/dns/gssapi_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -47,7 +47,7 @@
#define GBUFFER_TO_REGION(gb, r) \
do { \
- (r).length = (gb).length; \
+ (r).length = (unsigned int)(gb).length; \
(r).base = (gb).value; \
} while (0)
@@ -180,7 +180,7 @@ gssapi_sign(dst_context_t *dctx, isc_buffer_t *sig) {
* Copy the output into our buffer space, and release the gssapi
* allocated space.
*/
- isc_buffer_putmem(sig, gsig.value, gsig.length);
+ isc_buffer_putmem(sig, gsig.value, (unsigned int)gsig.length);
if (gsig.length != 0U)
gss_release_buffer(&minor, &gsig);
@@ -216,7 +216,7 @@ gssapi_verify(dst_context_t *dctx, const isc_region_t *sig) {
buf = isc_mem_allocate(dst__memory_pool, sig->length);
if (buf == NULL)
return (ISC_R_FAILURE);
- memcpy(buf, sig->base, sig->length);
+ memmove(buf, sig->base, sig->length);
r.base = buf;
r.length = sig->length;
REGION_TO_GBUFFER(r, gsig);
@@ -286,7 +286,7 @@ gssapi_destroy(dst_key_t *key) {
static isc_result_t
gssapi_restore(dst_key_t *key, const char *keystr) {
OM_uint32 major, minor;
- size_t len;
+ unsigned int len;
isc_buffer_t *b = NULL;
isc_region_t r;
gss_buffer_desc gssbuffer;
@@ -346,13 +346,13 @@ gssapi_dump(dst_key_t *key, isc_mem_t *mctx, char **buffer, int *length) {
gss_release_buffer(&minor, &gssbuffer);
return (ISC_R_NOMEMORY);
}
- isc_buffer_init(&b, buf, len);
+ isc_buffer_init(&b, buf, (unsigned int)len);
GBUFFER_TO_REGION(gssbuffer, r);
result = isc_base64_totext(&r, 0, "", &b);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
gss_release_buffer(&minor, &gssbuffer);
*buffer = buf;
- *length = len;
+ *length = (int)len;
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/gssapictx.c b/lib/dns/gssapictx.c
index a8c5900e6d14..d4209d378a76 100644
--- a/lib/dns/gssapictx.c
+++ b/lib/dns/gssapictx.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -68,8 +68,12 @@
* always use one. If we're not using our own SPNEGO implementation,
* we include SPNEGO's OID.
*/
-#if defined(GSSAPI)
+#ifdef GSSAPI
+#ifdef WIN32
+#include <krb5/krb5.h>
+#else
#include ISC_PLATFORM_KRB5HEADER
+#endif
static unsigned char krb5_mech_oid_bytes[] = {
0x2a, 0x86, 0x48, 0x86, 0xf7, 0x12, 0x01, 0x02, 0x02
@@ -103,7 +107,7 @@ static gss_OID_set_desc mech_oid_set = {
#define GBUFFER_TO_REGION(gb, r) \
do { \
- (r).length = (gb).length; \
+ (r).length = (unsigned int)(gb).length; \
(r).base = (gb).value; \
} while (0)
@@ -252,12 +256,12 @@ dst_gssapi_acquirecred(dns_name_t *name, isc_boolean_t initiate,
gss_cred_id_t *cred)
{
#ifdef GSSAPI
+ isc_result_t result;
isc_buffer_t namebuf;
gss_name_t gname;
gss_buffer_desc gnamebuf;
unsigned char array[DNS_NAME_MAXTEXT + 1];
OM_uint32 gret, minor;
- gss_OID_set mechs;
OM_uint32 lifetime;
gss_cred_usage_t usage;
char buf[1024];
@@ -304,16 +308,17 @@ dst_gssapi_acquirecred(dns_name_t *name, isc_boolean_t initiate,
usage = GSS_C_ACCEPT;
gret = gss_acquire_cred(&minor, gname, GSS_C_INDEFINITE,
- &mech_oid_set,
- usage, cred, &mechs, &lifetime);
+ &mech_oid_set, usage, cred, NULL, &lifetime);
if (gret != GSS_S_COMPLETE) {
gss_log(3, "failed to acquire %s credentials for %s: %s",
initiate ? "initiate" : "accept",
(gname != NULL) ? (char *)gnamebuf.value : "?",
gss_error_tostring(gret, minor, buf, sizeof(buf)));
- check_config((char *)array);
- return (ISC_R_FAILURE);
+ if (gname != NULL)
+ check_config((char *)array);
+ result = ISC_R_FAILURE;
+ goto cleanup;
}
gss_log(4, "acquired %s credentials for %s",
@@ -321,8 +326,18 @@ dst_gssapi_acquirecred(dns_name_t *name, isc_boolean_t initiate,
(gname != NULL) ? (char *)gnamebuf.value : "?");
log_cred(*cred);
+ result = ISC_R_SUCCESS;
- return (ISC_R_SUCCESS);
+cleanup:
+ if (gname != NULL) {
+ gret = gss_release_name(&minor, &gname);
+ if (gret != GSS_S_COMPLETE)
+ gss_log(3, "failed gss_release_name: %s",
+ gss_error_tostring(gret, minor, buf,
+ sizeof(buf)));
+ }
+
+ return (result);
#else
REQUIRE(cred != NULL && *cred == NULL);
@@ -620,7 +635,6 @@ dst_gssapi_initctx(dns_name_t *name, isc_buffer_t *intoken,
RETERR(isc_buffer_copyregion(outtoken, &r));
(void)gss_release_buffer(&minor, &gouttoken);
}
- (void)gss_release_name(&minor, &gname);
if (gret == GSS_S_COMPLETE)
result = ISC_R_SUCCESS;
@@ -628,6 +642,7 @@ dst_gssapi_initctx(dns_name_t *name, isc_buffer_t *intoken,
result = DNS_R_CONTINUE;
out:
+ (void)gss_release_name(&minor, &gname);
return (result);
#else
UNUSED(name);
@@ -669,7 +684,7 @@ dst_gssapi_acceptctx(gss_cred_id_t cred,
context = *ctxout;
if (gssapi_keytab != NULL) {
-#ifdef ISC_PLATFORM_GSSAPI_KRB5_HEADER
+#if defined(ISC_PLATFORM_GSSAPI_KRB5_HEADER) || defined(WIN32)
gret = gsskrb5_register_acceptor_identity(gssapi_keytab);
if (gret != GSS_S_COMPLETE) {
gss_log(3, "failed "
@@ -730,7 +745,8 @@ dst_gssapi_acceptctx(gss_cred_id_t cred,
}
if (gouttoken.length > 0U) {
- RETERR(isc_buffer_allocate(mctx, outtoken, gouttoken.length));
+ RETERR(isc_buffer_allocate(mctx, outtoken,
+ (unsigned int)gouttoken.length));
GBUFFER_TO_REGION(gouttoken, r);
RETERR(isc_buffer_copyregion(*outtoken, &r));
(void)gss_release_buffer(&minor, &gouttoken);
diff --git a/lib/dns/hmac_link.c b/lib/dns/hmac_link.c
index 256abb6eb475..d99c5fb00f42 100644
--- a/lib/dns/hmac_link.c
+++ b/lib/dns/hmac_link.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -42,6 +42,7 @@
#include <isc/md5.h>
#include <isc/sha1.h>
#include <isc/mem.h>
+#include <isc/safe.h>
#include <isc/string.h>
#include <isc/util.h>
@@ -138,7 +139,7 @@ hmacmd5_compare(const dst_key_t *key1, const dst_key_t *key2) {
else if (hkey1 == NULL || hkey2 == NULL)
return (ISC_FALSE);
- if (memcmp(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH) == 0)
+ if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH))
return (ISC_TRUE);
else
return (ISC_FALSE);
@@ -227,9 +228,8 @@ hmacmd5_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_md5_update(&md5ctx, r.base, r.length);
isc_md5_final(&md5ctx, hkey->key);
keylen = ISC_MD5_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -415,7 +415,7 @@ hmacsha1_compare(const dst_key_t *key1, const dst_key_t *key2) {
else if (hkey1 == NULL || hkey2 == NULL)
return (ISC_FALSE);
- if (memcmp(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH) == 0)
+ if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH))
return (ISC_TRUE);
else
return (ISC_FALSE);
@@ -504,9 +504,8 @@ hmacsha1_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha1_update(&sha1ctx, r.base, r.length);
isc_sha1_final(&sha1ctx, hkey->key);
keylen = ISC_SHA1_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -692,7 +691,7 @@ hmacsha224_compare(const dst_key_t *key1, const dst_key_t *key2) {
else if (hkey1 == NULL || hkey2 == NULL)
return (ISC_FALSE);
- if (memcmp(hkey1->key, hkey2->key, ISC_SHA224_BLOCK_LENGTH) == 0)
+ if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA224_BLOCK_LENGTH))
return (ISC_TRUE);
else
return (ISC_FALSE);
@@ -783,9 +782,8 @@ hmacsha224_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha224_update(&sha224ctx, r.base, r.length);
isc_sha224_final(hkey->key, &sha224ctx);
keylen = ISC_SHA224_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -971,7 +969,7 @@ hmacsha256_compare(const dst_key_t *key1, const dst_key_t *key2) {
else if (hkey1 == NULL || hkey2 == NULL)
return (ISC_FALSE);
- if (memcmp(hkey1->key, hkey2->key, ISC_SHA256_BLOCK_LENGTH) == 0)
+ if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA256_BLOCK_LENGTH))
return (ISC_TRUE);
else
return (ISC_FALSE);
@@ -1062,9 +1060,8 @@ hmacsha256_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha256_update(&sha256ctx, r.base, r.length);
isc_sha256_final(hkey->key, &sha256ctx);
keylen = ISC_SHA256_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -1250,7 +1247,7 @@ hmacsha384_compare(const dst_key_t *key1, const dst_key_t *key2) {
else if (hkey1 == NULL || hkey2 == NULL)
return (ISC_FALSE);
- if (memcmp(hkey1->key, hkey2->key, ISC_SHA384_BLOCK_LENGTH) == 0)
+ if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA384_BLOCK_LENGTH))
return (ISC_TRUE);
else
return (ISC_FALSE);
@@ -1341,9 +1338,8 @@ hmacsha384_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha384_update(&sha384ctx, r.base, r.length);
isc_sha384_final(hkey->key, &sha384ctx);
keylen = ISC_SHA384_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -1529,7 +1525,7 @@ hmacsha512_compare(const dst_key_t *key1, const dst_key_t *key2) {
else if (hkey1 == NULL || hkey2 == NULL)
return (ISC_FALSE);
- if (memcmp(hkey1->key, hkey2->key, ISC_SHA512_BLOCK_LENGTH) == 0)
+ if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA512_BLOCK_LENGTH))
return (ISC_TRUE);
else
return (ISC_FALSE);
@@ -1620,9 +1616,8 @@ hmacsha512_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha512_update(&sha512ctx, r.base, r.length);
isc_sha512_final(hkey->key, &sha512ctx);
keylen = ISC_SHA512_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
diff --git a/lib/dns/include/dns/Makefile.in b/lib/dns/include/dns/Makefile.in
index 1a69f2c814f4..6ff682f70d37 100644
--- a/lib/dns/include/dns/Makefile.in
+++ b/lib/dns/include/dns/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007-2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -22,7 +22,8 @@ top_srcdir = @top_srcdir@
@BIND9_VERSION@
HEADERS = acl.h adb.h byaddr.h cache.h callbacks.h cert.h compress.h \
- clientinfo.h db.h dbiterator.h dbtable.h diff.h dispatch.h \
+ client.h clientinfo.h compress.h \
+ db.h dbiterator.h dbtable.h diff.h dispatch.h \
dlz.h dnssec.h ds.h events.h fixedname.h iptable.h journal.h \
keyflags.h keytable.h keyvalues.h lib.h log.h \
master.h masterdump.h message.h name.h ncache.h nsec.h \
@@ -30,7 +31,7 @@ HEADERS = acl.h adb.h byaddr.h cache.h callbacks.h cert.h compress.h \
rdata.h rdataclass.h rdatalist.h rdataset.h rdatasetiter.h \
rdataslab.h rdatatype.h request.h resolver.h result.h \
rootns.h rpz.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \
- tcpmsg.h time.h tkey.h tsig.h ttl.h types.h \
+ tcpmsg.h time.h tkey.h tsec.h tsig.h ttl.h types.h \
validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h
GENHEADERS = enumclass.h enumtype.h rdatastruct.h
diff --git a/lib/dns/include/dns/client.h b/lib/dns/include/dns/client.h
index d21dff788dde..41baa0d6b9d3 100644
--- a/lib/dns/include/dns/client.h
+++ b/lib/dns/include/dns/client.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2013 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
@@ -149,6 +149,13 @@ isc_result_t
dns_client_createx(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr,
unsigned int options, dns_client_t **clientp);
+
+isc_result_t
+dns_client_createx2(isc_mem_t *mctx, isc_appctx_t *actx,
+ isc_taskmgr_t *taskmgr, isc_socketmgr_t *socketmgr,
+ isc_timermgr_t *timermgr, unsigned int options,
+ dns_client_t **clientp,
+ isc_sockaddr_t *localaddr4, isc_sockaddr_t *localaddr6);
/*%<
* Create a DNS client. These functions create a new client object with
* minimal internal resources such as the default 'view' for the IN class and
@@ -161,6 +168,12 @@ dns_client_createx(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
* dns_client_create() is expected to be used by an application that only needs
* simple synchronous services or by a thread-based application.
*
+ * dns_client_createx2 takes two additional parameters, 'localaddr4' and
+ * 'localaddr6', to specify the local address to use for each family. If
+ * both are set to NULL, then wildcard addresses will be used for both
+ * families. If only one is NULL, then the other address will be used
+ * as the local address, and the other protocol family will not be used.
+ *
* If the DNS_CLIENTCREATEOPT_USECACHE flag is set in 'options',
* dns_client_create(x) will create a cache database with the view.
*
diff --git a/lib/dns/include/dns/dnssec.h b/lib/dns/include/dns/dnssec.h
index e443f91b635b..7202d99b5da9 100644
--- a/lib/dns/include/dns/dnssec.h
+++ b/lib/dns/include/dns/dnssec.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -174,6 +174,7 @@ dns_dnssec_findzonekeys(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node,
dns_name_t *name, isc_mem_t *mctx,
unsigned int maxkeys, dst_key_t **keys,
unsigned int *nkeys);
+
isc_result_t
dns_dnssec_findzonekeys2(dns_db_t *db, dns_dbversion_t *ver,
dns_dbnode_t *node, dns_name_t *name,
@@ -186,6 +187,20 @@ dns_dnssec_findzonekeys2(dns_db_t *db, dns_dbversion_t *ver,
*/
/*@}*/
+isc_boolean_t
+dns_dnssec_keyactive(dst_key_t *key, isc_stdtime_t now);
+/*%<
+ *
+ * Returns ISC_TRUE if 'key' is active as of the time specified
+ * in 'now' (i.e., if the activation date has passed, inactivation or
+ * deletion date has not yet been reached, and the key is not revoked
+ * -- or if it is a legacy key without metadata). Otherwise returns
+ * ISC_FALSE.
+ *
+ * Requires:
+ *\li 'key' is a valid key
+ */
+
isc_result_t
dns_dnssec_signmessage(dns_message_t *msg, dst_key_t *key);
/*%<
diff --git a/lib/dns/include/dns/log.h b/lib/dns/include/dns/log.h
index 3c4df8a45003..e8c8c105473e 100644
--- a/lib/dns/include/dns/log.h
+++ b/lib/dns/include/dns/log.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -43,6 +43,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[];
#define DNS_LOGCATEGORY_DELEGATION_ONLY (&dns_categories[10])
#define DNS_LOGCATEGORY_EDNS_DISABLED (&dns_categories[11])
#define DNS_LOGCATEGORY_RPZ (&dns_categories[12])
+#define DNS_LOGCATEGORY_RRL (&dns_categories[13])
/* Backwards compatibility. */
#define DNS_LOGCATEGORY_GENERAL ISC_LOGCATEGORY_GENERAL
diff --git a/lib/dns/include/dns/master.h b/lib/dns/include/dns/master.h
index 896c6e95ecd3..4362789c3e0f 100644
--- a/lib/dns/include/dns/master.h
+++ b/lib/dns/include/dns/master.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -57,6 +57,7 @@
#define DNS_MASTER_RESIGN 0x00002000
#define DNS_MASTER_KEY 0x00004000 /*%< Loading a key zone master file. */
+#define DNS_MASTER_NOTTL 0x00008000 /*%< Don't require ttl. */
ISC_LANG_BEGINDECLS
diff --git a/lib/dns/include/dns/masterdump.h b/lib/dns/include/dns/masterdump.h
index 8631248cc2ee..092c61b974bf 100644
--- a/lib/dns/include/dns/masterdump.h
+++ b/lib/dns/include/dns/masterdump.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -148,6 +148,11 @@ LIBDNS_EXTERNAL_DATA extern const dns_master_style_t dns_master_style_simple;
*/
LIBDNS_EXTERNAL_DATA extern const dns_master_style_t dns_master_style_debug;
+/*%
+ * The style used for dumping "key" zones.
+ */
+LIBDNS_EXTERNAL_DATA extern const dns_master_style_t dns_master_style_keyzone;
+
/***
*** Functions
***/
diff --git a/lib/dns/include/dns/message.h b/lib/dns/include/dns/message.h
index a6862faab633..6b2f39fc9583 100644
--- a/lib/dns/include/dns/message.h
+++ b/lib/dns/include/dns/message.h
@@ -105,6 +105,7 @@
/*%< EDNS0 extended OPT codes */
#define DNS_OPT_NSID 0x0003 /*%< NSID opt code */
+#define DNS_OPT_CLIENT_SUBNET 0x0008 /*%< client subnet opt code */
#define DNS_MESSAGE_REPLYPRESERVE (DNS_MESSAGEFLAG_RD|DNS_MESSAGEFLAG_CD)
#define DNS_MESSAGEEXTFLAG_REPLYPRESERVE (DNS_MESSAGEEXTFLAG_DO)
diff --git a/lib/dns/include/dns/nsec3.h b/lib/dns/include/dns/nsec3.h
index e4a22868a2db..a4be9687dca1 100644
--- a/lib/dns/include/dns/nsec3.h
+++ b/lib/dns/include/dns/nsec3.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008-2013 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
@@ -43,7 +43,7 @@
/*
* Test "unknown" algorithm. Is mapped to dns_hash_sha1.
*/
-#define DNS_NSEC3_UNKNOWNALG 245U
+#define DNS_NSEC3_UNKNOWNALG ((dns_hash_t)245U)
ISC_LANG_BEGINDECLS
diff --git a/lib/dns/include/dns/rdata.h b/lib/dns/include/dns/rdata.h
index 89ecaf800696..b9531a579284 100644
--- a/lib/dns/include/dns/rdata.h
+++ b/lib/dns/include/dns/rdata.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -171,6 +171,9 @@ struct dns_rdata {
#define DNS_STYLEFLAG_COMMENT 0x00000002U
#define DNS_STYLEFLAG_RRCOMMENT 0x00000004U
+/*% Output KEYDATA in human readable format. */
+#define DNS_STYLEFLAG_KEYDATA 0x00000008U
+
#define DNS_RDATA_DOWNCASE DNS_NAME_DOWNCASE
#define DNS_RDATA_CHECKNAMES DNS_NAME_CHECKNAMES
#define DNS_RDATA_CHECKNAMESFAIL DNS_NAME_CHECKNAMESFAIL
diff --git a/lib/dns/include/dns/rrl.h b/lib/dns/include/dns/rrl.h
new file mode 100644
index 000000000000..ef6b72b4280d
--- /dev/null
+++ b/lib/dns/include/dns/rrl.h
@@ -0,0 +1,278 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+
+#ifndef DNS_RRL_H
+#define DNS_RRL_H 1
+
+/*
+ * Rate limit DNS responses.
+ */
+
+#include <isc/lang.h>
+
+#include <dns/fixedname.h>
+#include <dns/rdata.h>
+#include <dns/types.h>
+
+ISC_LANG_BEGINDECLS
+
+
+/*
+ * Memory allocation or other failures.
+ */
+#define DNS_RRL_LOG_FAIL ISC_LOG_WARNING
+/*
+ * dropped or slipped responses.
+ */
+#define DNS_RRL_LOG_DROP ISC_LOG_INFO
+/*
+ * Major events in dropping or slipping.
+ */
+#define DNS_RRL_LOG_DEBUG1 ISC_LOG_DEBUG(3)
+/*
+ * Limit computations.
+ */
+#define DNS_RRL_LOG_DEBUG2 ISC_LOG_DEBUG(4)
+/*
+ * Even less interesting.
+ */
+#define DNS_RRL_LOG_DEBUG3 ISC_LOG_DEBUG(9)
+
+
+#define DNS_RRL_LOG_ERR_LEN 64
+#define DNS_RRL_LOG_BUF_LEN (sizeof("would continue limiting") + \
+ DNS_RRL_LOG_ERR_LEN + \
+ sizeof(" responses to ") + \
+ ISC_NETADDR_FORMATSIZE + \
+ sizeof("/128 for IN ") + \
+ DNS_RDATATYPE_FORMATSIZE + \
+ DNS_NAME_FORMATSIZE)
+
+
+typedef struct dns_rrl_hash dns_rrl_hash_t;
+
+/*
+ * Response types.
+ */
+typedef enum {
+ DNS_RRL_RTYPE_FREE = 0,
+ DNS_RRL_RTYPE_QUERY,
+ DNS_RRL_RTYPE_REFERRAL,
+ DNS_RRL_RTYPE_NODATA,
+ DNS_RRL_RTYPE_NXDOMAIN,
+ DNS_RRL_RTYPE_ERROR,
+ DNS_RRL_RTYPE_ALL,
+ DNS_RRL_RTYPE_TCP,
+} dns_rrl_rtype_t;
+
+/*
+ * A rate limit bucket key.
+ * This should be small to limit the total size of the database.
+ * The hash of the qname should be wide enough to make the probability
+ * of collisions among requests from a single IP address block less than 50%.
+ * We need a 32-bit hash value for 10000 qps (e.g. random qnames forged
+ * by attacker) to collide with legitimate qnames from the target with
+ * probability at most 1%.
+ */
+#define DNS_RRL_MAX_PREFIX 64
+typedef union dns_rrl_key dns_rrl_key_t;
+union dns_rrl_key {
+ struct {
+ isc_uint32_t ip[DNS_RRL_MAX_PREFIX/32];
+ isc_uint32_t qname_hash;
+ dns_rdatatype_t qtype;
+ isc_uint8_t qclass;
+ dns_rrl_rtype_t rtype :4; /* 3 bits + sign bit */
+ isc_boolean_t ipv6 :1;
+ } s;
+ isc_uint16_t w[1];
+};
+
+/*
+ * A rate-limit entry.
+ * This should be small to limit the total size of the table of entries.
+ */
+typedef struct dns_rrl_entry dns_rrl_entry_t;
+typedef ISC_LIST(dns_rrl_entry_t) dns_rrl_bin_t;
+struct dns_rrl_entry {
+ ISC_LINK(dns_rrl_entry_t) lru;
+ ISC_LINK(dns_rrl_entry_t) hlink;
+ dns_rrl_key_t key;
+# define DNS_RRL_RESPONSE_BITS 24
+ signed int responses :DNS_RRL_RESPONSE_BITS;
+# define DNS_RRL_QNAMES_BITS 8
+ unsigned int log_qname :DNS_RRL_QNAMES_BITS;
+
+# define DNS_RRL_TS_GEN_BITS 2
+ unsigned int ts_gen :DNS_RRL_TS_GEN_BITS;
+ isc_boolean_t ts_valid :1;
+# define DNS_RRL_HASH_GEN_BITS 1
+ unsigned int hash_gen :DNS_RRL_HASH_GEN_BITS;
+ isc_boolean_t logged :1;
+# define DNS_RRL_LOG_BITS 11
+ unsigned int log_secs :DNS_RRL_LOG_BITS;
+
+# define DNS_RRL_TS_BITS 12
+ unsigned int ts :DNS_RRL_TS_BITS;
+
+# define DNS_RRL_MAX_SLIP 10
+ unsigned int slip_cnt :4;
+};
+
+#define DNS_RRL_MAX_TIME_TRAVEL 5
+#define DNS_RRL_FOREVER (1<<DNS_RRL_TS_BITS)
+#define DNS_RRL_MAX_TS (DNS_RRL_FOREVER - 1)
+
+#define DNS_RRL_MAX_RESPONSES ((1<<(DNS_RRL_RESPONSE_BITS-1))-1)
+#define DNS_RRL_MAX_WINDOW 3600
+#if DNS_RRL_MAX_WINDOW >= DNS_RRL_MAX_TS
+#error "DNS_RRL_MAX_WINDOW is too large"
+#endif
+#define DNS_RRL_MAX_RATE 1000
+#if DNS_RRL_MAX_RATE >= (DNS_RRL_MAX_RESPONSES / DNS_RRL_MAX_WINDOW)
+#error "DNS_RRL_MAX_rate is too large"
+#endif
+
+#if (1<<DNS_RRL_LOG_BITS) >= DNS_RRL_FOREVER
+#error DNS_RRL_LOG_BITS is too big
+#endif
+#define DNS_RRL_MAX_LOG_SECS 1800
+#if DNS_RRL_MAX_LOG_SECS >= (1<<DNS_RRL_LOG_BITS)
+#error "DNS_RRL_MAX_LOG_SECS is too large"
+#endif
+#define DNS_RRL_STOP_LOG_SECS 60
+#if DNS_RRL_STOP_LOG_SECS >= (1<<DNS_RRL_LOG_BITS)
+#error "DNS_RRL_STOP_LOG_SECS is too large"
+#endif
+
+
+/*
+ * A hash table of rate-limit entries.
+ */
+struct dns_rrl_hash {
+ isc_stdtime_t check_time;
+ unsigned int gen :DNS_RRL_HASH_GEN_BITS;
+ int length;
+ dns_rrl_bin_t bins[1];
+};
+
+/*
+ * A block of rate-limit entries.
+ */
+typedef struct dns_rrl_block dns_rrl_block_t;
+struct dns_rrl_block {
+ ISC_LINK(dns_rrl_block_t) link;
+ int size;
+ dns_rrl_entry_t entries[1];
+};
+
+/*
+ * A rate limited qname buffer.
+ */
+typedef struct dns_rrl_qname_buf dns_rrl_qname_buf_t;
+struct dns_rrl_qname_buf {
+ ISC_LINK(dns_rrl_qname_buf_t) link;
+ const dns_rrl_entry_t *e;
+ unsigned int index;
+ dns_fixedname_t qname;
+};
+
+typedef struct dns_rrl_rate dns_rrl_rate_t;
+struct dns_rrl_rate {
+ int r;
+ int scaled;
+ const char *str;
+};
+
+/*
+ * Per-view query rate limit parameters and a pointer to database.
+ */
+typedef struct dns_rrl dns_rrl_t;
+struct dns_rrl {
+ isc_mutex_t lock;
+ isc_mem_t *mctx;
+
+ isc_boolean_t log_only;
+ dns_rrl_rate_t responses_per_second;
+ dns_rrl_rate_t referrals_per_second;
+ dns_rrl_rate_t nodata_per_second;
+ dns_rrl_rate_t nxdomains_per_second;
+ dns_rrl_rate_t errors_per_second;
+ dns_rrl_rate_t all_per_second;
+ dns_rrl_rate_t slip;
+ int window;
+ double qps_scale;
+ int max_entries;
+
+ dns_acl_t *exempt;
+
+ int num_entries;
+
+ int qps_responses;
+ isc_stdtime_t qps_time;
+ double qps;
+
+ unsigned int probes;
+ unsigned int searches;
+
+ ISC_LIST(dns_rrl_block_t) blocks;
+ ISC_LIST(dns_rrl_entry_t) lru;
+
+ dns_rrl_hash_t *hash;
+ dns_rrl_hash_t *old_hash;
+ unsigned int hash_gen;
+
+ unsigned int ts_gen;
+# define DNS_RRL_TS_BASES (1<<DNS_RRL_TS_GEN_BITS)
+ isc_stdtime_t ts_bases[DNS_RRL_TS_BASES];
+
+ int ipv4_prefixlen;
+ isc_uint32_t ipv4_mask;
+ int ipv6_prefixlen;
+ isc_uint32_t ipv6_mask[4];
+
+ isc_stdtime_t log_stops_time;
+ dns_rrl_entry_t *last_logged;
+ int num_logged;
+ int num_qnames;
+ ISC_LIST(dns_rrl_qname_buf_t) qname_free;
+# define DNS_RRL_QNAMES (1<<DNS_RRL_QNAMES_BITS)
+ dns_rrl_qname_buf_t *qnames[DNS_RRL_QNAMES];
+};
+
+typedef enum {
+ DNS_RRL_RESULT_OK,
+ DNS_RRL_RESULT_DROP,
+ DNS_RRL_RESULT_SLIP,
+} dns_rrl_result_t;
+
+dns_rrl_result_t
+dns_rrl(dns_view_t *view,
+ const isc_sockaddr_t *client_addr, isc_boolean_t is_tcp,
+ dns_rdataclass_t rdclass, dns_rdatatype_t qtype,
+ dns_name_t *qname, isc_result_t resp_result, isc_stdtime_t now,
+ isc_boolean_t wouldlog, char *log_buf, unsigned int log_buf_len);
+
+void
+dns_rrl_view_destroy(dns_view_t *view);
+
+isc_result_t
+dns_rrl_init(dns_rrl_t **rrlp, dns_view_t *view, int min_entries);
+
+ISC_LANG_ENDDECLS
+
+#endif /* DNS_RRL_H */
diff --git a/lib/dns/include/dns/view.h b/lib/dns/include/dns/view.h
index d0c1931d27be..704e5fe3e999 100644
--- a/lib/dns/include/dns/view.h
+++ b/lib/dns/include/dns/view.h
@@ -73,6 +73,7 @@
#include <dns/acl.h>
#include <dns/fixedname.h>
+#include <dns/rrl.h>
#include <dns/rdatastruct.h>
#include <dns/rpz.h>
#include <dns/types.h>
@@ -142,6 +143,7 @@ struct dns_view {
dns_rbt_t * answeracl_exclude;
dns_rbt_t * denyanswernames;
dns_rbt_t * answernames_exclude;
+ dns_rrl_t * rrl;
isc_boolean_t provideixfr;
isc_boolean_t requestnsid;
dns_ttl_t maxcachettl;
diff --git a/lib/dns/include/dns/zone.h b/lib/dns/include/dns/zone.h
index f91801f6fe3f..9efa1e729767 100644
--- a/lib/dns/include/dns/zone.h
+++ b/lib/dns/include/dns/zone.h
@@ -2086,6 +2086,12 @@ dns_zone_rpz_enable(dns_zone_t *zone);
* Set the response policy associated with a zone.
*/
+isc_result_t
+dns_zone_rpz_enable_db(dns_zone_t *zone, dns_db_t *db);
+/*%
+ * If a zone is a response policy zone, mark its new database.
+ */
+
isc_boolean_t
dns_zone_get_rpz(dns_zone_t *zone);
diff --git a/lib/dns/include/dst/dst.h b/lib/dns/include/dst/dst.h
index 4724fc64c95e..1fdce4cc44d7 100644
--- a/lib/dns/include/dst/dst.h
+++ b/lib/dns/include/dst/dst.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -923,6 +923,29 @@ dst_key_restore(dns_name_t *name, unsigned int alg, unsigned int flags,
unsigned int protocol, dns_rdataclass_t rdclass,
isc_mem_t *mctx, const char *keystr, dst_key_t **keyp);
+isc_boolean_t
+dst_key_inactive(const dst_key_t *key);
+/*%<
+ * Determines if the private key is missing due the key being deemed inactive.
+ *
+ * Requires:
+ * 'key' to be valid.
+ */
+
+void
+dst_key_setinactive(dst_key_t *key, isc_boolean_t inactive);
+/*%<
+ * Set key inactive state.
+ *
+ * Requires:
+ * 'key' to be valid.
+ */
+
+void
+dst_key_setexternal(dst_key_t *key, isc_boolean_t value);
+
+isc_boolean_t
+dst_key_isexternal(dst_key_t *key);
ISC_LANG_ENDDECLS
diff --git a/lib/dns/include/dst/gssapi.h b/lib/dns/include/dst/gssapi.h
index 1e81a55b9718..53c594e6b237 100644
--- a/lib/dns/include/dst/gssapi.h
+++ b/lib/dns/include/dst/gssapi.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009-2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -29,7 +29,7 @@
#include <dns/types.h>
#ifdef GSSAPI
-#ifdef _WINDOWS
+#ifdef WIN32
/*
* MSVC does not like macros in #include lines.
*/
diff --git a/lib/dns/journal.c b/lib/dns/journal.c
index 022a3e280f83..2d0b3f5f7494 100644
--- a/lib/dns/journal.c
+++ b/lib/dns/journal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -307,7 +307,7 @@ struct dns_journal {
unsigned int magic; /*%< JOUR */
isc_mem_t *mctx; /*%< Memory context */
journal_state_t state;
- const char *filename; /*%< Journal file name */
+ char *filename; /*%< Journal file name */
FILE * fp; /*%< File handle */
isc_offset_t offset; /*%< Current file offset */
journal_header_t header; /*%< In-core journal header */
@@ -357,7 +357,7 @@ journal_pos_encode(journal_rawpos_t *raw, journal_pos_t *cooked) {
static void
journal_header_decode(journal_rawheader_t *raw, journal_header_t *cooked) {
INSIST(sizeof(cooked->format) == sizeof(raw->h.format));
- memcpy(cooked->format, raw->h.format, sizeof(cooked->format));
+ memmove(cooked->format, raw->h.format, sizeof(cooked->format));
journal_pos_decode(&raw->h.begin, &cooked->begin);
journal_pos_decode(&raw->h.end, &cooked->end);
cooked->index_size = decode_uint32(raw->h.index_size);
@@ -371,7 +371,7 @@ journal_header_encode(journal_header_t *cooked, journal_rawheader_t *raw) {
INSIST(sizeof(cooked->format) == sizeof(raw->h.format));
memset(raw->pad, 0, sizeof(raw->pad));
- memcpy(raw->h.format, cooked->format, sizeof(raw->h.format));
+ memmove(raw->h.format, cooked->format, sizeof(raw->h.format));
journal_pos_encode(&raw->h.begin, &cooked->begin);
journal_pos_encode(&raw->h.end, &cooked->end);
encode_uint32(cooked->index_size, raw->h.index_size);
@@ -411,7 +411,7 @@ journal_read(dns_journal_t *j, void *mem, size_t nbytes) {
j->filename, isc_result_totext(result));
return (ISC_R_UNEXPECTED);
}
- j->offset += nbytes;
+ j->offset += (isc_offset_t)nbytes;
return (ISC_R_SUCCESS);
}
@@ -426,7 +426,7 @@ journal_write(dns_journal_t *j, void *mem, size_t nbytes) {
j->filename, isc_result_totext(result));
return (ISC_R_UNEXPECTED);
}
- j->offset += nbytes;
+ j->offset += (isc_offset_t)nbytes;
return (ISC_R_SUCCESS);
}
@@ -528,7 +528,7 @@ journal_file_create(isc_mem_t *mctx, const char *filename) {
return (ISC_R_NOMEMORY);
}
memset(mem, 0, size);
- memcpy(mem, &rawheader, sizeof(rawheader));
+ memmove(mem, &rawheader, sizeof(rawheader));
result = isc_stdio_write(mem, 1, (size_t) size, fp, NULL);
if (result != ISC_R_SUCCESS) {
@@ -572,10 +572,13 @@ journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write,
isc_mem_attach(mctx, &j->mctx);
j->state = JOURNAL_STATE_INVALID;
j->fp = NULL;
- j->filename = filename;
+ j->filename = isc_mem_strdup(mctx, filename);
j->index = NULL;
j->rawindex = NULL;
+ if (j->filename == NULL)
+ FAIL(ISC_R_NOMEMORY);
+
result = isc_stdio_open(j->filename, write ? "rb+" : "rb", &fp);
if (result == ISC_R_FILENOTFOUND) {
@@ -678,6 +681,8 @@ journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write,
sizeof(journal_rawpos_t));
j->index = NULL;
}
+ if (j->filename != NULL)
+ isc_mem_free(j->mctx, j->filename);
if (j->fp != NULL)
(void)isc_stdio_close(j->fp);
isc_mem_putanddetach(&j->mctx, j, sizeof(*j));
@@ -689,7 +694,7 @@ dns_journal_open(isc_mem_t *mctx, const char *filename, unsigned int mode,
dns_journal_t **journalp)
{
isc_result_t result;
- int namelen;
+ size_t namelen;
char backup[1024];
isc_boolean_t write, create;
@@ -699,11 +704,11 @@ dns_journal_open(isc_mem_t *mctx, const char *filename, unsigned int mode,
result = journal_open(mctx, filename, write, create, journalp);
if (result == ISC_R_NOTFOUND) {
namelen = strlen(filename);
- if (namelen > 4 && strcmp(filename + namelen - 4, ".jnl") == 0)
+ if (namelen > 4U && strcmp(filename + namelen - 4, ".jnl") == 0)
namelen -= 4;
result = isc_string_printf(backup, sizeof(backup), "%.*s.jbk",
- namelen, filename);
+ (int)namelen, filename);
if (result != ISC_R_SUCCESS)
return (result);
result = journal_open(mctx, backup, write, write, journalp);
@@ -1241,7 +1246,8 @@ dns_journal_destroy(dns_journal_t **journalp) {
isc_mem_put(j->mctx, j->it.target.base, j->it.target.length);
if (j->it.source.base != NULL)
isc_mem_put(j->mctx, j->it.source.base, j->it.source.length);
-
+ if (j->filename != NULL)
+ isc_mem_free(j->mctx, j->filename);
if (j->fp != NULL)
(void)isc_stdio_close(j->fp);
j->magic = 0;
@@ -1257,9 +1263,7 @@ dns_journal_destroy(dns_journal_t **journalp) {
/* XXX Share code with incoming IXFR? */
static isc_result_t
-roll_forward(dns_journal_t *j, dns_db_t *db, unsigned int options,
- isc_uint32_t resign)
-{
+roll_forward(dns_journal_t *j, dns_db_t *db, unsigned int options) {
isc_buffer_t source; /* Transaction data from disk */
isc_buffer_t target; /* Ditto after _fromwire check */
isc_uint32_t db_serial; /* Database SOA serial */
@@ -1276,7 +1280,6 @@ roll_forward(dns_journal_t *j, dns_db_t *db, unsigned int options,
REQUIRE(DNS_DB_VALID(db));
dns_diff_init(j->mctx, &diff);
- diff.resign = resign;
/*
* Set up empty initial buffers for unchecked and checked
@@ -1409,6 +1412,8 @@ dns_journal_rollforward2(isc_mem_t *mctx, dns_db_t *db, unsigned int options,
REQUIRE(DNS_DB_VALID(db));
REQUIRE(filename != NULL);
+ UNUSED(resign);
+
j = NULL;
result = dns_journal_open(mctx, filename, DNS_JOURNAL_READ, &j);
if (result == ISC_R_NOTFOUND) {
@@ -1421,7 +1426,7 @@ dns_journal_rollforward2(isc_mem_t *mctx, dns_db_t *db, unsigned int options,
if (JOURNAL_EMPTY(&j->header))
result = DNS_R_UPTODATE;
else
- result = roll_forward(j, db, options, resign);
+ result = roll_forward(j, db, options);
dns_journal_destroy(&j);
@@ -2094,7 +2099,7 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial,
dns_journal_t *new = NULL;
journal_rawheader_t rawheader;
unsigned int copy_length;
- int namelen;
+ size_t namelen;
char *buf = NULL;
unsigned int size = 0;
isc_result_t result;
@@ -2104,16 +2109,16 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial,
isc_boolean_t is_backup = ISC_FALSE;
namelen = strlen(filename);
- if (namelen > 4 && strcmp(filename + namelen - 4, ".jnl") == 0)
+ if (namelen > 4U && strcmp(filename + namelen - 4, ".jnl") == 0)
namelen -= 4;
result = isc_string_printf(newname, sizeof(newname), "%.*s.jnw",
- namelen, filename);
+ (int)namelen, filename);
if (result != ISC_R_SUCCESS)
return (result);
result = isc_string_printf(backup, sizeof(backup), "%.*s.jbk",
- namelen, filename);
+ (int)namelen, filename);
if (result != ISC_R_SUCCESS)
return (result);
diff --git a/lib/dns/keydata.c b/lib/dns/keydata.c
index 822bd467dc55..cb1ed38dd7e3 100644
--- a/lib/dns/keydata.c
+++ b/lib/dns/keydata.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2014 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
@@ -51,7 +51,7 @@ dns_keydata_todnskey(dns_rdata_keydata_t *keydata,
dnskey->data = isc_mem_allocate(mctx, dnskey->datalen);
if (dnskey->data == NULL)
return (ISC_R_NOMEMORY);
- memcpy(dnskey->data, keydata->data, dnskey->datalen);
+ memmove(dnskey->data, keydata->data, dnskey->datalen);
}
return (ISC_R_SUCCESS);
@@ -82,7 +82,7 @@ dns_keydata_fromdnskey(dns_rdata_keydata_t *keydata,
keydata->data = isc_mem_allocate(mctx, keydata->datalen);
if (keydata->data == NULL)
return (ISC_R_NOMEMORY);
- memcpy(keydata->data, dnskey->data, keydata->datalen);
+ memmove(keydata->data, dnskey->data, keydata->datalen);
}
return (ISC_R_SUCCESS);
diff --git a/lib/dns/log.c b/lib/dns/log.c
index c4d644e3899f..75e0d79ba34b 100644
--- a/lib/dns/log.c
+++ b/lib/dns/log.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -45,6 +45,7 @@ LIBDNS_EXTERNAL_DATA isc_logcategory_t dns_categories[] = {
{ "delegation-only", 0 },
{ "edns-disabled", 0 },
{ "rpz", 0 },
+ { "rate-limit", 0 },
{ NULL, 0 }
};
diff --git a/lib/dns/master.c b/lib/dns/master.c
index d0c175876f5c..9e796e6e0ac7 100644
--- a/lib/dns/master.c
+++ b/lib/dns/master.c
@@ -578,9 +578,9 @@ loadctx_create(dns_masterformat_t format, isc_mem_t *mctx,
isc_lex_setcomments(lctx->lex, ISC_LEXCOMMENT_DNSMASTERFILE);
}
- lctx->ttl_known = ISC_FALSE;
+ lctx->ttl_known = ISC_TF((options & DNS_MASTER_NOTTL) != 0);
lctx->ttl = 0;
- lctx->default_ttl_known = ISC_FALSE;
+ lctx->default_ttl_known = lctx->ttl_known;
lctx->default_ttl = 0;
lctx->warn_1035 = ISC_TRUE; /* XXX Argument? */
lctx->warn_tcr = ISC_TRUE; /* XXX Argument? */
@@ -686,7 +686,7 @@ genname(char *name, int it, char *buffer, size_t length) {
isc_boolean_t nibblemode;
r.base = buffer;
- r.length = length;
+ r.length = (unsigned int)length;
while (*name != '\0') {
if (*name == '$') {
@@ -2083,7 +2083,7 @@ read_and_check(isc_boolean_t do_read, isc_buffer_t *buffer,
f, NULL);
if (result != ISC_R_SUCCESS)
return (result);
- isc_buffer_add(buffer, len);
+ isc_buffer_add(buffer, (unsigned int)len);
} else if (isc_buffer_remaininglength(buffer) < len)
return (ISC_R_RANGE);
@@ -2267,7 +2267,7 @@ load_raw(dns_loadctx_t *lctx) {
lctx->f, NULL);
if (result != ISC_R_SUCCESS)
goto cleanup;
- isc_buffer_add(&target, readlen);
+ isc_buffer_add(&target, (unsigned int)readlen);
/* Construct RRset headers */
rdatalist.rdclass = isc_buffer_getuint16(&target);
diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c
index 2717658e691a..01f797cb99ed 100644
--- a/lib/dns/masterdump.c
+++ b/lib/dns/masterdump.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -101,6 +101,21 @@ typedef struct dns_totext_ctx {
} dns_totext_ctx_t;
LIBDNS_EXTERNAL_DATA const dns_master_style_t
+dns_master_style_keyzone = {
+ DNS_STYLEFLAG_OMIT_OWNER |
+ DNS_STYLEFLAG_OMIT_CLASS |
+ DNS_STYLEFLAG_REL_OWNER |
+ DNS_STYLEFLAG_REL_DATA |
+ DNS_STYLEFLAG_OMIT_TTL |
+ DNS_STYLEFLAG_TTL |
+ DNS_STYLEFLAG_COMMENT |
+ DNS_STYLEFLAG_RRCOMMENT |
+ DNS_STYLEFLAG_MULTILINE |
+ DNS_STYLEFLAG_KEYDATA,
+ 24, 24, 24, 32, 80, 8, UINT_MAX
+};
+
+LIBDNS_EXTERNAL_DATA const dns_master_style_t
dns_master_style_default = {
DNS_STYLEFLAG_OMIT_OWNER |
DNS_STYLEFLAG_OMIT_CLASS |
@@ -232,7 +247,7 @@ indent(unsigned int *current, unsigned int to, int tabwidth,
int n = t;
if (n > N_TABS)
n = N_TABS;
- memcpy(p, tabs, n);
+ memmove(p, tabs, n);
p += n;
t -= n;
}
@@ -253,7 +268,7 @@ indent(unsigned int *current, unsigned int to, int tabwidth,
int n = t;
if (n > N_SPACES)
n = N_SPACES;
- memcpy(p, spaces, n);
+ memmove(p, spaces, n);
p += n;
t -= n;
}
@@ -343,7 +358,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -460,7 +475,7 @@ rdataset_totext(dns_rdataset_t *rdataset,
isc_buffer_availableregion(target, &r);
if (r.length < length)
return (ISC_R_NOSPACE);
- memcpy(r.base, ttlbuf, length);
+ memmove(r.base, ttlbuf, length);
isc_buffer_add(target, length);
column += length;
@@ -505,9 +520,22 @@ rdataset_totext(dns_rdataset_t *rdataset,
type_start = target->used;
if ((rdataset->attributes & DNS_RDATASETATTR_NEGATIVE) != 0)
RETERR(str_totext("\\-", target));
- result = dns_rdatatype_totext(type, target);
- if (result != ISC_R_SUCCESS)
- return (result);
+ switch (type) {
+ case dns_rdatatype_keydata:
+#define KEYDATA "KEYDATA"
+ if ((ctx->style.flags & DNS_STYLEFLAG_KEYDATA) != 0) {
+ if (isc_buffer_availablelength(target) <
+ (sizeof(KEYDATA) - 1))
+ return (ISC_R_NOSPACE);
+ isc_buffer_putstr(target, KEYDATA);
+ break;
+ }
+ /* FALLTHROUGH */
+ default:
+ result = dns_rdatatype_totext(type, target);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ }
column += (target->used - type_start);
/*
diff --git a/lib/dns/message.c b/lib/dns/message.c
index 53efc5a1beb5..901c6b6d991d 100644
--- a/lib/dns/message.c
+++ b/lib/dns/message.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1675,8 +1675,8 @@ dns_message_parse(dns_message_t *msg, isc_buffer_t *source,
msg->saved.base = isc_mem_get(msg->mctx, msg->saved.length);
if (msg->saved.base == NULL)
return (ISC_R_NOMEMORY);
- memcpy(msg->saved.base, isc_buffer_base(&origsource),
- msg->saved.length);
+ memmove(msg->saved.base, isc_buffer_base(&origsource),
+ msg->saved.length);
msg->free_saved = 1;
}
@@ -1748,7 +1748,7 @@ dns_message_renderchangebuffer(dns_message_t *msg, isc_buffer_t *buffer) {
* Copy the contents from the old to the new buffer.
*/
isc_buffer_add(buffer, r.length);
- memcpy(rn.base, r.base, r.length);
+ memmove(rn.base, r.base, r.length);
msg->buffer = buffer;
@@ -3468,7 +3468,7 @@ dns_message_buildopt(dns_message_t *message, dns_rdataset_t **rdatasetp,
dns_rdatalist_t *rdatalist = NULL;
dns_rdata_t *rdata = NULL;
isc_result_t result;
- size_t len = 0, i;
+ unsigned int len = 0, i;
REQUIRE(DNS_MESSAGE_VALID(message));
REQUIRE(rdatasetp != NULL && *rdatasetp == NULL);
diff --git a/lib/dns/name.c b/lib/dns/name.c
index 7fb21e138c3c..9b24ed363804 100644
--- a/lib/dns/name.c
+++ b/lib/dns/name.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -578,6 +578,11 @@ dns_name_fullcompare(const dns_name_t *name1, const dns_name_t *name2,
REQUIRE((name1->attributes & DNS_NAMEATTR_ABSOLUTE) ==
(name2->attributes & DNS_NAMEATTR_ABSOLUTE));
+ if (name1 == name2) {
+ *orderp = 0;
+ return (dns_namereln_equal);
+ }
+
SETUP_OFFSETS(name1, offsets1, odata1);
SETUP_OFFSETS(name2, offsets2, odata2);
@@ -691,6 +696,9 @@ dns_name_equal(const dns_name_t *name1, const dns_name_t *name2) {
REQUIRE((name1->attributes & DNS_NAMEATTR_ABSOLUTE) ==
(name2->attributes & DNS_NAMEATTR_ABSOLUTE));
+ if (name1 == name2)
+ return (ISC_TRUE);
+
if (name1->length != name2->length)
return (ISC_FALSE);
@@ -963,8 +971,8 @@ dns_name_clone(const dns_name_t *source, dns_name_t *target) {
DNS_NAMEATTR_DYNOFFSETS);
if (target->offsets != NULL && source->labels > 0) {
if (source->offsets != NULL)
- memcpy(target->offsets, source->offsets,
- source->labels);
+ memmove(target->offsets, source->offsets,
+ source->labels);
else
set_offsets(target, target->offsets, NULL);
}
@@ -993,7 +1001,7 @@ dns_name_fromregion(dns_name_t *name, const isc_region_t *r) {
len = (r->length < r2.length) ? r->length : r2.length;
if (len > DNS_NAME_MAXWIRE)
len = DNS_NAME_MAXWIRE;
- memcpy(r2.base, r->base, len);
+ memmove(r2.base, r->base, len);
name->ndata = r2.base;
name->length = len;
} else {
@@ -1977,8 +1985,8 @@ dns_name_towire(const dns_name_t *name, dns_compress_t *cctx,
if (gf) {
if (target->length - target->used < gp.length)
return (ISC_R_NOSPACE);
- (void)memcpy((unsigned char *)target->base + target->used,
- gp.ndata, (size_t)gp.length);
+ (void)memmove((unsigned char *)target->base + target->used,
+ gp.ndata, (size_t)gp.length);
isc_buffer_add(target, gp.length);
go |= 0xc000;
if (target->length - target->used < 2)
@@ -1989,8 +1997,8 @@ dns_name_towire(const dns_name_t *name, dns_compress_t *cctx,
} else {
if (target->length - target->used < name->length)
return (ISC_R_NOSPACE);
- (void)memcpy((unsigned char *)target->base + target->used,
- name->ndata, (size_t)name->length);
+ (void)memmove((unsigned char *)target->base + target->used,
+ name->ndata, (size_t)name->length);
isc_buffer_add(target, name->length);
dns_compress_add(cctx, name, name, offset);
}
@@ -2070,12 +2078,7 @@ dns_name_concatenate(dns_name_t *prefix, dns_name_t *suffix, dns_name_t *name,
if (copy_suffix) {
if ((suffix->attributes & DNS_NAMEATTR_ABSOLUTE) != 0)
absolute = ISC_TRUE;
- if (suffix == name && suffix->buffer == target)
- memmove(ndata + prefix_length, suffix->ndata,
- suffix->length);
- else
- memcpy(ndata + prefix_length, suffix->ndata,
- suffix->length);
+ memmove(ndata + prefix_length, suffix->ndata, suffix->length);
}
/*
@@ -2084,7 +2087,7 @@ dns_name_concatenate(dns_name_t *prefix, dns_name_t *suffix, dns_name_t *name,
* copy anything.
*/
if (copy_prefix && (prefix != name || prefix->buffer != target))
- memcpy(ndata, prefix->ndata, prefix_length);
+ memmove(ndata, prefix->ndata, prefix_length);
name->ndata = ndata;
name->labels = labels;
@@ -2158,7 +2161,7 @@ dns_name_dup(const dns_name_t *source, isc_mem_t *mctx,
if (target->ndata == NULL)
return (ISC_R_NOMEMORY);
- memcpy(target->ndata, source->ndata, source->length);
+ memmove(target->ndata, source->ndata, source->length);
target->length = source->length;
target->labels = source->labels;
@@ -2167,8 +2170,8 @@ dns_name_dup(const dns_name_t *source, isc_mem_t *mctx,
target->attributes |= DNS_NAMEATTR_ABSOLUTE;
if (target->offsets != NULL) {
if (source->offsets != NULL)
- memcpy(target->offsets, source->offsets,
- source->labels);
+ memmove(target->offsets, source->offsets,
+ source->labels);
else
set_offsets(target, target->offsets, NULL);
}
@@ -2200,7 +2203,7 @@ dns_name_dupwithoffsets(dns_name_t *source, isc_mem_t *mctx,
if (target->ndata == NULL)
return (ISC_R_NOMEMORY);
- memcpy(target->ndata, source->ndata, source->length);
+ memmove(target->ndata, source->ndata, source->length);
target->length = source->length;
target->labels = source->labels;
@@ -2210,7 +2213,7 @@ dns_name_dupwithoffsets(dns_name_t *source, isc_mem_t *mctx,
target->attributes |= DNS_NAMEATTR_ABSOLUTE;
target->offsets = target->ndata + source->length;
if (source->offsets != NULL)
- memcpy(target->offsets, source->offsets, source->labels);
+ memmove(target->offsets, source->offsets, source->labels);
else
set_offsets(target, target->offsets, NULL);
@@ -2390,7 +2393,7 @@ dns_name_tostring(dns_name_t *name, char **target, isc_mem_t *mctx) {
isc_buffer_usedregion(&buf, &reg);
p = isc_mem_allocate(mctx, reg.length + 1);
- memcpy(p, (char *) reg.base, (int) reg.length);
+ memmove(p, (char *) reg.base, (int) reg.length);
p[reg.length] = '\0';
*target = p;
@@ -2466,7 +2469,7 @@ dns_name_copy(dns_name_t *source, dns_name_t *dest, isc_buffer_t *target) {
ndata = (unsigned char *)target->base + target->used;
dest->ndata = target->base;
- memcpy(ndata, source->ndata, source->length);
+ memmove(ndata, source->ndata, source->length);
dest->ndata = ndata;
dest->labels = source->labels;
@@ -2478,7 +2481,7 @@ dns_name_copy(dns_name_t *source, dns_name_t *dest, isc_buffer_t *target) {
if (dest->labels > 0 && dest->offsets != NULL) {
if (source->offsets != NULL)
- memcpy(dest->offsets, source->offsets, source->labels);
+ memmove(dest->offsets, source->offsets, source->labels);
else
set_offsets(dest, dest->offsets, NULL);
}
diff --git a/lib/dns/nsec.c b/lib/dns/nsec.c
index e446806b4e6a..5d1197d093b0 100644
--- a/lib/dns/nsec.c
+++ b/lib/dns/nsec.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -96,7 +96,7 @@ dns_nsec_compressbitmap(unsigned char *map, const unsigned char *raw,
map += octet + 1;
raw += 32;
}
- return (map - start);
+ return (unsigned int)(map - start);
}
isc_result_t
@@ -115,7 +115,7 @@ dns_nsec_buildrdata(dns_db_t *db, dns_dbversion_t *version,
memset(buffer, 0, DNS_NSEC_BUFFERSIZE);
dns_name_toregion(target, &r);
- memcpy(buffer, r.base, r.length);
+ memmove(buffer, r.base, r.length);
r.base = buffer;
/*
* Use the end of the space for a raw bitmap leaving enough
@@ -164,7 +164,7 @@ dns_nsec_buildrdata(dns_db_t *db, dns_dbversion_t *version,
nsec_bits += dns_nsec_compressbitmap(nsec_bits, bm, max_type);
- r.length = nsec_bits - r.base;
+ r.length = (unsigned int)(nsec_bits - r.base);
INSIST(r.length <= DNS_NSEC_BUFFERSIZE);
dns_rdata_fromregion(rdata,
dns_db_class(db),
diff --git a/lib/dns/nsec3.c b/lib/dns/nsec3.c
index 935f515d23ed..3724118cb3fe 100644
--- a/lib/dns/nsec3.c
+++ b/lib/dns/nsec3.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2008-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006, 2008-2014 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
@@ -97,15 +97,15 @@ dns_nsec3_buildrdata(dns_db_t *db, dns_dbversion_t *version,
*p++ = iterations >> 8;
*p++ = iterations;
- *p++ = salt_length;
- memcpy(p, salt, salt_length);
+ *p++ = (unsigned char)salt_length;
+ memmove(p, salt, salt_length);
p += salt_length;
- *p++ = hash_length;
- memcpy(p, nexthash, hash_length);
+ *p++ = (unsigned char)hash_length;
+ memmove(p, nexthash, hash_length);
p += hash_length;
- r.length = p - buffer;
+ r.length = (unsigned int)(p - buffer);
r.base = buffer;
/*
@@ -177,7 +177,7 @@ dns_nsec3_buildrdata(dns_db_t *db, dns_dbversion_t *version,
collapse_bitmap:
nsec_bits += dns_nsec_compressbitmap(nsec_bits, bm, max_type);
- r.length = nsec_bits - r.base;
+ r.length = (unsigned int)(nsec_bits - r.base);
INSIST(r.length <= DNS_NSEC3_BUFFERSIZE);
dns_rdata_fromregion(rdata, dns_db_class(db), dns_rdatatype_nsec3, &r);
@@ -244,7 +244,8 @@ dns_nsec3_hashname(dns_fixedname_t *result,
dns_name_downcase(name, downcased, NULL);
/* hash the node name */
- len = isc_iterated_hash(rethash, hashalg, iterations, salt, saltlength,
+ len = isc_iterated_hash(rethash, hashalg, iterations,
+ salt, (int)saltlength,
downcased->ndata, downcased->length);
if (len == 0U)
return (DNS_R_BADALG);
@@ -254,7 +255,7 @@ dns_nsec3_hashname(dns_fixedname_t *result,
/* convert the hash to base32hex */
region.base = rethash;
- region.length = len;
+ region.length = (unsigned int)len;
isc_buffer_init(&namebuffer, nametext, sizeof nametext);
isc_base32hex_totext(&region, 1, "", &namebuffer);
@@ -300,7 +301,6 @@ do_one_tuple(dns_difftuple_t **tuple, dns_db_t *db, dns_dbversion_t *ver,
* Create a singleton diff.
*/
dns_diff_init(diff->mctx, &temp_diff);
- temp_diff.resign = diff->resign;
ISC_LIST_APPEND(temp_diff.tuples, *tuple, link);
/*
@@ -591,7 +591,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
flags = nsec3.flags;
next_length = nsec3.next_length;
INSIST(next_length <= sizeof(nexthash));
- memcpy(nexthash, nsec3.next, next_length);
+ memmove(nexthash, nsec3.next, next_length);
dns_rdataset_disassociate(&rdataset);
/*
* If the NSEC3 is not for a unsecure delegation then
@@ -679,7 +679,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
* Fixup the previous NSEC3.
*/
nsec3.next = nexthash;
- nsec3.next_length = next_length;
+ nsec3.next_length = (unsigned char)next_length;
isc_buffer_init(&buffer, nsec3buf, sizeof(nsec3buf));
CHECK(dns_rdata_fromstruct(&rdata, rdataset.rdclass,
dns_rdatatype_nsec3, &nsec3,
@@ -688,7 +688,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
rdataset.ttl, &rdata, &tuple));
CHECK(do_one_tuple(&tuple, db, version, diff));
INSIST(old_length <= sizeof(nexthash));
- memcpy(nexthash, old_next, old_length);
+ memmove(nexthash, old_next, old_length);
if (!CREATE(nsec3param->flags))
flags = nsec3.flags;
dns_rdata_reset(&rdata);
@@ -798,7 +798,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
* Fixup the previous NSEC3.
*/
nsec3.next = nexthash;
- nsec3.next_length = next_length;
+ nsec3.next_length = (unsigned char)next_length;
isc_buffer_init(&buffer, nsec3buf,
sizeof(nsec3buf));
CHECK(dns_rdata_fromstruct(&rdata, rdataset.rdclass,
@@ -809,7 +809,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
&tuple));
CHECK(do_one_tuple(&tuple, db, version, diff));
INSIST(old_length <= sizeof(nexthash));
- memcpy(nexthash, old_next, old_length);
+ memmove(nexthash, old_next, old_length);
if (!CREATE(nsec3param->flags))
flags = nsec3.flags;
dns_rdata_reset(&rdata);
@@ -939,7 +939,7 @@ dns_nsec3param_fromprivate(dns_rdata_t *src, dns_rdata_t *target,
isc_buffer_init(&buf1, src->data + 1, src->length - 1);
isc_buffer_add(&buf1, src->length - 1);
isc_buffer_setactive(&buf1, src->length - 1);
- isc_buffer_init(&buf2, buf, buflen);
+ isc_buffer_init(&buf2, buf, (unsigned int)buflen);
dns_decompress_init(&dctx, -1, DNS_DECOMPRESS_NONE);
result = dns_rdata_fromwire(target, src->rdclass,
dns_rdatatype_nsec3param,
@@ -958,7 +958,7 @@ dns_nsec3param_toprivate(dns_rdata_t *src, dns_rdata_t *target,
REQUIRE(DNS_RDATA_INITIALIZED(target));
- memcpy(buf + 1, src->data, src->length);
+ memmove(buf + 1, src->data, src->length);
buf[0] = 0;
target->data = buf;
target->length = src->length + 1;
@@ -1097,7 +1097,7 @@ dns_nsec3param_deletechains(dns_db_t *db, dns_dbversion_t *ver,
dns_rdata_reset(&rdata);
dns_rdataset_current(&rdataset, &rdata);
INSIST(rdata.length <= sizeof(buf));
- memcpy(buf, rdata.data, rdata.length);
+ memmove(buf, rdata.data, rdata.length);
/*
* Private NSEC3 record length >= 6.
@@ -1361,7 +1361,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
if (result == ISC_R_SUCCESS) {
next_length = nsec3.next_length;
INSIST(next_length <= sizeof(nexthash));
- memcpy(nexthash, nsec3.next, next_length);
+ memmove(nexthash, nsec3.next, next_length);
}
dns_rdataset_disassociate(&rdataset);
if (result == ISC_R_NOMORE)
@@ -1405,7 +1405,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
* Fixup the previous NSEC3.
*/
nsec3.next = nexthash;
- nsec3.next_length = next_length;
+ nsec3.next_length = (unsigned char)next_length;
if (CREATE(nsec3param->flags))
nsec3.flags = nsec3param->flags & DNS_NSEC3FLAG_OPTOUT;
isc_buffer_init(&buffer, nsec3buf, sizeof(nsec3buf));
@@ -1464,7 +1464,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
if (result == ISC_R_SUCCESS) {
next_length = nsec3.next_length;
INSIST(next_length <= sizeof(nexthash));
- memcpy(nexthash, nsec3.next, next_length);
+ memmove(nexthash, nsec3.next, next_length);
}
dns_rdataset_disassociate(&rdataset);
if (result == ISC_R_NOMORE)
@@ -1505,7 +1505,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
* Fixup the previous NSEC3.
*/
nsec3.next = nexthash;
- nsec3.next_length = next_length;
+ nsec3.next_length = (unsigned char)next_length;
isc_buffer_init(&buffer, nsec3buf,
sizeof(nsec3buf));
CHECK(dns_rdata_fromstruct(&rdata, rdataset.rdclass,
diff --git a/lib/dns/openssldh_link.c b/lib/dns/openssldh_link.c
index 36b8a412a3ee..cb9fb77d4219 100644
--- a/lib/dns/openssldh_link.c
+++ b/lib/dns/openssldh_link.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -608,11 +608,11 @@ BN_fromhex(BIGNUM *b, const char *str) {
s = strchr(hexdigits, tolower((unsigned char)str[i]));
RUNTIME_CHECK(s != NULL);
- high = s - hexdigits;
+ high = (unsigned int)(s - hexdigits);
s = strchr(hexdigits, tolower((unsigned char)str[i + 1]));
RUNTIME_CHECK(s != NULL);
- low = s - hexdigits;
+ low = (unsigned int)(s - hexdigits);
data[i/2] = (unsigned char)((high << 4) + low);
}
diff --git a/lib/dns/openssldsa_link.c b/lib/dns/openssldsa_link.c
index 8bea1c09e05e..61e64db0d4a5 100644
--- a/lib/dns/openssldsa_link.c
+++ b/lib/dns/openssldsa_link.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -523,6 +523,11 @@ openssldsa_tofile(const dst_key_t *key, const char *directory) {
if (key->keydata.dsa == NULL)
return (DST_R_NULLKEY);
+ if (key->external) {
+ priv.nelements = 0;
+ return (dst__privstruct_writefile(key, &priv, directory));
+ }
+
dsa = key->keydata.dsa;
priv.elements[cnt].tag = TAG_DSA_PRIME;
@@ -569,6 +574,7 @@ openssldsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
#define DST_RET(a) {ret = a; goto err;}
UNUSED(pub);
+
/* read private key file */
ret = dst__privstruct_parse(key, DST_ALG_DSA, lexer, mctx, &priv);
if (ret != ISC_R_SUCCESS)
@@ -607,6 +613,19 @@ openssldsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
}
dst__privstruct_free(&priv, mctx);
+ if (key->external) {
+ if (pub == NULL)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ dsa->q = pub->keydata.dsa->q;
+ pub->keydata.dsa->q = NULL;
+ dsa->p = pub->keydata.dsa->p;
+ pub->keydata.dsa->p = NULL;
+ dsa->g = pub->keydata.dsa->g;
+ pub->keydata.dsa->g = NULL;
+ dsa->pub_key = pub->keydata.dsa->pub_key;
+ pub->keydata.dsa->pub_key = NULL;
+ }
+
key->key_size = BN_num_bits(dsa->p);
return (ISC_R_SUCCESS);
diff --git a/lib/dns/opensslecdsa_link.c b/lib/dns/opensslecdsa_link.c
index c3f5061b7546..40081c2df856 100644
--- a/lib/dns/opensslecdsa_link.c
+++ b/lib/dns/opensslecdsa_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2012-2014 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
@@ -371,7 +371,7 @@ opensslecdsa_todns(const dst_key_t *key, isc_buffer_t *data) {
cp = buf;
if (!i2o_ECPublicKey(eckey, &cp))
DST_RET (dst__openssl_toresult(ISC_R_FAILURE));
- memcpy(r.base, buf + 1, len);
+ memmove(r.base, buf + 1, len);
isc_buffer_add(data, len);
ret = ISC_R_SUCCESS;
@@ -414,7 +414,7 @@ opensslecdsa_fromdns(dst_key_t *key, isc_buffer_t *data) {
return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
buf[0] = POINT_CONVERSION_UNCOMPRESSED;
- memcpy(buf + 1, r.base, len);
+ memmove(buf + 1, r.base, len);
cp = buf;
if (o2i_ECPublicKey(&eckey,
(const unsigned char **) &cp,
@@ -453,6 +453,11 @@ opensslecdsa_tofile(const dst_key_t *key, const char *directory) {
if (key->keydata.pkey == NULL)
return (DST_R_NULLKEY);
+ if (key->external) {
+ priv.nelements = 0;
+ return (dst__privstruct_writefile(key, &priv, directory));
+ }
+
pkey = key->keydata.pkey;
eckey = EVP_PKEY_get1_EC_KEY(pkey);
if (eckey == NULL)
@@ -514,8 +519,9 @@ static isc_result_t
opensslecdsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
dst_private_t priv;
isc_result_t ret;
- EVP_PKEY *pkey;
- EC_KEY *eckey = NULL;
+ EVP_PKEY *pkey, *pubpkey;
+ EC_KEY *eckey = NULL, *pubeckey = NULL;
+ const EC_POINT *pubkey;
BIGNUM *privkey;
int group_nid;
isc_mem_t *mctx = key->mctx;
@@ -537,16 +543,35 @@ opensslecdsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
if (ret != ISC_R_SUCCESS)
goto err;
- privkey = BN_bin2bn(priv.elements[0].data,
- priv.elements[0].length, NULL);
- if (privkey == NULL)
- DST_RET(ISC_R_NOMEMORY);
- if (!EC_KEY_set_private_key(eckey, privkey))
- DST_RET(ISC_R_NOMEMORY);
- if (ecdsa_check(eckey, pub) != ISC_R_SUCCESS)
- DST_RET(DST_R_INVALIDPRIVATEKEY);
- dst__privstruct_free(&priv, mctx);
- memset(&priv, 0, sizeof(priv));
+ if (key->external) {
+ /*
+ * Copy the public key to this new key.
+ */
+ if (pub == NULL)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ pubpkey = pub->keydata.pkey;
+ pubeckey = EVP_PKEY_get1_EC_KEY(pubpkey);
+ if (pubeckey == NULL)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ pubkey = EC_KEY_get0_public_key(pubeckey);
+ if (pubkey == NULL)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ if (EC_KEY_set_public_key(eckey, pubkey) != 1)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ if (EC_KEY_check_key(eckey) != 1)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ } else {
+ privkey = BN_bin2bn(priv.elements[0].data,
+ priv.elements[0].length, NULL);
+ if (privkey == NULL)
+ DST_RET(ISC_R_NOMEMORY);
+ if (!EC_KEY_set_private_key(eckey, privkey))
+ DST_RET(ISC_R_NOMEMORY);
+ if (ecdsa_check(eckey, pub) != ISC_R_SUCCESS)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ dst__privstruct_free(&priv, mctx);
+ memset(&priv, 0, sizeof(priv));
+ }
pkey = EVP_PKEY_new();
if (pkey == NULL)
@@ -561,6 +586,8 @@ opensslecdsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
err:
if (eckey != NULL)
EC_KEY_free(eckey);
+ if (pubeckey != NULL)
+ EC_KEY_free(pubeckey);
dst__privstruct_free(&priv, mctx);
memset(&priv, 0, sizeof(priv));
return (ret);
diff --git a/lib/dns/opensslgost_link.c b/lib/dns/opensslgost_link.c
index 1ce4405eb21d..b0578661f97f 100644
--- a/lib/dns/opensslgost_link.c
+++ b/lib/dns/opensslgost_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2010-2014 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
@@ -253,7 +253,7 @@ opensslgost_todns(const dst_key_t *key, isc_buffer_t *data) {
len = i2d_PUBKEY(pkey, &p);
INSIST(len == sizeof(der));
INSIST(memcmp(gost_prefix, der, 37) == 0);
- memcpy(r.base, der + 37, 64);
+ memmove(r.base, der + 37, 64);
isc_buffer_add(data, 64);
return (ISC_R_SUCCESS);
@@ -272,8 +272,8 @@ opensslgost_fromdns(dst_key_t *key, isc_buffer_t *data) {
if (r.length != 64)
return (DST_R_INVALIDPUBLICKEY);
- memcpy(der, gost_prefix, 37);
- memcpy(der + 37, r.base, 64);
+ memmove(der, gost_prefix, 37);
+ memmove(der + 37, r.base, 64);
isc_buffer_forward(data, 64);
p = der;
@@ -296,6 +296,11 @@ opensslgost_tofile(const dst_key_t *key, const char *directory) {
if (key->keydata.pkey == NULL)
return (DST_R_NULLKEY);
+ if (key->external) {
+ priv.nelements = 0;
+ return (dst__privstruct_writefile(key, &priv, directory));
+ }
+
pkey = key->keydata.pkey;
len = i2d_PrivateKey(pkey, NULL);
@@ -337,13 +342,21 @@ opensslgost_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
if (ret != ISC_R_SUCCESS)
return (ret);
- INSIST(priv.elements[0].tag == TAG_GOST_PRIVASN1);
- p = priv.elements[0].data;
- if (d2i_PrivateKey(NID_id_GostR3410_2001, &pkey, &p,
- (long) priv.elements[0].length) == NULL)
- DST_RET(dst__openssl_toresult2("d2i_PrivateKey",
- DST_R_INVALIDPRIVATEKEY));
- key->keydata.pkey = pkey;
+ if (key->external) {
+ INSIST(priv.nelements == 0);
+ if (pub == NULL)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+ key->keydata.pkey = pub->keydata.pkey;
+ pub->keydata.pkey = NULL;
+ } else {
+ INSIST(priv.elements[0].tag == TAG_GOST_PRIVASN1);
+ p = priv.elements[0].data;
+ if (d2i_PrivateKey(NID_id_GostR3410_2001, &pkey, &p,
+ (long) priv.elements[0].length) == NULL)
+ DST_RET(dst__openssl_toresult2("d2i_PrivateKey",
+ DST_R_INVALIDPRIVATEKEY));
+ key->keydata.pkey = pkey;
+ }
key->key_size = EVP_PKEY_bits(pkey);
dst__privstruct_free(&priv, mctx);
memset(&priv, 0, sizeof(priv));
diff --git a/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c
index fa7412cbddbd..8421c640708a 100644
--- a/lib/dns/opensslrsa_link.c
+++ b/lib/dns/opensslrsa_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -481,7 +481,7 @@ opensslrsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
INSIST(prefixlen + digestlen <= sizeof(digest));
memmove(digest + prefixlen, digest, digestlen);
- memcpy(digest, prefix, prefixlen);
+ memmove(digest, prefix, prefixlen);
status = RSA_private_encrypt(digestlen + prefixlen,
digest, r.base, rsa,
RSA_PKCS1_PADDING);
@@ -1048,8 +1048,14 @@ opensslrsa_tofile(const dst_key_t *key, const char *directory) {
return (DST_R_NULLKEY);
rsa = key->keydata.rsa;
#endif
-
memset(bufs, 0, sizeof(bufs));
+
+ if (key->external) {
+ priv.nelements = 0;
+ result = dst__privstruct_writefile(key, &priv, directory);
+ goto fail;
+ }
+
for (i = 0; i < 8; i++) {
bufs[i] = isc_mem_get(key->mctx, BN_num_bytes(rsa->n));
if (bufs[i] == NULL) {
@@ -1205,6 +1211,9 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
if (ret != ISC_R_SUCCESS)
goto err;
+ if (key->external && priv.nelements != 0)
+ DST_RET(DST_R_INVALIDPRIVATEKEY);
+
for (i = 0; i < priv.nelements; i++) {
switch (priv.elements[i].tag) {
case TAG_RSA_ENGINE:
@@ -1217,6 +1226,7 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
break;
}
}
+
/*
* Is this key is stored in a HSM?
* See if we can fetch it.
@@ -1328,8 +1338,10 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
if (rsa_check(rsa, pubrsa) != ISC_R_SUCCESS)
DST_RET(DST_R_INVALIDPRIVATEKEY);
- if (BN_num_bits(rsa->e) > RSA_MAX_PUBEXP_BITS)
- DST_RET(ISC_R_RANGE);
+ if (!key->external) {
+ if (BN_num_bits(rsa->e) > RSA_MAX_PUBEXP_BITS)
+ DST_RET(ISC_R_RANGE);
+ }
key->key_size = BN_num_bits(rsa->n);
if (pubrsa != NULL)
RSA_free(pubrsa);
diff --git a/lib/dns/portlist.c b/lib/dns/portlist.c
index 5bc89f482984..754eef668792 100644
--- a/lib/dns/portlist.c
+++ b/lib/dns/portlist.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -80,7 +80,7 @@ dns_portlist_create(isc_mem_t *mctx, dns_portlist_t **portlistp) {
portlist = isc_mem_get(mctx, sizeof(*portlist));
if (portlist == NULL)
return (ISC_R_NOMEMORY);
- result = isc_mutex_init(&portlist->lock);
+ result = isc_mutex_init(&portlist->lock);
if (result != ISC_R_SUCCESS) {
isc_mem_put(mctx, portlist, sizeof(*portlist));
return (result);
@@ -111,7 +111,7 @@ find_port(dns_element_t *list, unsigned int len, in_port_t port) {
for (;;) {
if (list[xtry].port == port)
return (&list[xtry]);
- if (port > list[xtry].port) {
+ if (port > list[xtry].port) {
if (xtry == max)
break;
min = xtry;
@@ -164,8 +164,8 @@ dns_portlist_add(dns_portlist_t *portlist, int af, in_port_t port) {
goto unlock;
}
if (portlist->list != NULL) {
- memcpy(el, portlist->list,
- portlist->allocated * sizeof(*el));
+ memmove(el, portlist->list,
+ portlist->allocated * sizeof(*el));
isc_mem_put(portlist->mctx, portlist->list,
portlist->allocated * sizeof(*el));
}
@@ -215,7 +215,7 @@ isc_boolean_t
dns_portlist_match(dns_portlist_t *portlist, int af, in_port_t port) {
dns_element_t *el;
isc_boolean_t result = ISC_FALSE;
-
+
REQUIRE(DNS_VALID_PORTLIST(portlist));
REQUIRE(af == AF_INET || af == AF_INET6);
LOCK(&portlist->lock);
@@ -227,7 +227,7 @@ dns_portlist_match(dns_portlist_t *portlist, int af, in_port_t port) {
if (af == AF_INET6 && (el->flags & DNS_PL_INET6) != 0)
result = ISC_TRUE;
}
- }
+ }
UNLOCK(&portlist->lock);
return (result);
}
diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c
index 7381b4a325b3..d97fcce28eb9 100644
--- a/lib/dns/rbt.c
+++ b/lib/dns/rbt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1479,8 +1479,8 @@ create_node(isc_mem_t *mctx, dns_name_t *name, dns_rbtnode_t **nodep) {
OLDOFFSETLEN(node) = OFFSETLEN(node) = labels;
ATTRS(node) = name->attributes;
- memcpy(NAME(node), region.base, region.length);
- memcpy(OFFSETS(node), name->offsets, labels);
+ memmove(NAME(node), region.base, region.length);
+ memmove(OFFSETS(node), name->offsets, labels);
#if DNS_RBT_USEMAGIC
node->magic = DNS_RBTNODE_MAGIC;
@@ -1841,7 +1841,7 @@ dns_rbt_deletefromlevel(dns_rbtnode_t *delete, dns_rbtnode_t **rootp) {
* information, which will be needed when linking up
* delete to the successor's old location.
*/
- memcpy(tmp, successor, sizeof(dns_rbtnode_t));
+ memmove(tmp, successor, sizeof(dns_rbtnode_t));
if (IS_ROOT(delete)) {
*rootp = successor;
diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
index bff52b87ef9d..013bf34a0a09 100644
--- a/lib/dns/rbtdb.c
+++ b/lib/dns/rbtdb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1121,8 +1121,8 @@ newversion(dns_db_t *db, dns_dbversion_t **versionp) {
version->hash = rbtdb->current_version->hash;
version->salt_length =
rbtdb->current_version->salt_length;
- memcpy(version->salt, rbtdb->current_version->salt,
- version->salt_length);
+ memmove(version->salt, rbtdb->current_version->salt,
+ version->salt_length);
} else {
version->flags = 0;
version->iterations = 0;
@@ -1706,8 +1706,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
nodelock = &rbtdb->node_locks[bucket];
+#define KEEP_NODE(n, r) \
+ ((n)->data != NULL || (n)->down != NULL || (n) == (r)->origin_node)
+
/* Handle easy and typical case first. */
- if (!node->dirty && (node->data != NULL || node->down != NULL)) {
+ if (!node->dirty && KEEP_NODE(node, rbtdb)) {
dns_rbtnode_refdecrement(node, &nrefs);
INSIST((int)nrefs >= 0);
if (nrefs == 0) {
@@ -1776,12 +1779,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
isc_refcount_decrement(&nodelock->references, &refs);
INSIST((int)refs >= 0);
- /*
- * XXXDCL should this only be done for cache zones?
- */
- if (node->data != NULL || node->down != NULL)
+ if (KEEP_NODE(node, rbtdb))
goto restore_locks;
+#undef KEEP_NODE
+
if (write_locked) {
/*
* We can now delete the node.
@@ -2127,8 +2129,8 @@ setnsec3parameters(dns_db_t *db, rbtdb_version_t *version) {
if (nsec3param.flags != 0)
continue;
- memcpy(version->salt, nsec3param.salt,
- nsec3param.salt_length);
+ memmove(version->salt, nsec3param.salt,
+ nsec3param.salt_length);
version->hash = nsec3param.hash;
version->salt_length = nsec3param.salt_length;
version->iterations = nsec3param.iterations;
@@ -4168,7 +4170,7 @@ cache_zonecut_callback(dns_rbtnode_t *node, dns_name_t *name, void *arg) {
header_prev = NULL;
for (header = node->data; header != NULL; header = header_next) {
header_next = header->next;
- if (header->rdh_ttl <= search->now) {
+ if (header->rdh_ttl < search->now) {
/*
* This rdataset is stale. If no one else is
* using the node, we can clean it up right
@@ -4176,7 +4178,7 @@ cache_zonecut_callback(dns_rbtnode_t *node, dns_name_t *name, void *arg) {
* the node as dirty, so it will get cleaned
* up later.
*/
- if ((header->rdh_ttl <= search->now - RBTDB_VIRTUAL) &&
+ if ((header->rdh_ttl < search->now - RBTDB_VIRTUAL) &&
(locktype == isc_rwlocktype_write ||
NODE_TRYUPGRADE(lock) == ISC_R_SUCCESS)) {
/*
@@ -4292,7 +4294,7 @@ find_deepest_zonecut(rbtdb_search_t *search, dns_rbtnode_t *node,
header != NULL;
header = header_next) {
header_next = header->next;
- if (header->rdh_ttl <= search->now) {
+ if (header->rdh_ttl < search->now) {
/*
* This rdataset is stale. If no one else is
* using the node, we can clean it up right
@@ -4300,7 +4302,7 @@ find_deepest_zonecut(rbtdb_search_t *search, dns_rbtnode_t *node,
* the node as dirty, so it will get cleaned
* up later.
*/
- if ((header->rdh_ttl <= search->now -
+ if ((header->rdh_ttl < search->now -
RBTDB_VIRTUAL) &&
(locktype == isc_rwlocktype_write ||
NODE_TRYUPGRADE(lock) == ISC_R_SUCCESS)) {
@@ -4469,7 +4471,7 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep,
header != NULL;
header = header_next) {
header_next = header->next;
- if (header->rdh_ttl <= now) {
+ if (header->rdh_ttl < now) {
/*
* This rdataset is stale. If no one else is
* using the node, we can clean it up right
@@ -4477,7 +4479,7 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep,
* node as dirty, so it will get cleaned up
* later.
*/
- if ((header->rdh_ttl <= now - RBTDB_VIRTUAL) &&
+ if ((header->rdh_ttl < now - RBTDB_VIRTUAL) &&
(locktype == isc_rwlocktype_write ||
NODE_TRYUPGRADE(lock) == ISC_R_SUCCESS)) {
/*
@@ -4626,12 +4628,12 @@ rpz_findips(dns_rpz_zone_t *rpz, dns_rpz_type_t rpz_type,
switch (rdata.type) {
case dns_rdatatype_a:
INSIST(rdata.length == 4);
- memcpy(&ina.s_addr, rdata.data, 4);
+ memmove(&ina.s_addr, rdata.data, 4);
isc_netaddr_fromin(&netaddr, &ina);
break;
case dns_rdatatype_aaaa:
INSIST(rdata.length == 16);
- memcpy(in6a.s6_addr, rdata.data, 16);
+ memmove(in6a.s6_addr, rdata.data, 16);
isc_netaddr_fromin6(&netaddr, &in6a);
break;
default:
@@ -4876,14 +4878,14 @@ cache_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
header_prev = NULL;
for (header = node->data; header != NULL; header = header_next) {
header_next = header->next;
- if (header->rdh_ttl <= now) {
+ if (header->rdh_ttl < now) {
/*
* 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 later.
*/
- if ((header->rdh_ttl <= now - RBTDB_VIRTUAL) &&
+ if ((header->rdh_ttl < now - RBTDB_VIRTUAL) &&
(locktype == isc_rwlocktype_write ||
NODE_TRYUPGRADE(lock) == ISC_R_SUCCESS)) {
/*
@@ -5183,14 +5185,14 @@ cache_findzonecut(dns_db_t *db, dns_name_t *name, unsigned int options,
header_prev = NULL;
for (header = node->data; header != NULL; header = header_next) {
header_next = header->next;
- if (header->rdh_ttl <= now) {
+ if (header->rdh_ttl < now) {
/*
* 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 later.
*/
- if ((header->rdh_ttl <= now - RBTDB_VIRTUAL) &&
+ if ((header->rdh_ttl < now - RBTDB_VIRTUAL) &&
(locktype == isc_rwlocktype_write ||
NODE_TRYUPGRADE(lock) == ISC_R_SUCCESS)) {
/*
@@ -5672,8 +5674,8 @@ cache_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
for (header = rbtnode->data; header != NULL; header = header_next) {
header_next = header->next;
- if (header->rdh_ttl <= now) {
- if ((header->rdh_ttl <= now - RBTDB_VIRTUAL) &&
+ if (header->rdh_ttl < now) {
+ if ((header->rdh_ttl < now - RBTDB_VIRTUAL) &&
(locktype == isc_rwlocktype_write ||
NODE_TRYUPGRADE(lock) == ISC_R_SUCCESS)) {
/*
@@ -5981,7 +5983,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
}
}
if (topheader != NULL && EXISTS(topheader) &&
- topheader->rdh_ttl > now) {
+ topheader->rdh_ttl >= now) {
/*
* Found one.
*/
@@ -6047,7 +6049,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
* has no effect, provided that the cache data isn't stale.
*/
if (rbtversion == NULL && trust < header->trust &&
- (header->rdh_ttl > now || header_nx)) {
+ (header->rdh_ttl >= now || header_nx)) {
free_rdataset(rbtdb, rbtdb->common.mctx, newheader);
if (addedrdataset != NULL)
bind_rdataset(rbtdb, rbtnode, header, now,
@@ -6117,7 +6119,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
* Don't lower trust of existing record if the
* update is forced.
*/
- if (IS_CACHE(rbtdb) && header->rdh_ttl > now &&
+ if (IS_CACHE(rbtdb) && header->rdh_ttl >= now &&
header->type == dns_rdatatype_ns &&
!header_nx && !newheader_nx &&
header->trust >= newheader->trust &&
@@ -6153,7 +6155,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
* to be no more than the current NS RRset's TTL. This
* ensures the delegations that are withdrawn are honoured.
*/
- if (IS_CACHE(rbtdb) && header->rdh_ttl > now &&
+ if (IS_CACHE(rbtdb) && header->rdh_ttl >= now &&
header->type == dns_rdatatype_ns &&
!header_nx && !newheader_nx &&
header->trust <= newheader->trust) {
@@ -6161,7 +6163,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
newheader->rdh_ttl = header->rdh_ttl;
}
}
- if (IS_CACHE(rbtdb) && header->rdh_ttl > now &&
+ if (IS_CACHE(rbtdb) && header->rdh_ttl >= now &&
(header->type == dns_rdatatype_a ||
header->type == dns_rdatatype_aaaa ||
header->type == dns_rdatatype_ds ||
@@ -6564,7 +6566,7 @@ addrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
cleanup_dead_nodes(rbtdb, rbtnode->locknum);
header = isc_heap_element(rbtdb->heaps[rbtnode->locknum], 1);
- if (header && header->rdh_ttl <= now - RBTDB_VIRTUAL)
+ if (header && header->rdh_ttl < now - RBTDB_VIRTUAL)
expire_header(rbtdb, header, tree_locked);
/*
@@ -6868,28 +6870,21 @@ static isc_result_t
loadnode(dns_rbtdb_t *rbtdb, dns_name_t *name, dns_rbtnode_t **nodep,
isc_boolean_t hasnsec)
{
- isc_result_t noderesult, nsecresult;
- dns_rbtnode_t *nsecnode;
-
- noderesult = dns_rbt_addnode(rbtdb->tree, name, nodep);
-
-#ifdef BIND9
- if (noderesult == ISC_R_SUCCESS && rbtdb->rpz_cidr != NULL)
- dns_rpz_cidr_addip(rbtdb->rpz_cidr, name);
-#endif
+ isc_result_t noderesult, nsecresult, tmpresult;
+ dns_rbtnode_t *nsecnode = NULL, *node = NULL;
+ noderesult = dns_rbt_addnode(rbtdb->tree, name, &node);
if (!hasnsec)
- return (noderesult);
+ goto done;
if (noderesult == ISC_R_EXISTS) {
/*
* Add a node to the auxiliary NSEC tree for an old node
* just now getting an NSEC record.
*/
- if ((*nodep)->nsec == DNS_RBT_NSEC_HAS_NSEC)
- return (noderesult);
- } else if (noderesult != ISC_R_SUCCESS) {
- return (noderesult);
- }
+ if (node->nsec == DNS_RBT_NSEC_HAS_NSEC)
+ goto done;
+ } else if (noderesult != ISC_R_SUCCESS)
+ goto done;
/*
* Build the auxiliary tree for NSECs as we go.
@@ -6899,12 +6894,11 @@ loadnode(dns_rbtdb_t *rbtdb, dns_name_t *name, dns_rbtnode_t **nodep,
* Add nodes to the auxiliary tree after corresponding nodes have
* been added to the main tree.
*/
- nsecnode = NULL;
nsecresult = dns_rbt_addnode(rbtdb->nsec, name, &nsecnode);
if (nsecresult == ISC_R_SUCCESS) {
nsecnode->nsec = DNS_RBT_NSEC_NSEC;
- (*nodep)->nsec = DNS_RBT_NSEC_HAS_NSEC;
- return (noderesult);
+ node->nsec = DNS_RBT_NSEC_HAS_NSEC;
+ goto done;
}
if (nsecresult == ISC_R_EXISTS) {
@@ -6915,21 +6909,41 @@ loadnode(dns_rbtdb_t *rbtdb, dns_name_t *name, dns_rbtnode_t **nodep,
ISC_LOG_WARNING,
"addnode: NSEC node already exists");
#endif
- (*nodep)->nsec = DNS_RBT_NSEC_HAS_NSEC;
- return (noderesult);
+ node->nsec = DNS_RBT_NSEC_HAS_NSEC;
+ goto done;
}
- nsecresult = dns_rbt_deletenode(rbtdb->tree, *nodep, ISC_FALSE);
- if (nsecresult != ISC_R_SUCCESS)
- isc_log_write(dns_lctx,
- DNS_LOGCATEGORY_DATABASE,
- DNS_LOGMODULE_CACHE,
- ISC_LOG_WARNING,
- "loading_addrdataset: "
- "dns_rbt_deletenode: %s after "
- "dns_rbt_addnode(NSEC): %s",
- isc_result_totext(nsecresult),
- isc_result_totext(noderesult));
+ if (noderesult == ISC_R_SUCCESS) {
+ /*
+ * Remove the node we just added above.
+ */
+ tmpresult = dns_rbt_deletenode(rbtdb->tree, node, ISC_FALSE);
+ if (tmpresult != ISC_R_SUCCESS)
+ isc_log_write(dns_lctx,
+ DNS_LOGCATEGORY_DATABASE,
+ DNS_LOGMODULE_CACHE,
+ ISC_LOG_WARNING,
+ "loading_addrdataset: "
+ "dns_rbt_deletenode: %s after "
+ "dns_rbt_addnode(NSEC): %s",
+ isc_result_totext(tmpresult),
+ isc_result_totext(noderesult));
+
+ }
+
+ /*
+ * Set the error condition to be returned.
+ */
+ noderesult = nsecresult;
+
+ done:
+#ifdef BIND9
+ if (noderesult == ISC_R_SUCCESS && rbtdb->rpz_cidr != NULL)
+ dns_rpz_cidr_addip(rbtdb->rpz_cidr, name);
+#endif
+ if (noderesult == ISC_R_SUCCESS || noderesult == ISC_R_EXISTS)
+ *nodep = node;
+
return (noderesult);
}
@@ -7266,7 +7280,8 @@ getnsec3parameters(dns_db_t *db, dns_dbversion_t *version, dns_hash_t *hash,
*hash = rbtversion->hash;
if (salt != NULL && salt_length != NULL) {
REQUIRE(*salt_length >= rbtversion->salt_length);
- memcpy(salt, rbtversion->salt, rbtversion->salt_length);
+ memmove(salt, rbtversion->salt,
+ rbtversion->salt_length);
}
if (salt_length != NULL)
*salt_length = rbtversion->salt_length;
@@ -9289,7 +9304,7 @@ overmem_purge(dns_rbtdb_t *rbtdb, unsigned int locknum_start,
isc_rwlocktype_write);
header = isc_heap_element(rbtdb->heaps[locknum], 1);
- if (header && header->rdh_ttl <= now - RBTDB_VIRTUAL) {
+ if (header && header->rdh_ttl < now - RBTDB_VIRTUAL) {
expire_header(rbtdb, header, tree_locked);
purgecount--;
}
diff --git a/lib/dns/rcode.c b/lib/dns/rcode.c
index 0b7fe8c28051..69007f881efd 100644
--- a/lib/dns/rcode.c
+++ b/lib/dns/rcode.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -194,7 +194,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -381,9 +381,9 @@ dns_keyflags_fromtext(dns_keyflags_t *flagsp, isc_textregion_t *source)
unsigned int len;
char *delim = memchr(text, '|', end - text);
if (delim != NULL)
- len = delim - text;
+ len = (unsigned int)(delim - text);
else
- len = end - text;
+ len = (unsigned int)(end - text);
for (p = keyflags; p->name != NULL; p++) {
if (strncasecmp(p->name, text, len) == 0)
break;
diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c
index a83dab462ce5..5bdd1255b5f7 100644
--- a/lib/dns/rdata.c
+++ b/lib/dns/rdata.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -281,7 +281,7 @@ locator_pton(const char *src, unsigned char *dst) {
}
if (tp != endp)
return (0);
- memcpy(dst, tmp, NS_LOCATORSZ);
+ memmove(dst, tmp, NS_LOCATORSZ);
return (1);
}
@@ -322,7 +322,7 @@ mem_maybedup(isc_mem_t *mctx, void *source, size_t length) {
return (source);
new = isc_mem_allocate(mctx, length);
if (new != NULL)
- memcpy(new, source, length);
+ memmove(new, source, length);
return (new);
}
@@ -502,7 +502,7 @@ dns_rdata_fromwire(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
isc_buffer_t st;
isc_boolean_t use_default = ISC_FALSE;
isc_uint32_t activelength;
- size_t length;
+ unsigned int length;
REQUIRE(dctx != NULL);
if (rdata != NULL) {
@@ -589,7 +589,7 @@ dns_rdata_towire(dns_rdata_t *rdata, dns_compress_t *cctx,
isc_buffer_availableregion(target, &tr);
if (tr.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, rdata->data, rdata->length);
+ memmove(tr.base, rdata->data, rdata->length);
isc_buffer_add(target, rdata->length);
return (ISC_R_SUCCESS);
}
@@ -683,7 +683,7 @@ dns_rdata_fromtext(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
unsigned long line;
void (*callback)(dns_rdatacallbacks_t *, const char *, ...);
isc_result_t tresult;
- size_t length;
+ unsigned int length;
isc_boolean_t unknown;
REQUIRE(origin == NULL || dns_name_isabsolute(origin) == ISC_TRUE);
@@ -916,7 +916,7 @@ dns_rdata_fromstruct(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
isc_buffer_t st;
isc_region_t region;
isc_boolean_t use_default = ISC_FALSE;
- size_t length;
+ unsigned int length;
REQUIRE(source != NULL);
if (rdata != NULL) {
@@ -1179,7 +1179,7 @@ txt_totext(isc_region_t *source, isc_buffer_t *target) {
return (ISC_R_NOSPACE);
*tp++ = '"';
tl--;
- isc_buffer_add(target, tp - (char *)region.base);
+ isc_buffer_add(target, (unsigned int)(tp - (char *)region.base));
isc_region_consume(source, *source->base + 1);
return (ISC_R_SUCCESS);
}
@@ -1245,7 +1245,7 @@ txt_fromtext(isc_textregion_t *source, isc_buffer_t *target) {
}
if (escape)
return (DNS_R_SYNTAX);
- *tregion.base = t - tregion.base - 1;
+ *tregion.base = (unsigned char)(t - tregion.base - 1);
isc_buffer_add(target, *tregion.base + 1);
return (ISC_R_SUCCESS);
}
@@ -1268,7 +1268,7 @@ txt_fromwire(isc_buffer_t *source, isc_buffer_t *target) {
return (ISC_R_NOSPACE);
if (tregion.base != sregion.base)
- memcpy(tregion.base, sregion.base, n);
+ memmove(tregion.base, sregion.base, n);
isc_buffer_forward(source, n);
isc_buffer_add(target, n);
return (ISC_R_SUCCESS);
@@ -1326,7 +1326,7 @@ multitxt_totext(isc_region_t *source, isc_buffer_t *target) {
return (ISC_R_NOSPACE);
*tp++ = '"';
tl--;
- isc_buffer_add(target, tp - (char *)region.base);
+ isc_buffer_add(target, (unsigned int)(tp - (char *)region.base));
return (ISC_R_SUCCESS);
}
@@ -1390,7 +1390,7 @@ multitxt_fromtext(isc_textregion_t *source, isc_buffer_t *target) {
}
if (escape)
return (DNS_R_SYNTAX);
- *t0 = t - t0 - 1;
+ *t0 = (unsigned char)(t - t0 - 1);
isc_buffer_add(target, *t0 + 1);
} while (n != 0);
return (ISC_R_SUCCESS);
@@ -1418,7 +1418,7 @@ multitxt_fromwire(isc_buffer_t *source, isc_buffer_t *target) {
return (ISC_R_NOSPACE);
if (tregion.base != sregion.base)
- memcpy(tregion.base, sregion.base, n);
+ memmove(tregion.base, sregion.base, n);
isc_buffer_forward(source, n);
isc_buffer_add(target, n);
isc_buffer_activeregion(source, &sregion);
@@ -1469,7 +1469,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -1595,7 +1595,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
if (length > tr.length)
return (ISC_R_NOSPACE);
if (tr.base != base)
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
@@ -1613,7 +1613,7 @@ hexvalue(char value) {
c = tolower(c);
if ((s = strchr(hexdigits, c)) == NULL)
return (-1);
- return (s - hexdigits);
+ return (int)(s - hexdigits);
}
static int
@@ -1628,7 +1628,7 @@ decvalue(char value) {
return (-1);
if ((s = strchr(decdigits, value)) == NULL)
return (-1);
- return (s - decdigits);
+ return (int)(s - decdigits);
}
static const char atob_digits[86] =
@@ -1688,15 +1688,15 @@ byte_atob(int c, isc_buffer_t *target, struct state *state) {
}
} else if ((s = strchr(atob_digits, c)) != NULL) {
if (bcount == 0) {
- word = s - atob_digits;
+ word = (isc_int32_t)(s - atob_digits);
++bcount;
} else if (bcount < 4) {
word = times85(word);
- word += s - atob_digits;
+ word += (isc_int32_t)(s - atob_digits);
++bcount;
} else {
word = times85(word);
- word += s - atob_digits;
+ word += (isc_int32_t)(s - atob_digits);
RETERR(putbyte((word >> 24) & 0xff, target, state));
RETERR(putbyte((word >> 16) & 0xff, target, state));
RETERR(putbyte((word >> 8) & 0xff, target, state));
diff --git a/lib/dns/rdata/ch_3/a_1.c b/lib/dns/rdata/ch_3/a_1.c
index e3f98106514d..d25fcb50ac40 100644
--- a/lib/dns/rdata/ch_3/a_1.c
+++ b/lib/dns/rdata/ch_3/a_1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005, 2007, 2009, 2014 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
@@ -117,7 +117,7 @@ fromwire_ch_a(ARGS_FROMWIRE) {
if (tregion.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 2);
+ memmove(tregion.base, sregion.base, 2);
isc_buffer_forward(source, 2);
isc_buffer_add(target, 2);
@@ -149,7 +149,7 @@ towire_ch_a(ARGS_TOWIRE) {
if (tregion.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 2);
+ memmove(tregion.base, sregion.base, 2);
isc_buffer_add(target, 2);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/afsdb_18.c b/lib/dns/rdata/generic/afsdb_18.c
index 279f86c677d7..af95fa12e91b 100644
--- a/lib/dns/rdata/generic/afsdb_18.c
+++ b/lib/dns/rdata/generic/afsdb_18.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -113,7 +113,7 @@ fromwire_afsdb(ARGS_FROMWIRE) {
return (ISC_R_NOSPACE);
if (sr.length < 2)
return (ISC_R_UNEXPECTEDEND);
- memcpy(tr.base, sr.base, 2);
+ memmove(tr.base, sr.base, 2);
isc_buffer_forward(source, 2);
isc_buffer_add(target, 2);
return (dns_name_fromwire(&name, source, dctx, options, target));
@@ -134,7 +134,7 @@ towire_afsdb(ARGS_TOWIRE) {
dns_rdata_toregion(rdata, &sr);
if (tr.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tr.base, sr.base, 2);
+ memmove(tr.base, sr.base, 2);
isc_region_consume(&sr, 2);
isc_buffer_add(target, 2);
diff --git a/lib/dns/rdata/generic/dnskey_48.c b/lib/dns/rdata/generic/dnskey_48.c
index 688e7ac5e18f..aa705cab3684 100644
--- a/lib/dns/rdata/generic/dnskey_48.c
+++ b/lib/dns/rdata/generic/dnskey_48.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -32,6 +32,7 @@
static inline isc_result_t
fromtext_dnskey(ARGS_FROMTEXT) {
+ isc_result_t result;
isc_token_t token;
dns_secalg_t alg;
dns_secproto_t proto;
@@ -67,7 +68,15 @@ fromtext_dnskey(ARGS_FROMTEXT) {
if ((flags & 0xc000) == 0xc000)
return (ISC_R_SUCCESS);
- return (isc_base64_tobuffer(lexer, target, -1));
+ result = isc_base64_tobuffer(lexer, target, -1);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ /* Ensure there's at least enough data to compute a key ID for MD5 */
+ if (alg == DST_ALG_RSAMD5 && isc_buffer_usedlength(target) < 7)
+ return (ISC_R_UNEXPECTEDEND);
+
+ return (ISC_R_SUCCESS);
}
static inline isc_result_t
@@ -185,6 +194,15 @@ fromwire_dnskey(ARGS_FROMWIRE) {
dns_name_init(&name, NULL);
RETERR(dns_name_fromwire(&name, source, dctx, options, target));
}
+
+ /*
+ * RSAMD5 computes key ID differently from other
+ * algorithms: we need to ensure there's enough data
+ * present for the computation
+ */
+ if (algorithm == DST_ALG_RSAMD5 && sr.length < 3)
+ return (ISC_R_UNEXPECTEDEND);
+
isc_buffer_activeregion(source, &sr);
isc_buffer_forward(source, sr.length);
return (mem_tobuffer(target, sr.base, sr.length));
diff --git a/lib/dns/rdata/generic/eui48_108.c b/lib/dns/rdata/generic/eui48_108.c
index 3e52fec0ed4a..b25a7b7e03e4 100644
--- a/lib/dns/rdata/generic/eui48_108.c
+++ b/lib/dns/rdata/generic/eui48_108.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 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
@@ -142,7 +142,7 @@ tostruct_eui48(ARGS_TOSTRUCT) {
eui48->common.rdtype = rdata->type;
ISC_LINK_INIT(&eui48->common, link);
- memcpy(eui48->eui48, rdata->data, rdata->length);
+ memmove(eui48->eui48, rdata->data, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/eui64_109.c b/lib/dns/rdata/generic/eui64_109.c
index 245994fdf5c0..33d2f637c825 100644
--- a/lib/dns/rdata/generic/eui64_109.c
+++ b/lib/dns/rdata/generic/eui64_109.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 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
@@ -147,7 +147,7 @@ tostruct_eui64(ARGS_TOSTRUCT) {
eui64->common.rdtype = rdata->type;
ISC_LINK_INIT(&eui64->common, link);
- memcpy(eui64->eui64, rdata->data, rdata->length);
+ memmove(eui64->eui64, rdata->data, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/hip_55.c b/lib/dns/rdata/generic/hip_55.c
index 5a5140f8ddd6..5198497dcb07 100644
--- a/lib/dns/rdata/generic/hip_55.c
+++ b/lib/dns/rdata/generic/hip_55.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011, 2013 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
@@ -76,7 +76,7 @@ fromtext_hip(ARGS_FROMTEXT) {
len = (unsigned char *)isc_buffer_used(target) - start;
if (len > 0xffU)
RETTOK(ISC_R_RANGE);
- RETERR(uint8_tobuffer(len, &hit_len));
+ RETERR(uint8_tobuffer((isc_uint32_t)len, &hit_len));
/*
* Public key (base64).
@@ -92,7 +92,7 @@ fromtext_hip(ARGS_FROMTEXT) {
len = (unsigned char *)isc_buffer_used(target) - start;
if (len > 0xffffU)
RETTOK(ISC_R_RANGE);
- RETERR(uint16_tobuffer(len, &key_len));
+ RETERR(uint16_tobuffer((isc_uint32_t)len, &key_len));
/*
* Rendezvous Servers.
@@ -122,7 +122,7 @@ static inline isc_result_t
totext_hip(ARGS_TOTEXT) {
isc_region_t region;
dns_name_t name;
- size_t length, key_len, hit_len;
+ unsigned int length, key_len, hit_len;
unsigned char algorithm;
char buf[sizeof("225 ")];
diff --git a/lib/dns/rdata/generic/ipseckey_45.c b/lib/dns/rdata/generic/ipseckey_45.c
index 1d2508c42e25..230d0d1e1e82 100644
--- a/lib/dns/rdata/generic/ipseckey_45.c
+++ b/lib/dns/rdata/generic/ipseckey_45.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005, 2007, 2009, 2011, 2012, 2014 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
@@ -87,7 +87,7 @@ fromtext_ipseckey(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
break;
@@ -97,7 +97,7 @@ fromtext_ipseckey(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 16)
return (ISC_R_NOSPACE);
- memcpy(region.base, addr6, 16);
+ memmove(region.base, addr6, 16);
isc_buffer_add(target, 16);
break;
@@ -364,7 +364,7 @@ tostruct_ipseckey(ARGS_TOSTRUCT) {
break;
case 2:
- memcpy(ipseckey->in6_addr.s6_addr, region.base, 16);
+ memmove(ipseckey->in6_addr.s6_addr, region.base, 16);
isc_region_consume(&region, 16);
break;
diff --git a/lib/dns/rdata/generic/isdn_20.c b/lib/dns/rdata/generic/isdn_20.c
index 5aac73f3713f..0bf2146013e8 100644
--- a/lib/dns/rdata/generic/isdn_20.c
+++ b/lib/dns/rdata/generic/isdn_20.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -127,6 +127,8 @@ fromstruct_isdn(ARGS_FROMSTRUCT) {
RETERR(uint8_tobuffer(isdn->isdn_len, target));
RETERR(mem_tobuffer(target, isdn->isdn, isdn->isdn_len));
+ if (isdn->subaddress == NULL)
+ return (ISC_R_SUCCESS);
RETERR(uint8_tobuffer(isdn->subaddress_len, target));
return (mem_tobuffer(target, isdn->subaddress, isdn->subaddress_len));
}
@@ -153,11 +155,17 @@ tostruct_isdn(ARGS_TOSTRUCT) {
return (ISC_R_NOMEMORY);
isc_region_consume(&r, isdn->isdn_len);
- isdn->subaddress_len = uint8_fromregion(&r);
- isc_region_consume(&r, 1);
- isdn->subaddress = mem_maybedup(mctx, r.base, isdn->subaddress_len);
- if (isdn->subaddress == NULL)
- goto cleanup;
+ if (r.length == 0) {
+ isdn->subaddress_len = 0;
+ isdn->subaddress = NULL;
+ } else {
+ isdn->subaddress_len = uint8_fromregion(&r);
+ isc_region_consume(&r, 1);
+ isdn->subaddress = mem_maybedup(mctx, r.base,
+ isdn->subaddress_len);
+ if (isdn->subaddress == NULL)
+ goto cleanup;
+ }
isdn->mctx = mctx;
return (ISC_R_SUCCESS);
diff --git a/lib/dns/rdata/generic/key_25.c b/lib/dns/rdata/generic/key_25.c
index 1d0ba83a9b31..f55401e1b8ac 100644
--- a/lib/dns/rdata/generic/key_25.c
+++ b/lib/dns/rdata/generic/key_25.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -32,6 +32,7 @@
static inline isc_result_t
fromtext_key(ARGS_FROMTEXT) {
+ isc_result_t result;
isc_token_t token;
dns_secalg_t alg;
dns_secproto_t proto;
@@ -67,7 +68,15 @@ fromtext_key(ARGS_FROMTEXT) {
if ((flags & 0xc000) == 0xc000)
return (ISC_R_SUCCESS);
- return (isc_base64_tobuffer(lexer, target, -1));
+ result = isc_base64_tobuffer(lexer, target, -1);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ /* Ensure there's at least enough data to compute a key ID for MD5 */
+ if (alg == DST_ALG_RSAMD5 && isc_buffer_usedlength(target) < 7)
+ return (ISC_R_UNEXPECTEDEND);
+
+ return (ISC_R_SUCCESS);
}
static inline isc_result_t
@@ -176,6 +185,15 @@ fromwire_key(ARGS_FROMWIRE) {
dns_name_init(&name, NULL);
RETERR(dns_name_fromwire(&name, source, dctx, options, target));
}
+
+ /*
+ * RSAMD5 computes key ID differently from other
+ * algorithms: we need to ensure there's enough data
+ * present for the computation
+ */
+ if (algorithm == DST_ALG_RSAMD5 && sr.length < 3)
+ return (ISC_R_UNEXPECTEDEND);
+
isc_buffer_activeregion(source, &sr);
isc_buffer_forward(source, sr.length);
return (mem_tobuffer(target, sr.base, sr.length));
diff --git a/lib/dns/rdata/generic/keydata_65533.c b/lib/dns/rdata/generic/keydata_65533.c
index a2d83f456e49..fae2bce8dbeb 100644
--- a/lib/dns/rdata/generic/keydata_65533.c
+++ b/lib/dns/rdata/generic/keydata_65533.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011-2013 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
@@ -21,10 +21,11 @@
#include <dst/dst.h>
-#define RRTYPE_KEYDATA_ATTRIBUTES (DNS_RDATATYPEATTR_DNSSEC)
+#define RRTYPE_KEYDATA_ATTRIBUTES (0)
static inline isc_result_t
fromtext_keydata(ARGS_FROMTEXT) {
+ isc_result_t result;
isc_token_t token;
dns_secalg_t alg;
dns_secproto_t proto;
@@ -79,7 +80,15 @@ fromtext_keydata(ARGS_FROMTEXT) {
if ((flags & 0xc000) == 0xc000)
return (ISC_R_SUCCESS);
- return (isc_base64_tobuffer(lexer, target, -1));
+ result = isc_base64_tobuffer(lexer, target, -1);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ /* Ensure there's at least enough data to compute a key ID for MD5 */
+ if (alg == DST_ALG_RSAMD5 && isc_buffer_usedlength(target) < 19)
+ return (ISC_R_UNEXPECTEDEND);
+
+ return (ISC_R_SUCCESS);
}
static inline isc_result_t
@@ -93,7 +102,9 @@ totext_keydata(ARGS_TOTEXT) {
const char *keyinfo;
REQUIRE(rdata->type == 65533);
- REQUIRE(rdata->length != 0);
+
+ if ((tctx->flags & DNS_STYLEFLAG_KEYDATA) == 0 || rdata->length < 16)
+ return (unknown_totext(rdata, tctx, target));
dns_rdata_toregion(rdata, &sr);
@@ -194,9 +205,6 @@ fromwire_keydata(ARGS_FROMWIRE) {
UNUSED(options);
isc_buffer_activeregion(source, &sr);
- if (sr.length < 16)
- return (ISC_R_UNEXPECTEDEND);
-
isc_buffer_forward(source, sr.length);
return (mem_tobuffer(target, sr.base, sr.length));
}
@@ -206,7 +214,6 @@ towire_keydata(ARGS_TOWIRE) {
isc_region_t sr;
REQUIRE(rdata->type == 65533);
- REQUIRE(rdata->length != 0);
UNUSED(cctx);
@@ -222,8 +229,6 @@ compare_keydata(ARGS_COMPARE) {
REQUIRE(rdata1->type == rdata2->type);
REQUIRE(rdata1->rdclass == rdata2->rdclass);
REQUIRE(rdata1->type == 65533);
- REQUIRE(rdata1->length != 0);
- REQUIRE(rdata2->length != 0);
dns_rdata_toregion(rdata1, &r1);
dns_rdata_toregion(rdata2, &r2);
@@ -271,7 +276,6 @@ tostruct_keydata(ARGS_TOSTRUCT) {
REQUIRE(rdata->type == 65533);
REQUIRE(target != NULL);
- REQUIRE(rdata->length != 0);
keydata->common.rdclass = rdata->rdclass;
keydata->common.rdtype = rdata->type;
diff --git a/lib/dns/rdata/generic/l32_105.c b/lib/dns/rdata/generic/l32_105.c
index 763ddb953fed..d191624ebc25 100644
--- a/lib/dns/rdata/generic/l32_105.c
+++ b/lib/dns/rdata/generic/l32_105.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 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
@@ -51,7 +51,7 @@ fromtext_l32(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/l64_106.c b/lib/dns/rdata/generic/l64_106.c
index ff20663355ca..d811d29ae515 100644
--- a/lib/dns/rdata/generic/l64_106.c
+++ b/lib/dns/rdata/generic/l64_106.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 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
@@ -155,7 +155,7 @@ tostruct_l64(ARGS_TOSTRUCT) {
dns_rdata_toregion(rdata, &region);
l64->pref = uint16_fromregion(&region);
- memcpy(l64->l64, region.base, region.length);
+ memmove(l64->l64, region.base, region.length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/nid_104.c b/lib/dns/rdata/generic/nid_104.c
index c96b0bf9c980..39f16ed6f02b 100644
--- a/lib/dns/rdata/generic/nid_104.c
+++ b/lib/dns/rdata/generic/nid_104.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 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
@@ -155,7 +155,7 @@ tostruct_nid(ARGS_TOSTRUCT) {
dns_rdata_toregion(rdata, &region);
nid->pref = uint16_fromregion(&region);
- memcpy(nid->nid, region.base, region.length);
+ memmove(nid->nid, region.base, region.length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c
index 4b51804317cc..bd2adb5fe971 100644
--- a/lib/dns/rdata/generic/opt_41.c
+++ b/lib/dns/rdata/generic/opt_41.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -97,6 +97,7 @@ static inline isc_result_t
fromwire_opt(ARGS_FROMWIRE) {
isc_region_t sregion;
isc_region_t tregion;
+ isc_uint16_t opt;
isc_uint16_t length;
unsigned int total;
@@ -112,17 +113,48 @@ fromwire_opt(ARGS_FROMWIRE) {
while (sregion.length != 0) {
if (sregion.length < 4)
return (ISC_R_UNEXPECTEDEND);
- /*
- * Eat the 16bit option code. There is nothing to
- * be done with it currently.
- */
+ opt = uint16_fromregion(&sregion);
isc_region_consume(&sregion, 2);
length = uint16_fromregion(&sregion);
isc_region_consume(&sregion, 2);
total += 4;
if (sregion.length < length)
return (ISC_R_UNEXPECTEDEND);
- isc_region_consume(&sregion, length);
+ switch (opt) {
+ case DNS_OPT_CLIENT_SUBNET: {
+ isc_uint16_t family;
+ isc_uint8_t addrlen;
+ isc_uint8_t scope;
+ isc_uint8_t addrbytes;
+
+ if (length < 4)
+ return (DNS_R_FORMERR);
+ family = uint16_fromregion(&sregion);
+ isc_region_consume(&sregion, 2);
+ addrlen = uint8_fromregion(&sregion);
+ isc_region_consume(&sregion, 1);
+ scope = uint8_fromregion(&sregion);
+ isc_region_consume(&sregion, 1);
+ switch (family) {
+ case 1:
+ if (addrlen > 32U || scope > 32U)
+ return (DNS_R_FORMERR);
+ break;
+ case 2:
+ if (addrlen > 128U || scope > 128U)
+ return (DNS_R_FORMERR);
+ break;
+ }
+ addrbytes = (addrlen + 7) / 8;
+ if (addrbytes + 4 != length)
+ return (DNS_R_FORMERR);
+ isc_region_consume(&sregion, addrbytes);
+ break;
+ }
+ default:
+ isc_region_consume(&sregion, length);
+ break;
+ }
total += length;
}
@@ -130,7 +162,7 @@ fromwire_opt(ARGS_FROMWIRE) {
isc_buffer_availableregion(target, &tregion);
if (tregion.length < total)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, total);
+ memmove(tregion.base, sregion.base, total);
isc_buffer_forward(source, total);
isc_buffer_add(target, total);
diff --git a/lib/dns/rdata/generic/rrsig_46.c b/lib/dns/rdata/generic/rrsig_46.c
index 58a327c02ed7..5dd5a31a7ca8 100644
--- a/lib/dns/rdata/generic/rrsig_46.c
+++ b/lib/dns/rdata/generic/rrsig_46.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -90,7 +90,20 @@ fromtext_rrsig(ARGS_FROMTEXT) {
*/
RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
ISC_FALSE));
- RETTOK(dns_time32_fromtext(DNS_AS_STR(token), &time_expire));
+ if (strlen(DNS_AS_STR(token)) <= 10U &&
+ *DNS_AS_STR(token) != '-' && *DNS_AS_STR(token) != '+') {
+ char *end;
+ unsigned long u;
+ isc_uint64_t u64;
+
+ u64 = u = strtoul(DNS_AS_STR(token), &end, 10);
+ if (u == ULONG_MAX || *end != 0)
+ RETTOK(DNS_R_SYNTAX);
+ if (u64 > 0xffffffffUL)
+ RETTOK(ISC_R_RANGE);
+ time_expire = u;
+ } else
+ RETTOK(dns_time32_fromtext(DNS_AS_STR(token), &time_expire));
RETERR(uint32_tobuffer(time_expire, target));
/*
@@ -98,7 +111,20 @@ fromtext_rrsig(ARGS_FROMTEXT) {
*/
RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
ISC_FALSE));
- RETTOK(dns_time32_fromtext(DNS_AS_STR(token), &time_signed));
+ if (strlen(DNS_AS_STR(token)) <= 10U &&
+ *DNS_AS_STR(token) != '-' && *DNS_AS_STR(token) != '+') {
+ char *end;
+ unsigned long u;
+ isc_uint64_t u64;
+
+ u64 = u = strtoul(DNS_AS_STR(token), &end, 10);
+ if (u == ULONG_MAX || *end != 0)
+ RETTOK(DNS_R_SYNTAX);
+ if (u64 > 0xffffffffUL)
+ RETTOK(ISC_R_RANGE);
+ time_signed = u;
+ } else
+ RETTOK(dns_time32_fromtext(DNS_AS_STR(token), &time_signed));
RETERR(uint32_tobuffer(time_signed, target));
/*
diff --git a/lib/dns/rdata/generic/rt_21.c b/lib/dns/rdata/generic/rt_21.c
index 8f71a2afc850..86fe2480b799 100644
--- a/lib/dns/rdata/generic/rt_21.c
+++ b/lib/dns/rdata/generic/rt_21.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -109,7 +109,7 @@ fromwire_rt(ARGS_FROMWIRE) {
return (ISC_R_NOSPACE);
if (sregion.length < 2)
return (ISC_R_UNEXPECTEDEND);
- memcpy(tregion.base, sregion.base, 2);
+ memmove(tregion.base, sregion.base, 2);
isc_buffer_forward(source, 2);
isc_buffer_add(target, 2);
return (dns_name_fromwire(&name, source, dctx, options, target));
@@ -130,7 +130,7 @@ towire_rt(ARGS_TOWIRE) {
dns_rdata_toregion(rdata, &region);
if (tr.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tr.base, region.base, 2);
+ memmove(tr.base, region.base, 2);
isc_region_consume(&region, 2);
isc_buffer_add(target, 2);
diff --git a/lib/dns/rdata/generic/soa_6.c b/lib/dns/rdata/generic/soa_6.c
index ac0a38f7c19e..fe67d76f1ee3 100644
--- a/lib/dns/rdata/generic/soa_6.c
+++ b/lib/dns/rdata/generic/soa_6.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -186,7 +186,7 @@ fromwire_soa(ARGS_FROMWIRE) {
if (tregion.length < 20)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 20);
+ memmove(tregion.base, sregion.base, 20);
isc_buffer_forward(source, 20);
isc_buffer_add(target, 20);
@@ -224,7 +224,7 @@ towire_soa(ARGS_TOWIRE) {
if (tregion.length < 20)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 20);
+ memmove(tregion.base, sregion.base, 20);
isc_buffer_add(target, 20);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/spf_99.c b/lib/dns/rdata/generic/spf_99.c
index 492e315d4542..c7cdfc9fbbad 100644
--- a/lib/dns/rdata/generic/spf_99.c
+++ b/lib/dns/rdata/generic/spf_99.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -103,7 +103,7 @@ towire_spf(ARGS_TOWIRE) {
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/txt_16.c b/lib/dns/rdata/generic/txt_16.c
index e1bce6a0deb9..76109251a766 100644
--- a/lib/dns/rdata/generic/txt_16.c
+++ b/lib/dns/rdata/generic/txt_16.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -110,7 +110,7 @@ towire_txt(ARGS_TOWIRE) {
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/hs_4/a_1.c b/lib/dns/rdata/hs_4/a_1.c
index 50ae25d52b83..5f8a87504c0e 100644
--- a/lib/dns/rdata/hs_4/a_1.c
+++ b/lib/dns/rdata/hs_4/a_1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -48,7 +48,7 @@ fromtext_hs_a(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
@@ -87,7 +87,7 @@ fromwire_hs_a(ARGS_FROMWIRE) {
if (tregion.length < 4)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 4);
+ memmove(tregion.base, sregion.base, 4);
isc_buffer_forward(source, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
@@ -106,7 +106,7 @@ towire_hs_a(ARGS_TOWIRE) {
isc_buffer_availableregion(target, &region);
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/in_1/a6_38.c b/lib/dns/rdata/in_1/a6_38.c
index 8619f8a21363..b6ef68878e2f 100644
--- a/lib/dns/rdata/in_1/a6_38.c
+++ b/lib/dns/rdata/in_1/a6_38.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -122,7 +122,7 @@ totext_in_a6(ARGS_TOTEXT) {
if (prefixlen != 128) {
octets = prefixlen/8;
memset(addr, 0, sizeof(addr));
- memcpy(&addr[octets], sr.base, 16 - octets);
+ memmove(&addr[octets], sr.base, 16 - octets);
mask = 0xff >> (prefixlen % 8);
addr[octets] &= mask;
ar.base = addr;
@@ -347,7 +347,7 @@ tostruct_in_a6(ARGS_TOSTRUCT) {
if (a6->prefixlen != 128) {
octets = 16 - a6->prefixlen / 8;
INSIST(r.length >= octets);
- memcpy(a6->in6_addr.s6_addr + 16 - octets, r.base, octets);
+ memmove(a6->in6_addr.s6_addr + 16 - octets, r.base, octets);
isc_region_consume(&r, octets);
}
diff --git a/lib/dns/rdata/in_1/a_1.c b/lib/dns/rdata/in_1/a_1.c
index 902932e02548..fcdcaae0545b 100644
--- a/lib/dns/rdata/in_1/a_1.c
+++ b/lib/dns/rdata/in_1/a_1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -50,7 +50,7 @@ fromtext_in_a(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
@@ -89,7 +89,7 @@ fromwire_in_a(ARGS_FROMWIRE) {
if (tregion.length < 4)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 4);
+ memmove(tregion.base, sregion.base, 4);
isc_buffer_forward(source, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
@@ -108,7 +108,7 @@ towire_in_a(ARGS_TOWIRE) {
isc_buffer_availableregion(target, &region);
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/in_1/aaaa_28.c b/lib/dns/rdata/in_1/aaaa_28.c
index 5aa59b2ccc2c..3f88c4db0f2f 100644
--- a/lib/dns/rdata/in_1/aaaa_28.c
+++ b/lib/dns/rdata/in_1/aaaa_28.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -51,7 +51,7 @@ fromtext_in_aaaa(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 16)
return (ISC_R_NOSPACE);
- memcpy(region.base, addr, 16);
+ memmove(region.base, addr, 16);
isc_buffer_add(target, 16);
return (ISC_R_SUCCESS);
}
@@ -90,7 +90,7 @@ fromwire_in_aaaa(ARGS_FROMWIRE) {
if (tregion.length < 16)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 16);
+ memmove(tregion.base, sregion.base, 16);
isc_buffer_forward(source, 16);
isc_buffer_add(target, 16);
return (ISC_R_SUCCESS);
@@ -109,7 +109,7 @@ towire_in_aaaa(ARGS_TOWIRE) {
isc_buffer_availableregion(target, &region);
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, 16);
return (ISC_R_SUCCESS);
}
@@ -165,7 +165,7 @@ tostruct_in_aaaa(ARGS_TOSTRUCT) {
dns_rdata_toregion(rdata, &r);
INSIST(r.length == 16);
- memcpy(aaaa->in6_addr.s6_addr, r.base, 16);
+ memmove(aaaa->in6_addr.s6_addr, r.base, 16);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/in_1/apl_42.c b/lib/dns/rdata/in_1/apl_42.c
index eb927b9219e3..94133bae6296 100644
--- a/lib/dns/rdata/in_1/apl_42.c
+++ b/lib/dns/rdata/in_1/apl_42.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -148,7 +148,7 @@ totext_in_apl(ARGS_TOTEXT) {
INSIST(len <= 4);
INSIST(prefix <= 32);
memset(buf, 0, sizeof(buf));
- memcpy(buf, sr.base, len);
+ memmove(buf, sr.base, len);
RETERR(inet_totext(AF_INET, &ir, target));
break;
@@ -156,7 +156,7 @@ totext_in_apl(ARGS_TOTEXT) {
INSIST(len <= 16);
INSIST(prefix <= 128);
memset(buf, 0, sizeof(buf));
- memcpy(buf, sr.base, len);
+ memmove(buf, sr.base, len);
RETERR(inet_totext(AF_INET6, &ir, target));
break;
diff --git a/lib/dns/rdata/in_1/wks_11.c b/lib/dns/rdata/in_1/wks_11.c
index 1da2611da9b5..4587c813afab 100644
--- a/lib/dns/rdata/in_1/wks_11.c
+++ b/lib/dns/rdata/in_1/wks_11.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -98,7 +98,7 @@ fromtext_in_wks(ARGS_FROMTEXT) {
RETTOK(DNS_R_BADDOTTEDQUAD);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
/*
@@ -222,7 +222,7 @@ fromwire_in_wks(ARGS_FROMWIRE) {
if (tr.length < sr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, sr.base, sr.length);
+ memmove(tr.base, sr.base, sr.length);
isc_buffer_add(target, sr.length);
isc_buffer_forward(source, sr.length);
@@ -278,7 +278,7 @@ fromstruct_in_wks(ARGS_FROMSTRUCT) {
a = ntohl(wks->in_addr.s_addr);
RETERR(uint32_tobuffer(a, target));
- RETERR(uint16_tobuffer(wks->protocol, target));
+ RETERR(uint8_tobuffer(wks->protocol, target));
return (mem_tobuffer(target, wks->map, wks->map_len));
}
@@ -300,8 +300,8 @@ tostruct_in_wks(ARGS_TOSTRUCT) {
n = uint32_fromregion(&region);
wks->in_addr.s_addr = htonl(n);
isc_region_consume(&region, 4);
- wks->protocol = uint16_fromregion(&region);
- isc_region_consume(&region, 2);
+ wks->protocol = uint8_fromregion(&region);
+ isc_region_consume(&region, 1);
wks->map_len = region.length;
wks->map = mem_maybedup(mctx, region.base, region.length);
if (wks->map == NULL)
diff --git a/lib/dns/rdataslab.c b/lib/dns/rdataslab.c
index cb9ae5425ef9..1c02b60201b2 100644
--- a/lib/dns/rdataslab.c
+++ b/lib/dns/rdataslab.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -318,7 +318,7 @@ dns_rdataslab_fromrdataset(dns_rdataset_t *rdataset, isc_mem_t *mctx,
*rawbuf++ |= (x[i].rdata.flags & DNS_RDATA_OFFLINE) ?
DNS_RDATASLAB_OFFLINE : 0;
}
- memcpy(rawbuf, x[i].rdata.data, x[i].rdata.length);
+ memmove(rawbuf, x[i].rdata.data, x[i].rdata.length);
rawbuf += x[i].rdata.length;
}
@@ -711,7 +711,7 @@ dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab,
tstart = isc_mem_get(mctx, tlength);
if (tstart == NULL)
return (ISC_R_NOMEMORY);
- memcpy(tstart, nslab, reservelen);
+ memmove(tstart, nslab, reservelen);
tcurrent = tstart + reservelen;
#if DNS_RDATASET_FIXED
offsetbase = tcurrent;
@@ -790,7 +790,7 @@ dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab,
#if DNS_RDATASET_FIXED
tcurrent += 2; /* fill in later */
#endif
- memcpy(tcurrent, data, length);
+ memmove(tcurrent, data, length);
tcurrent += length;
oadded++;
if (oadded < ocount) {
@@ -817,7 +817,7 @@ dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab,
#if DNS_RDATASET_FIXED
tcurrent += 2; /* fill in later */
#endif
- memcpy(tcurrent, data, length);
+ memmove(tcurrent, data, length);
tcurrent += length;
nadded++;
if (nadded < ncount) {
@@ -913,7 +913,7 @@ dns_rdataslab_subtract(unsigned char *mslab, unsigned char *sslab,
* This rdata isn't in the sslab, and thus isn't
* being subtracted.
*/
- tlength += mcurrent - mrdatabegin;
+ tlength += (unsigned int)(mcurrent - mrdatabegin);
tcount++;
} else
rcount++;
@@ -949,7 +949,7 @@ dns_rdataslab_subtract(unsigned char *mslab, unsigned char *sslab,
tstart = isc_mem_get(mctx, tlength);
if (tstart == NULL)
return (ISC_R_NOMEMORY);
- memcpy(tstart, mslab, reservelen);
+ memmove(tstart, mslab, reservelen);
tcurrent = tstart + reservelen;
#if DNS_RDATASET_FIXED
offsetbase = tcurrent;
@@ -1000,11 +1000,12 @@ dns_rdataslab_subtract(unsigned char *mslab, unsigned char *sslab,
* This rdata isn't in the sslab, and thus should be
* copied to the tslab.
*/
- unsigned int length = mcurrent - mrdatabegin;
+ unsigned int length;
+ length = (unsigned int)(mcurrent - mrdatabegin);
#if DNS_RDATASET_FIXED
offsettable[order] = tcurrent - offsetbase;
#endif
- memcpy(tcurrent, mrdatabegin, length);
+ memmove(tcurrent, mrdatabegin, length);
tcurrent += length;
}
dns_rdata_reset(&mrdata);
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 27d15b9329cd..2e60cd84cca2 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -105,6 +105,7 @@
#define RTRACE(m)
#define RRTRACE(r, m)
#define FCTXTRACE(m)
+#define FCTXTRACE2(m1, m2)
#define FTRACE(m)
#define QTRACE(m)
#endif
@@ -1132,6 +1133,10 @@ log_edns(fetchctx_t *fctx) {
if (fctx->reason == NULL)
return;
+ /*
+ * We do not know if fctx->domain is the actual domain the record
+ * lives in or a parent domain so we have a '?' after it.
+ */
dns_name_format(&fctx->domain, domainbuf, sizeof(domainbuf));
isc_log_write(dns_lctx, DNS_LOGCATEGORY_EDNS_DISABLED,
DNS_LOGMODULE_RESOLVER, ISC_LOG_INFO,
@@ -3610,12 +3615,14 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type,
*/
if (dns_rdatatype_atparent(fctx->type))
findoptions |= DNS_DBFIND_NOEXACT;
- result = dns_view_findzonecut(res->view, name, domain,
- 0, findoptions, ISC_TRUE,
+ result = dns_view_findzonecut(res->view, fwdname,
+ domain, 0, findoptions,
+ ISC_TRUE,
&fctx->nameservers,
NULL);
if (result != ISC_R_SUCCESS)
goto cleanup_name;
+
result = dns_name_dup(domain, mctx, &fctx->domain);
if (result != ISC_R_SUCCESS) {
dns_rdataset_disassociate(&fctx->nameservers);
@@ -5439,11 +5446,11 @@ is_answeraddress_allowed(dns_view_t *view, dns_name_t *name,
dns_rdataset_current(rdataset, &rdata);
if (rdataset->type == dns_rdatatype_a) {
INSIST(rdata.length == sizeof(ina.s_addr));
- memcpy(&ina.s_addr, rdata.data, sizeof(ina.s_addr));
+ memmove(&ina.s_addr, rdata.data, sizeof(ina.s_addr));
isc_netaddr_fromin(&netaddr, &ina);
} else {
INSIST(rdata.length == sizeof(in6a.s6_addr));
- memcpy(in6a.s6_addr, rdata.data, sizeof(in6a.s6_addr));
+ memmove(in6a.s6_addr, rdata.data, sizeof(in6a.s6_addr));
isc_netaddr_fromin6(&netaddr, &in6a);
}
@@ -6655,7 +6662,7 @@ log_nsid(isc_buffer_t *opt, size_t nsid_len, resquery_t *query,
unsigned char *p, *buf, *nsid;
/* Allocate buffer for storing hex version of the NSID */
- buflen = nsid_len * 2 + 1;
+ buflen = (isc_uint16_t)nsid_len * 2 + 1;
buf = isc_mem_get(mctx, buflen);
if (buf == NULL)
return;
@@ -7307,9 +7314,12 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
* NXDOMAIN, NXRDATASET, or referral.
*/
result = noanswer_response(fctx, NULL, 0);
- if (result == DNS_R_CHASEDSSERVERS) {
- } else if (result == DNS_R_DELEGATION) {
- force_referral:
+ switch (result) {
+ case ISC_R_SUCCESS:
+ case DNS_R_CHASEDSSERVERS:
+ break;
+ case DNS_R_DELEGATION:
+ force_referral:
/*
* We don't have the answer, but we know a better
* place to look.
@@ -7334,7 +7344,8 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
fctx->adberr = 0;
result = ISC_R_SUCCESS;
- } else if (result != ISC_R_SUCCESS) {
+ break;
+ default:
/*
* Something has gone wrong.
*/
@@ -8844,7 +8855,7 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name,
}
memset(new, 0, len);
if (algorithms != NULL)
- memcpy(new, algorithms, *algorithms);
+ memmove(new, algorithms, *algorithms);
new[len-1] |= mask;
*new = len;
node->data = new;
diff --git a/lib/dns/rootns.c b/lib/dns/rootns.c
index 3502022c2ae1..34971788dd89 100644
--- a/lib/dns/rootns.c
+++ b/lib/dns/rootns.c
@@ -201,7 +201,7 @@ dns_rootns_create(isc_mem_t *mctx, dns_rdataclass_t rdclass,
{
isc_result_t result, eresult;
isc_buffer_t source;
- size_t len;
+ unsigned int len;
dns_rdatacallbacks_t callbacks;
dns_db_t *db = NULL;
diff --git a/lib/dns/rpz.c b/lib/dns/rpz.c
index 2d689e7ba128..f617fe7b7c6a 100644
--- a/lib/dns/rpz.c
+++ b/lib/dns/rpz.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011-2014 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
@@ -1115,7 +1115,7 @@ dns_rpz_cidr_find(dns_rpz_cidr_t *cidr, const isc_netaddr_t *netaddr,
* one could cast netaddr->type.in6 to dns_rpz_cidr_key_t *,
* but there are objections.
*/
- memcpy(src_ip6.w, &netaddr->type.in6, sizeof(src_ip6.w));
+ memmove(src_ip6.w, &netaddr->type.in6, sizeof(src_ip6.w));
for (i = 0; i < 4; i++) {
tgt_ip.w[i] = ntohl(src_ip6.w[i]);
}
diff --git a/lib/dns/rrl.c b/lib/dns/rrl.c
new file mode 100644
index 000000000000..02554e9a9dfb
--- /dev/null
+++ b/lib/dns/rrl.c
@@ -0,0 +1,1324 @@
+/*
+ * Copyright (C) 2013, 2014 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.
+ */
+
+/*! \file */
+
+/*
+ * Rate limit DNS responses.
+ */
+
+/* #define ISC_LIST_CHECKINIT */
+
+#include <config.h>
+#include <isc/mem.h>
+#include <isc/net.h>
+#include <isc/netaddr.h>
+#include <isc/print.h>
+
+#include <dns/result.h>
+#include <dns/rcode.h>
+#include <dns/rdatatype.h>
+#include <dns/rdataclass.h>
+#include <dns/log.h>
+#include <dns/rrl.h>
+#include <dns/view.h>
+
+static void
+log_end(dns_rrl_t *rrl, dns_rrl_entry_t *e, isc_boolean_t early,
+ char *log_buf, unsigned int log_buf_len);
+
+/*
+ * Get a modulus for a hash function that is tolerably likely to be
+ * relatively prime to most inputs. Of course, we get a prime for for initial
+ * values not larger than the square of the last prime. We often get a prime
+ * after that.
+ * This works well in practice for hash tables up to at least 100
+ * times the square of the last prime and better than a multiplicative hash.
+ */
+static int
+hash_divisor(unsigned int initial) {
+ static isc_uint16_t primes[] = {
+ 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41,
+ 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,
+#if 0
+ 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157,
+ 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227,
+ 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283,
+ 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367,
+ 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439,
+ 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509,
+ 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599,
+ 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661,
+ 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751,
+ 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829,
+ 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919,
+ 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997,1009,
+#endif
+ };
+ int divisions, tries;
+ unsigned int result;
+ isc_uint16_t *pp, p;
+
+ result = initial;
+
+ if (primes[sizeof(primes)/sizeof(primes[0])-1] >= result) {
+ pp = primes;
+ while (*pp < result)
+ ++pp;
+ return (*pp);
+ }
+
+ if ((result & 1) == 0)
+ ++result;
+
+ divisions = 0;
+ tries = 1;
+ pp = primes;
+ do {
+ p = *pp++;
+ ++divisions;
+ if ((result % p) == 0) {
+ ++tries;
+ result += 2;
+ pp = primes;
+ }
+ } while (pp < &primes[sizeof(primes) / sizeof(primes[0])]);
+
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG3))
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DEBUG3,
+ "%d hash_divisor() divisions in %d tries"
+ " to get %d from %d",
+ divisions, tries, result, initial);
+
+ return (result);
+}
+
+/*
+ * Convert a timestamp to a number of seconds in the past.
+ */
+static inline int
+delta_rrl_time(isc_stdtime_t ts, isc_stdtime_t now) {
+ int delta;
+
+ delta = now - ts;
+ if (delta >= 0)
+ return (delta);
+
+ /*
+ * The timestamp is in the future. That future might result from
+ * re-ordered requests, because we use timestamps on requests
+ * instead of consulting a clock. Timestamps in the distant future are
+ * assumed to result from clock changes. When the clock changes to
+ * the past, make existing timestamps appear to be in the past.
+ */
+ if (delta < -DNS_RRL_MAX_TIME_TRAVEL)
+ return (DNS_RRL_FOREVER);
+ return (0);
+}
+
+static inline int
+get_age(const dns_rrl_t *rrl, const dns_rrl_entry_t *e, isc_stdtime_t now) {
+ if (!e->ts_valid)
+ return (DNS_RRL_FOREVER);
+ return (delta_rrl_time(e->ts + rrl->ts_bases[e->ts_gen], now));
+}
+
+static inline void
+set_age(dns_rrl_t *rrl, dns_rrl_entry_t *e, isc_stdtime_t now) {
+ dns_rrl_entry_t *e_old;
+ unsigned int ts_gen;
+ int i, ts;
+
+ ts_gen = rrl->ts_gen;
+ ts = now - rrl->ts_bases[ts_gen];
+ if (ts < 0) {
+ if (ts < -DNS_RRL_MAX_TIME_TRAVEL)
+ ts = DNS_RRL_FOREVER;
+ else
+ ts = 0;
+ }
+
+ /*
+ * Make a new timestamp base if the current base is too old.
+ * All entries older than DNS_RRL_MAX_WINDOW seconds are ancient,
+ * useless history. Their timestamps can be treated as if they are
+ * all the same.
+ * We only do arithmetic on more recent timestamps, so bases for
+ * older timestamps can be recycled provided the old timestamps are
+ * marked as ancient history.
+ * This loop is almost always very short because most entries are
+ * recycled after one second and any entries that need to be marked
+ * are older than (DNS_RRL_TS_BASES)*DNS_RRL_MAX_TS seconds.
+ */
+ if (ts >= DNS_RRL_MAX_TS) {
+ ts_gen = (ts_gen + 1) % DNS_RRL_TS_BASES;
+ for (e_old = ISC_LIST_TAIL(rrl->lru), i = 0;
+ e_old != NULL && (e_old->ts_gen == ts_gen ||
+ !ISC_LINK_LINKED(e_old, hlink));
+ e_old = ISC_LIST_PREV(e_old, lru), ++i)
+ {
+ e_old->ts_valid = ISC_FALSE;
+ }
+ if (i != 0)
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DEBUG1,
+ "rrl new time base scanned %d entries"
+ " at %d for %d %d %d %d",
+ i, now, rrl->ts_bases[ts_gen],
+ rrl->ts_bases[(ts_gen + 1) %
+ DNS_RRL_TS_BASES],
+ rrl->ts_bases[(ts_gen + 2) %
+ DNS_RRL_TS_BASES],
+ rrl->ts_bases[(ts_gen + 3) %
+ DNS_RRL_TS_BASES]);
+ rrl->ts_gen = ts_gen;
+ rrl->ts_bases[ts_gen] = now;
+ ts = 0;
+ }
+
+ e->ts_gen = ts_gen;
+ e->ts = ts;
+ e->ts_valid = ISC_TRUE;
+}
+
+static isc_result_t
+expand_entries(dns_rrl_t *rrl, int new) {
+ unsigned int bsize;
+ dns_rrl_block_t *b;
+ dns_rrl_entry_t *e;
+ double rate;
+ int i;
+
+ if (rrl->num_entries + new >= rrl->max_entries &&
+ rrl->max_entries != 0)
+ {
+ new = rrl->max_entries - rrl->num_entries;
+ if (new <= 0)
+ return (ISC_R_SUCCESS);
+ }
+
+ /*
+ * Log expansions so that the user can tune max-table-size
+ * and min-table-size.
+ */
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DROP) &&
+ rrl->hash != NULL) {
+ rate = rrl->probes;
+ if (rrl->searches != 0)
+ rate /= rrl->searches;
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DROP,
+ "increase from %d to %d RRL entries with"
+ " %d bins; average search length %.1f",
+ rrl->num_entries, rrl->num_entries+new,
+ rrl->hash->length, rate);
+ }
+
+ bsize = sizeof(dns_rrl_block_t) + (new-1)*sizeof(dns_rrl_entry_t);
+ b = isc_mem_get(rrl->mctx, bsize);
+ if (b == NULL) {
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_FAIL,
+ "isc_mem_get(%d) failed for RRL entries",
+ bsize);
+ return (ISC_R_NOMEMORY);
+ }
+ memset(b, 0, bsize);
+ b->size = bsize;
+
+ e = b->entries;
+ for (i = 0; i < new; ++i, ++e) {
+ ISC_LINK_INIT(e, hlink);
+ ISC_LIST_INITANDAPPEND(rrl->lru, e, lru);
+ }
+ rrl->num_entries += new;
+ ISC_LIST_INITANDAPPEND(rrl->blocks, b, link);
+
+ return (ISC_R_SUCCESS);
+}
+
+static inline dns_rrl_bin_t *
+get_bin(dns_rrl_hash_t *hash, unsigned int hval) {
+ return (&hash->bins[hval % hash->length]);
+}
+
+static void
+free_old_hash(dns_rrl_t *rrl) {
+ dns_rrl_hash_t *old_hash;
+ dns_rrl_bin_t *old_bin;
+ dns_rrl_entry_t *e, *e_next;
+
+ old_hash = rrl->old_hash;
+ for (old_bin = &old_hash->bins[0];
+ old_bin < &old_hash->bins[old_hash->length];
+ ++old_bin)
+ {
+ for (e = ISC_LIST_HEAD(*old_bin); e != NULL; e = e_next) {
+ e_next = ISC_LIST_NEXT(e, hlink);
+ ISC_LINK_INIT(e, hlink);
+ }
+ }
+
+ isc_mem_put(rrl->mctx, old_hash,
+ sizeof(*old_hash)
+ + (old_hash->length - 1) * sizeof(old_hash->bins[0]));
+ rrl->old_hash = NULL;
+}
+
+static isc_result_t
+expand_rrl_hash(dns_rrl_t *rrl, isc_stdtime_t now) {
+ dns_rrl_hash_t *hash;
+ int old_bins, new_bins, hsize;
+ double rate;
+
+ if (rrl->old_hash != NULL)
+ free_old_hash(rrl);
+
+ /*
+ * Most searches fail and so go to the end of the chain.
+ * Use a small hash table load factor.
+ */
+ old_bins = (rrl->hash == NULL) ? 0 : rrl->hash->length;
+ new_bins = old_bins/8 + old_bins;
+ if (new_bins < rrl->num_entries)
+ new_bins = rrl->num_entries;
+ new_bins = hash_divisor(new_bins);
+
+ hsize = sizeof(dns_rrl_hash_t) + (new_bins-1)*sizeof(hash->bins[0]);
+ hash = isc_mem_get(rrl->mctx, hsize);
+ if (hash == NULL) {
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_FAIL,
+ "isc_mem_get(%d) failed for"
+ " RRL hash table",
+ hsize);
+ return (ISC_R_NOMEMORY);
+ }
+ memset(hash, 0, hsize);
+ hash->length = new_bins;
+ rrl->hash_gen ^= 1;
+ hash->gen = rrl->hash_gen;
+
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DROP) && old_bins != 0) {
+ rate = rrl->probes;
+ if (rrl->searches != 0)
+ rate /= rrl->searches;
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DROP,
+ "increase from %d to %d RRL bins for"
+ " %d entries; average search length %.1f",
+ old_bins, new_bins, rrl->num_entries, rate);
+ }
+
+ rrl->old_hash = rrl->hash;
+ if (rrl->old_hash != NULL)
+ rrl->old_hash->check_time = now;
+ rrl->hash = hash;
+
+ return (ISC_R_SUCCESS);
+}
+
+static void
+ref_entry(dns_rrl_t *rrl, dns_rrl_entry_t *e, int probes, isc_stdtime_t now) {
+ /*
+ * Make the entry most recently used.
+ */
+ if (ISC_LIST_HEAD(rrl->lru) != e) {
+ if (e == rrl->last_logged)
+ rrl->last_logged = ISC_LIST_PREV(e, lru);
+ ISC_LIST_UNLINK(rrl->lru, e, lru);
+ ISC_LIST_PREPEND(rrl->lru, e, lru);
+ }
+
+ /*
+ * Expand the hash table if it is time and necessary.
+ * This will leave the newly referenced entry in a chain in the
+ * old hash table. It will migrate to the new hash table the next
+ * time it is used or be cut loose when the old hash table is destroyed.
+ */
+ rrl->probes += probes;
+ ++rrl->searches;
+ if (rrl->searches > 100 &&
+ delta_rrl_time(rrl->hash->check_time, now) > 1) {
+ if (rrl->probes/rrl->searches > 2)
+ expand_rrl_hash(rrl, now);
+ rrl->hash->check_time = now;
+ rrl->probes = 0;
+ rrl->searches = 0;
+ }
+}
+
+static inline isc_boolean_t
+key_cmp(const dns_rrl_key_t *a, const dns_rrl_key_t *b) {
+ if (memcmp(a, b, sizeof(dns_rrl_key_t)) == 0)
+ return (ISC_TRUE);
+ return (ISC_FALSE);
+}
+
+static inline isc_uint32_t
+hash_key(const dns_rrl_key_t *key) {
+ isc_uint32_t hval;
+ int i;
+
+ hval = key->w[0];
+ for (i = sizeof(*key) / sizeof(key->w[0]) - 1; i >= 0; --i) {
+ hval = key->w[i] + (hval<<1);
+ }
+ return (hval);
+}
+
+/*
+ * Construct the hash table key.
+ * Use a hash of the DNS query name to save space in the database.
+ * Collisions result in legitimate rate limiting responses for one
+ * query name also limiting responses for other names to the
+ * same client. This is rare and benign enough given the large
+ * space costs compared to keeping the entire name in the database
+ * entry or the time costs of dynamic allocation.
+ */
+static void
+make_key(const dns_rrl_t *rrl, dns_rrl_key_t *key,
+ const isc_sockaddr_t *client_addr,
+ dns_rdatatype_t qtype, dns_name_t *qname, dns_rdataclass_t qclass,
+ dns_rrl_rtype_t rtype)
+{
+ dns_name_t base;
+ dns_offsets_t base_offsets;
+ int labels, i;
+
+ memset(key, 0, sizeof(*key));
+
+ key->s.rtype = rtype;
+ if (rtype == DNS_RRL_RTYPE_QUERY) {
+ key->s.qtype = qtype;
+ key->s.qclass = qclass & 0xff;
+ } else if (rtype == DNS_RRL_RTYPE_REFERRAL ||
+ rtype == DNS_RRL_RTYPE_NODATA) {
+ /*
+ * Because there is no qtype in the empty answer sections of
+ * referral and NODATA responses, count them as the same.
+ */
+ key->s.qclass = qclass & 0xff;
+ }
+
+ if (qname != NULL && qname->labels != 0) {
+ /*
+ * Ignore the first label of wildcards.
+ */
+ if ((qname->attributes & DNS_NAMEATTR_WILDCARD) != 0 &&
+ (labels = dns_name_countlabels(qname)) > 1)
+ {
+ dns_name_init(&base, base_offsets);
+ dns_name_getlabelsequence(qname, 1, labels-1, &base);
+ key->s.qname_hash = dns_name_hashbylabel(&base,
+ ISC_FALSE);
+ } else {
+ key->s.qname_hash = dns_name_hashbylabel(qname,
+ ISC_FALSE);
+ }
+ }
+
+ switch (client_addr->type.sa.sa_family) {
+ case AF_INET:
+ key->s.ip[0] = (client_addr->type.sin.sin_addr.s_addr &
+ rrl->ipv4_mask);
+ break;
+ case AF_INET6:
+ key->s.ipv6 = ISC_TRUE;
+ memmove(key->s.ip, &client_addr->type.sin6.sin6_addr,
+ sizeof(key->s.ip));
+ for (i = 0; i < DNS_RRL_MAX_PREFIX/32; ++i)
+ key->s.ip[i] &= rrl->ipv6_mask[i];
+ break;
+ }
+}
+
+static inline dns_rrl_rate_t *
+get_rate(dns_rrl_t *rrl, dns_rrl_rtype_t rtype) {
+ switch (rtype) {
+ case DNS_RRL_RTYPE_QUERY:
+ return (&rrl->responses_per_second);
+ case DNS_RRL_RTYPE_REFERRAL:
+ return (&rrl->referrals_per_second);
+ case DNS_RRL_RTYPE_NODATA:
+ return (&rrl->nodata_per_second);
+ case DNS_RRL_RTYPE_NXDOMAIN:
+ return (&rrl->nxdomains_per_second);
+ case DNS_RRL_RTYPE_ERROR:
+ return (&rrl->errors_per_second);
+ case DNS_RRL_RTYPE_ALL:
+ return (&rrl->all_per_second);
+ default:
+ INSIST(0);
+ }
+ return (NULL);
+}
+
+static int
+response_balance(dns_rrl_t *rrl, const dns_rrl_entry_t *e, int age) {
+ dns_rrl_rate_t *ratep;
+ int balance, rate;
+
+ if (e->key.s.rtype == DNS_RRL_RTYPE_TCP) {
+ rate = 1;
+ } else {
+ ratep = get_rate(rrl, e->key.s.rtype);
+ rate = ratep->scaled;
+ }
+
+ balance = e->responses + age * rate;
+ if (balance > rate)
+ balance = rate;
+ return (balance);
+}
+
+/*
+ * Search for an entry for a response and optionally create it.
+ */
+static dns_rrl_entry_t *
+get_entry(dns_rrl_t *rrl, const isc_sockaddr_t *client_addr,
+ dns_rdataclass_t qclass, dns_rdatatype_t qtype, dns_name_t *qname,
+ dns_rrl_rtype_t rtype, isc_stdtime_t now, isc_boolean_t create,
+ char *log_buf, unsigned int log_buf_len)
+{
+ dns_rrl_key_t key;
+ isc_uint32_t hval;
+ dns_rrl_entry_t *e;
+ dns_rrl_hash_t *hash;
+ dns_rrl_bin_t *new_bin, *old_bin;
+ int probes, age;
+
+ make_key(rrl, &key, client_addr, qtype, qname, qclass, rtype);
+ hval = hash_key(&key);
+
+ /*
+ * Look for the entry in the current hash table.
+ */
+ new_bin = get_bin(rrl->hash, hval);
+ probes = 1;
+ e = ISC_LIST_HEAD(*new_bin);
+ while (e != NULL) {
+ if (key_cmp(&e->key, &key)) {
+ ref_entry(rrl, e, probes, now);
+ return (e);
+ }
+ ++probes;
+ e = ISC_LIST_NEXT(e, hlink);
+ }
+
+ /*
+ * Look in the old hash table.
+ */
+ if (rrl->old_hash != NULL) {
+ old_bin = get_bin(rrl->old_hash, hval);
+ e = ISC_LIST_HEAD(*old_bin);
+ while (e != NULL) {
+ if (key_cmp(&e->key, &key)) {
+ ISC_LIST_UNLINK(*old_bin, e, hlink);
+ ISC_LIST_PREPEND(*new_bin, e, hlink);
+ e->hash_gen = rrl->hash_gen;
+ ref_entry(rrl, e, probes, now);
+ return (e);
+ }
+ e = ISC_LIST_NEXT(e, hlink);
+ }
+
+ /*
+ * Discard prevous hash table when all of its entries are old.
+ */
+ age = delta_rrl_time(rrl->old_hash->check_time, now);
+ if (age > rrl->window)
+ free_old_hash(rrl);
+ }
+
+ if (!create)
+ return (NULL);
+
+ /*
+ * The entry does not exist, so create it by finding a free entry.
+ * Keep currently penalized and logged entries.
+ * Try to make more entries if none are idle.
+ * Steal the oldest entry if we cannot create more.
+ */
+ for (e = ISC_LIST_TAIL(rrl->lru);
+ e != NULL;
+ e = ISC_LIST_PREV(e, lru))
+ {
+ if (!ISC_LINK_LINKED(e, hlink))
+ break;
+ age = get_age(rrl, e, now);
+ if (age <= 1) {
+ e = NULL;
+ break;
+ }
+ if (!e->logged && response_balance(rrl, e, age) > 0)
+ break;
+ }
+ if (e == NULL) {
+ expand_entries(rrl, ISC_MIN((rrl->num_entries+1)/2, 1000));
+ e = ISC_LIST_TAIL(rrl->lru);
+ }
+ if (e->logged)
+ log_end(rrl, e, ISC_TRUE, log_buf, log_buf_len);
+ if (ISC_LINK_LINKED(e, hlink)) {
+ if (e->hash_gen == rrl->hash_gen)
+ hash = rrl->hash;
+ else
+ hash = rrl->old_hash;
+ old_bin = get_bin(hash, hash_key(&e->key));
+ ISC_LIST_UNLINK(*old_bin, e, hlink);
+ }
+ ISC_LIST_PREPEND(*new_bin, e, hlink);
+ e->hash_gen = rrl->hash_gen;
+ e->key = key;
+ e->ts_valid = ISC_FALSE;
+ ref_entry(rrl, e, probes, now);
+ return (e);
+}
+
+static void
+debit_log(const dns_rrl_entry_t *e, int age, const char *action) {
+ char buf[sizeof("age=12345678")];
+ const char *age_str;
+
+ if (age == DNS_RRL_FOREVER) {
+ age_str = "";
+ } else {
+ snprintf(buf, sizeof(buf), "age=%d", age);
+ age_str = buf;
+ }
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DEBUG3,
+ "rrl %08x %6s responses=%-3d %s",
+ hash_key(&e->key), age_str, e->responses, action);
+}
+
+static inline dns_rrl_result_t
+debit_rrl_entry(dns_rrl_t *rrl, dns_rrl_entry_t *e, double qps, double scale,
+ const isc_sockaddr_t *client_addr, isc_stdtime_t now,
+ char *log_buf, unsigned int log_buf_len)
+{
+ int rate, new_rate, slip, new_slip, age, log_secs, min;
+ dns_rrl_rate_t *ratep;
+ dns_rrl_entry_t const *credit_e;
+
+ /*
+ * Pick the rate counter.
+ * Optionally adjust the rate by the estimated query/second rate.
+ */
+ ratep = get_rate(rrl, e->key.s.rtype);
+ rate = ratep->r;
+ if (rate == 0)
+ return (DNS_RRL_RESULT_OK);
+
+ if (scale < 1.0) {
+ /*
+ * The limit for clients that have used TCP is not scaled.
+ */
+ credit_e = get_entry(rrl, client_addr,
+ 0, dns_rdatatype_none, NULL,
+ DNS_RRL_RTYPE_TCP, now, ISC_FALSE,
+ log_buf, log_buf_len);
+ if (credit_e != NULL) {
+ age = get_age(rrl, e, now);
+ if (age < rrl->window)
+ scale = 1.0;
+ }
+ }
+ if (scale < 1.0) {
+ new_rate = (int) (rate * scale);
+ if (new_rate < 1)
+ new_rate = 1;
+ if (ratep->scaled != new_rate) {
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST,
+ DNS_RRL_LOG_DEBUG1,
+ "%d qps scaled %s by %.2f"
+ " from %d to %d",
+ (int)qps, ratep->str, scale,
+ rate, new_rate);
+ rate = new_rate;
+ ratep->scaled = rate;
+ }
+ }
+
+ min = -rrl->window * rate;
+
+ /*
+ * Treat time jumps into the recent past as no time.
+ * Treat entries older than the window as if they were just created
+ * Credit other entries.
+ */
+ age = get_age(rrl, e, now);
+ if (age > 0) {
+ /*
+ * Credit tokens earned during elapsed time.
+ */
+ if (age > rrl->window) {
+ e->responses = rate;
+ e->slip_cnt = 0;
+ } else {
+ e->responses += rate*age;
+ if (e->responses > rate) {
+ e->responses = rate;
+ e->slip_cnt = 0;
+ }
+ }
+ /*
+ * Find the seconds since last log message without overflowing
+ * small counter. This counter is reset when an entry is
+ * created. It is not necessarily reset when some requests
+ * are answered provided other requests continue to be dropped
+ * or slipped. This can happen when the request rate is just
+ * at the limit.
+ */
+ if (e->logged) {
+ log_secs = e->log_secs;
+ log_secs += age;
+ if (log_secs > DNS_RRL_MAX_LOG_SECS || log_secs < 0)
+ log_secs = DNS_RRL_MAX_LOG_SECS;
+ e->log_secs = log_secs;
+ }
+ }
+ set_age(rrl, e, now);
+
+ /*
+ * Debit the entry for this response.
+ */
+ if (--e->responses >= 0) {
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG3))
+ debit_log(e, age, "");
+ return (DNS_RRL_RESULT_OK);
+ }
+
+ if (e->responses < min)
+ e->responses = min;
+
+ /*
+ * Drop this response unless it should slip or leak.
+ */
+ slip = rrl->slip.r;
+ if (slip > 2 && scale < 1.0) {
+ new_slip = (int) (slip * scale);
+ if (new_slip < 2)
+ new_slip = 2;
+ if (rrl->slip.scaled != new_slip) {
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST,
+ DNS_RRL_LOG_DEBUG1,
+ "%d qps scaled slip"
+ " by %.2f from %d to %d",
+ (int)qps, scale,
+ slip, new_slip);
+ slip = new_slip;
+ rrl->slip.scaled = slip;
+ }
+ }
+ if (slip != 0 && e->key.s.rtype != DNS_RRL_RTYPE_ALL) {
+ if (e->slip_cnt++ == 0) {
+ if ((int) e->slip_cnt >= slip)
+ e->slip_cnt = 0;
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG3))
+ debit_log(e, age, "slip");
+ return (DNS_RRL_RESULT_SLIP);
+ } else if ((int) e->slip_cnt >= slip) {
+ e->slip_cnt = 0;
+ }
+ }
+
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG3))
+ debit_log(e, age, "drop");
+ return (DNS_RRL_RESULT_DROP);
+}
+
+static inline dns_rrl_qname_buf_t *
+get_qname(dns_rrl_t *rrl, const dns_rrl_entry_t *e) {
+ dns_rrl_qname_buf_t *qbuf;
+
+ qbuf = rrl->qnames[e->log_qname];
+ if (qbuf == NULL || qbuf->e != e)
+ return (NULL);
+ return (qbuf);
+}
+
+static inline void
+free_qname(dns_rrl_t *rrl, dns_rrl_entry_t *e) {
+ dns_rrl_qname_buf_t *qbuf;
+
+ qbuf = get_qname(rrl, e);
+ if (qbuf != NULL) {
+ qbuf->e = NULL;
+ ISC_LIST_APPEND(rrl->qname_free, qbuf, link);
+ }
+}
+
+static void
+add_log_str(isc_buffer_t *lb, const char *str, unsigned int str_len) {
+ isc_region_t region;
+
+ isc_buffer_availableregion(lb, &region);
+ if (str_len >= region.length) {
+ if (region.length <= 0)
+ return;
+ str_len = region.length;
+ }
+ memmove(region.base, str, str_len);
+ isc_buffer_add(lb, str_len);
+}
+
+#define ADD_LOG_CSTR(eb, s) add_log_str(eb, s, sizeof(s)-1)
+
+/*
+ * Build strings for the logs
+ */
+static void
+make_log_buf(dns_rrl_t *rrl, dns_rrl_entry_t *e,
+ const char *str1, const char *str2, isc_boolean_t plural,
+ dns_name_t *qname, isc_boolean_t save_qname,
+ dns_rrl_result_t rrl_result, isc_result_t resp_result,
+ char *log_buf, unsigned int log_buf_len)
+{
+ isc_buffer_t lb;
+ dns_rrl_qname_buf_t *qbuf;
+ isc_netaddr_t cidr;
+ char strbuf[ISC_MAX(sizeof("/123"), sizeof(" (12345678)"))];
+ const char *rstr;
+ isc_result_t msg_result;
+
+ if (log_buf_len <= 1) {
+ if (log_buf_len == 1)
+ log_buf[0] = '\0';
+ return;
+ }
+ isc_buffer_init(&lb, log_buf, log_buf_len-1);
+
+ if (str1 != NULL)
+ add_log_str(&lb, str1, strlen(str1));
+ if (str2 != NULL)
+ add_log_str(&lb, str2, strlen(str2));
+
+ switch (rrl_result) {
+ case DNS_RRL_RESULT_OK:
+ break;
+ case DNS_RRL_RESULT_DROP:
+ ADD_LOG_CSTR(&lb, "drop ");
+ break;
+ case DNS_RRL_RESULT_SLIP:
+ ADD_LOG_CSTR(&lb, "slip ");
+ break;
+ default:
+ INSIST(0);
+ break;
+ }
+
+ switch (e->key.s.rtype) {
+ case DNS_RRL_RTYPE_QUERY:
+ break;
+ case DNS_RRL_RTYPE_REFERRAL:
+ ADD_LOG_CSTR(&lb, "referral ");
+ break;
+ case DNS_RRL_RTYPE_NODATA:
+ ADD_LOG_CSTR(&lb, "NODATA ");
+ break;
+ case DNS_RRL_RTYPE_NXDOMAIN:
+ ADD_LOG_CSTR(&lb, "NXDOMAIN ");
+ break;
+ case DNS_RRL_RTYPE_ERROR:
+ if (resp_result == ISC_R_SUCCESS) {
+ ADD_LOG_CSTR(&lb, "error ");
+ } else {
+ rstr = isc_result_totext(resp_result);
+ add_log_str(&lb, rstr, strlen(rstr));
+ ADD_LOG_CSTR(&lb, " error ");
+ }
+ break;
+ case DNS_RRL_RTYPE_ALL:
+ ADD_LOG_CSTR(&lb, "all ");
+ break;
+ default:
+ INSIST(0);
+ }
+
+ if (plural)
+ ADD_LOG_CSTR(&lb, "responses to ");
+ else
+ ADD_LOG_CSTR(&lb, "response to ");
+
+ memset(&cidr, 0, sizeof(cidr));
+ if (e->key.s.ipv6) {
+ snprintf(strbuf, sizeof(strbuf), "/%d", rrl->ipv6_prefixlen);
+ cidr.family = AF_INET6;
+ memset(&cidr.type.in6, 0, sizeof(cidr.type.in6));
+ memmove(&cidr.type.in6, e->key.s.ip, sizeof(e->key.s.ip));
+ } else {
+ snprintf(strbuf, sizeof(strbuf), "/%d", rrl->ipv4_prefixlen);
+ cidr.family = AF_INET;
+ cidr.type.in.s_addr = e->key.s.ip[0];
+ }
+ msg_result = isc_netaddr_totext(&cidr, &lb);
+ if (msg_result != ISC_R_SUCCESS)
+ ADD_LOG_CSTR(&lb, "?");
+ add_log_str(&lb, strbuf, strlen(strbuf));
+
+ if (e->key.s.rtype == DNS_RRL_RTYPE_QUERY ||
+ e->key.s.rtype == DNS_RRL_RTYPE_REFERRAL ||
+ e->key.s.rtype == DNS_RRL_RTYPE_NODATA ||
+ e->key.s.rtype == DNS_RRL_RTYPE_NXDOMAIN) {
+ qbuf = get_qname(rrl, e);
+ if (save_qname && qbuf == NULL &&
+ qname != NULL && dns_name_isabsolute(qname)) {
+ /*
+ * Capture the qname for the "stop limiting" message.
+ */
+ qbuf = ISC_LIST_TAIL(rrl->qname_free);
+ if (qbuf != NULL) {
+ ISC_LIST_UNLINK(rrl->qname_free, qbuf, link);
+ } else if (rrl->num_qnames < DNS_RRL_QNAMES) {
+ qbuf = isc_mem_get(rrl->mctx, sizeof(*qbuf));
+ if (qbuf != NULL) {
+ memset(qbuf, 0, sizeof(*qbuf));
+ ISC_LINK_INIT(qbuf, link);
+ qbuf->index = rrl->num_qnames;
+ rrl->qnames[rrl->num_qnames++] = qbuf;
+ } else {
+ isc_log_write(dns_lctx,
+ DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST,
+ DNS_RRL_LOG_FAIL,
+ "isc_mem_get(%d)"
+ " failed for RRL qname",
+ (int)sizeof(*qbuf));
+ }
+ }
+ if (qbuf != NULL) {
+ e->log_qname = qbuf->index;
+ qbuf->e = e;
+ dns_fixedname_init(&qbuf->qname);
+ dns_name_copy(qname,
+ dns_fixedname_name(&qbuf->qname),
+ NULL);
+ }
+ }
+ if (qbuf != NULL)
+ qname = dns_fixedname_name(&qbuf->qname);
+ if (qname != NULL) {
+ ADD_LOG_CSTR(&lb, " for ");
+ (void)dns_name_totext(qname, ISC_TRUE, &lb);
+ } else {
+ ADD_LOG_CSTR(&lb, " for (?)");
+ }
+ if (e->key.s.rtype != DNS_RRL_RTYPE_NXDOMAIN) {
+ ADD_LOG_CSTR(&lb, " ");
+ (void)dns_rdataclass_totext(e->key.s.qclass, &lb);
+ if (e->key.s.rtype == DNS_RRL_RTYPE_QUERY) {
+ ADD_LOG_CSTR(&lb, " ");
+ (void)dns_rdatatype_totext(e->key.s.qtype, &lb);
+ }
+ }
+ snprintf(strbuf, sizeof(strbuf), " (%08x)",
+ e->key.s.qname_hash);
+ add_log_str(&lb, strbuf, strlen(strbuf));
+ }
+
+ /*
+ * We saved room for '\0'.
+ */
+ log_buf[isc_buffer_usedlength(&lb)] = '\0';
+}
+
+static void
+log_end(dns_rrl_t *rrl, dns_rrl_entry_t *e, isc_boolean_t early,
+ char *log_buf, unsigned int log_buf_len)
+{
+ if (e->logged) {
+ make_log_buf(rrl, e,
+ early ? "*" : NULL,
+ rrl->log_only ? "would stop limiting "
+ : "stop limiting ",
+ ISC_TRUE, NULL, ISC_FALSE,
+ DNS_RRL_RESULT_OK, ISC_R_SUCCESS,
+ log_buf, log_buf_len);
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DROP,
+ "%s", log_buf);
+ free_qname(rrl, e);
+ e->logged = ISC_FALSE;
+ --rrl->num_logged;
+ }
+}
+
+/*
+ * Log messages for streams that have stopped being rate limited.
+ */
+static void
+log_stops(dns_rrl_t *rrl, isc_stdtime_t now, int limit,
+ char *log_buf, unsigned int log_buf_len)
+{
+ dns_rrl_entry_t *e;
+ int age;
+
+ for (e = rrl->last_logged; e != NULL; e = ISC_LIST_PREV(e, lru)) {
+ if (!e->logged)
+ continue;
+ if (now != 0) {
+ age = get_age(rrl, e, now);
+ if (age < DNS_RRL_STOP_LOG_SECS ||
+ response_balance(rrl, e, age) < 0)
+ break;
+ }
+
+ log_end(rrl, e, now == 0, log_buf, log_buf_len);
+ if (rrl->num_logged <= 0)
+ break;
+
+ /*
+ * Too many messages could stall real work.
+ */
+ if (--limit < 0) {
+ rrl->last_logged = ISC_LIST_PREV(e, lru);
+ return;
+ }
+ }
+ if (e == NULL) {
+ INSIST(rrl->num_logged == 0);
+ rrl->log_stops_time = now;
+ }
+ rrl->last_logged = e;
+}
+
+/*
+ * Main rate limit interface.
+ */
+dns_rrl_result_t
+dns_rrl(dns_view_t *view,
+ const isc_sockaddr_t *client_addr, isc_boolean_t is_tcp,
+ dns_rdataclass_t qclass, dns_rdatatype_t qtype,
+ dns_name_t *qname, isc_result_t resp_result, isc_stdtime_t now,
+ isc_boolean_t wouldlog, char *log_buf, unsigned int log_buf_len)
+{
+ dns_rrl_t *rrl;
+ dns_rrl_rtype_t rtype;
+ dns_rrl_entry_t *e;
+ isc_netaddr_t netclient;
+ int secs;
+ double qps, scale;
+ int exempt_match;
+ isc_result_t result;
+ dns_rrl_result_t rrl_result;
+
+ INSIST(log_buf != NULL && log_buf_len > 0);
+
+ rrl = view->rrl;
+ if (rrl->exempt != NULL) {
+ isc_netaddr_fromsockaddr(&netclient, client_addr);
+ result = dns_acl_match(&netclient, NULL, rrl->exempt,
+ &view->aclenv, &exempt_match, NULL);
+ if (result == ISC_R_SUCCESS && exempt_match > 0)
+ return (DNS_RRL_RESULT_OK);
+ }
+
+ LOCK(&rrl->lock);
+
+ /*
+ * Estimate total query per second rate when scaling by qps.
+ */
+ if (rrl->qps_scale == 0) {
+ qps = 0.0;
+ scale = 1.0;
+ } else {
+ ++rrl->qps_responses;
+ secs = delta_rrl_time(rrl->qps_time, now);
+ if (secs <= 0) {
+ qps = rrl->qps;
+ } else {
+ qps = (1.0*rrl->qps_responses) / secs;
+ if (secs >= rrl->window) {
+ if (isc_log_wouldlog(dns_lctx,
+ DNS_RRL_LOG_DEBUG3))
+ isc_log_write(dns_lctx,
+ DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST,
+ DNS_RRL_LOG_DEBUG3,
+ "%d responses/%d seconds"
+ " = %d qps",
+ rrl->qps_responses, secs,
+ (int)qps);
+ rrl->qps = qps;
+ rrl->qps_responses = 0;
+ rrl->qps_time = now;
+ } else if (qps < rrl->qps) {
+ qps = rrl->qps;
+ }
+ }
+ scale = rrl->qps_scale / qps;
+ }
+
+ /*
+ * Do maintenance once per second.
+ */
+ if (rrl->num_logged > 0 && rrl->log_stops_time != now)
+ log_stops(rrl, now, 8, log_buf, log_buf_len);
+
+ /*
+ * Notice TCP responses when scaling limits by qps.
+ * Do not try to rate limit TCP responses.
+ */
+ if (is_tcp) {
+ if (scale < 1.0) {
+ e = get_entry(rrl, client_addr,
+ 0, dns_rdatatype_none, NULL,
+ DNS_RRL_RTYPE_TCP, now, ISC_TRUE,
+ log_buf, log_buf_len);
+ if (e != NULL) {
+ e->responses = -(rrl->window+1);
+ set_age(rrl, e, now);
+ }
+ }
+ UNLOCK(&rrl->lock);
+ return (ISC_R_SUCCESS);
+ }
+
+ /*
+ * Find the right kind of entry, creating it if necessary.
+ * If that is impossible, then nothing more can be done
+ */
+ switch (resp_result) {
+ case ISC_R_SUCCESS:
+ rtype = DNS_RRL_RTYPE_QUERY;
+ break;
+ case DNS_R_DELEGATION:
+ rtype = DNS_RRL_RTYPE_REFERRAL;
+ break;
+ case DNS_R_NXRRSET:
+ rtype = DNS_RRL_RTYPE_NODATA;
+ break;
+ case DNS_R_NXDOMAIN:
+ rtype = DNS_RRL_RTYPE_NXDOMAIN;
+ break;
+ default:
+ rtype = DNS_RRL_RTYPE_ERROR;
+ break;
+ }
+ e = get_entry(rrl, client_addr, qclass, qtype, qname, rtype,
+ now, ISC_TRUE, log_buf, log_buf_len);
+ if (e == NULL) {
+ UNLOCK(&rrl->lock);
+ return (DNS_RRL_RESULT_OK);
+ }
+
+ if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG1)) {
+ /*
+ * Do not worry about speed or releasing the lock.
+ * This message appears before messages from debit_rrl_entry().
+ */
+ make_log_buf(rrl, e, "consider limiting ", NULL, ISC_FALSE,
+ qname, ISC_FALSE, DNS_RRL_RESULT_OK, resp_result,
+ log_buf, log_buf_len);
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DEBUG1,
+ "%s", log_buf);
+ }
+
+ rrl_result = debit_rrl_entry(rrl, e, qps, scale, client_addr, now,
+ log_buf, log_buf_len);
+
+ if (rrl->all_per_second.r != 0) {
+ /*
+ * We must debit the all-per-second token bucket if we have
+ * an all-per-second limit for the IP address.
+ * The all-per-second limit determines the log message
+ * when both limits are hit.
+ * The response limiting must continue if the
+ * all-per-second limiting lapses.
+ */
+ dns_rrl_entry_t *e_all;
+ dns_rrl_result_t rrl_all_result;
+
+ e_all = get_entry(rrl, client_addr,
+ 0, dns_rdatatype_none, NULL,
+ DNS_RRL_RTYPE_ALL, now, ISC_TRUE,
+ log_buf, log_buf_len);
+ if (e_all == NULL) {
+ UNLOCK(&rrl->lock);
+ return (DNS_RRL_RESULT_OK);
+ }
+ rrl_all_result = debit_rrl_entry(rrl, e_all, qps, scale,
+ client_addr, now,
+ log_buf, log_buf_len);
+ if (rrl_all_result != DNS_RRL_RESULT_OK) {
+ int level;
+
+ e = e_all;
+ rrl_result = rrl_all_result;
+ if (rrl_result == DNS_RRL_RESULT_OK)
+ level = DNS_RRL_LOG_DEBUG2;
+ else
+ level = DNS_RRL_LOG_DEBUG1;
+ if (isc_log_wouldlog(dns_lctx, level)) {
+ make_log_buf(rrl, e,
+ "prefer all-per-second limiting ",
+ NULL, ISC_TRUE, qname, ISC_FALSE,
+ DNS_RRL_RESULT_OK, resp_result,
+ log_buf, log_buf_len);
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, level,
+ "%s", log_buf);
+ }
+ }
+ }
+
+ if (rrl_result == DNS_RRL_RESULT_OK) {
+ UNLOCK(&rrl->lock);
+ return (DNS_RRL_RESULT_OK);
+ }
+
+ /*
+ * Log occassionally in the rate-limit category.
+ */
+ if ((!e->logged || e->log_secs >= DNS_RRL_MAX_LOG_SECS) &&
+ isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DROP)) {
+ make_log_buf(rrl, e, rrl->log_only ? "would " : NULL,
+ e->logged ? "continue limiting " : "limit ",
+ ISC_TRUE, qname, ISC_TRUE,
+ DNS_RRL_RESULT_OK, resp_result,
+ log_buf, log_buf_len);
+ if (!e->logged) {
+ e->logged = ISC_TRUE;
+ if (++rrl->num_logged <= 1)
+ rrl->last_logged = e;
+ }
+ e->log_secs = 0;
+
+ /*
+ * Avoid holding the lock.
+ */
+ if (!wouldlog) {
+ UNLOCK(&rrl->lock);
+ e = NULL;
+ }
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
+ DNS_LOGMODULE_REQUEST, DNS_RRL_LOG_DROP,
+ "%s", log_buf);
+ }
+
+ /*
+ * Make a log message for the caller.
+ */
+ if (wouldlog)
+ make_log_buf(rrl, e,
+ rrl->log_only ? "would rate limit " : "rate limit ",
+ NULL, ISC_FALSE, qname, ISC_FALSE,
+ rrl_result, resp_result, log_buf, log_buf_len);
+
+ if (e != NULL) {
+ /*
+ * Do not save the qname unless we might need it for
+ * the ending log message.
+ */
+ if (!e->logged)
+ free_qname(rrl, e);
+ UNLOCK(&rrl->lock);
+ }
+
+ return (rrl_result);
+}
+
+void
+dns_rrl_view_destroy(dns_view_t *view) {
+ dns_rrl_t *rrl;
+ dns_rrl_block_t *b;
+ dns_rrl_hash_t *h;
+ char log_buf[DNS_RRL_LOG_BUF_LEN];
+ int i;
+
+ rrl = view->rrl;
+ if (rrl == NULL)
+ return;
+ view->rrl = NULL;
+
+ /*
+ * Assume the caller takes care of locking the view and anything else.
+ */
+
+ if (rrl->num_logged > 0)
+ log_stops(rrl, 0, ISC_INT32_MAX, log_buf, sizeof(log_buf));
+
+ for (i = 0; i < DNS_RRL_QNAMES; ++i) {
+ if (rrl->qnames[i] == NULL)
+ break;
+ isc_mem_put(rrl->mctx, rrl->qnames[i], sizeof(*rrl->qnames[i]));
+ }
+
+ if (rrl->exempt != NULL)
+ dns_acl_detach(&rrl->exempt);
+
+ DESTROYLOCK(&rrl->lock);
+
+ while (!ISC_LIST_EMPTY(rrl->blocks)) {
+ b = ISC_LIST_HEAD(rrl->blocks);
+ ISC_LIST_UNLINK(rrl->blocks, b, link);
+ isc_mem_put(rrl->mctx, b, b->size);
+ }
+
+ h = rrl->hash;
+ if (h != NULL)
+ isc_mem_put(rrl->mctx, h,
+ sizeof(*h) + (h->length - 1) * sizeof(h->bins[0]));
+
+ h = rrl->old_hash;
+ if (h != NULL)
+ isc_mem_put(rrl->mctx, h,
+ sizeof(*h) + (h->length - 1) * sizeof(h->bins[0]));
+
+ isc_mem_putanddetach(&rrl->mctx, rrl, sizeof(*rrl));
+}
+
+isc_result_t
+dns_rrl_init(dns_rrl_t **rrlp, dns_view_t *view, int min_entries) {
+ dns_rrl_t *rrl;
+ isc_result_t result;
+
+ *rrlp = NULL;
+
+ rrl = isc_mem_get(view->mctx, sizeof(*rrl));
+ if (rrl == NULL)
+ return (ISC_R_NOMEMORY);
+ memset(rrl, 0, sizeof(*rrl));
+ isc_mem_attach(view->mctx, &rrl->mctx);
+ result = isc_mutex_init(&rrl->lock);
+ if (result != ISC_R_SUCCESS) {
+ isc_mem_putanddetach(&rrl->mctx, rrl, sizeof(*rrl));
+ return (result);
+ }
+ isc_stdtime_get(&rrl->ts_bases[0]);
+
+ view->rrl = rrl;
+
+ result = expand_entries(rrl, min_entries);
+ if (result != ISC_R_SUCCESS) {
+ dns_rrl_view_destroy(view);
+ return (result);
+ }
+ result = expand_rrl_hash(rrl, 0);
+ if (result != ISC_R_SUCCESS) {
+ dns_rrl_view_destroy(view);
+ return (result);
+ }
+
+ *rrlp = rrl;
+ return (ISC_R_SUCCESS);
+}
diff --git a/lib/dns/spnego.c b/lib/dns/spnego.c
index 0c1c8583650d..2da79f8b55ce 100644
--- a/lib/dns/spnego.c
+++ b/lib/dns/spnego.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2014 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
@@ -463,7 +463,7 @@ code_NegTokenArg(OM_uint32 * minor_status,
free(buf);
return (GSS_S_FAILURE);
}
- memcpy(*outbuf, buf + buf_size - buf_len, buf_len);
+ memmove(*outbuf, buf + buf_size - buf_len, buf_len);
*outbuf_size = buf_len;
free(buf);
@@ -856,7 +856,7 @@ der_get_octet_string(const unsigned char *p, size_t len,
data->data = malloc(len);
if (data->data == NULL)
return (ENOMEM);
- memcpy(data->data, p, len);
+ memmove(data->data, p, len);
} else
data->data = NULL;
if (size)
@@ -1107,7 +1107,7 @@ length_len(size_t len)
if (len < 128U)
return (1);
else
- return (len_unsigned(len) + 1);
+ return (len_unsigned((unsigned int)len) + 1);
}
@@ -1191,18 +1191,18 @@ der_put_length(unsigned char *p, size_t len, size_t val, size_t *size)
if (len < 1U)
return (ASN1_OVERFLOW);
if (val < 128U) {
- *p = val;
+ *p = (unsigned char)val;
*size = 1;
return (0);
} else {
size_t l;
int e;
- e = der_put_unsigned(p, len - 1, val, &l);
+ e = der_put_unsigned(p, len - 1, (unsigned int)val, &l);
if (e)
return (e);
p -= l;
- *p = 0x80 | l;
+ *p = 0x80 | (unsigned char)l;
*size = l + 1;
return (0);
}
@@ -1217,7 +1217,7 @@ der_put_octet_string(unsigned char *p, size_t len,
p -= data->length;
len -= data->length;
POST(len);
- memcpy(p + 1, data->data, data->length);
+ memmove(p + 1, data->data, data->length);
*size = data->length;
return (0);
}
@@ -1227,10 +1227,10 @@ der_put_oid(unsigned char *p, size_t len,
const oid *data, size_t *size)
{
unsigned char *base = p;
- int n;
+ size_t n;
- for (n = data->length - 1; n >= 2; --n) {
- unsigned u = data->components[n];
+ for (n = data->length; n >= 3u; --n) {
+ unsigned u = data->components[n - 1];
if (len < 1U)
return (ASN1_OVERFLOW);
@@ -1397,7 +1397,7 @@ gssapi_mech_make_header(u_char *p,
p += len_len;
*p++ = 0x06;
*p++ = mech->length;
- memcpy(p, mech->elements, mech->length);
+ memmove(p, mech->elements, mech->length);
p += mech->length;
return (p);
}
@@ -1430,7 +1430,7 @@ gssapi_spnego_encapsulate(OM_uint32 * minor_status,
gss_release_buffer(minor_status, output_token);
return (GSS_S_FAILURE);
}
- memcpy(p, buf, buf_size);
+ memmove(p, buf, buf_size);
return (GSS_S_COMPLETE);
}
diff --git a/lib/dns/spnego_asn1.c b/lib/dns/spnego_asn1.c
index b50605456693..a90f1be63c2c 100644
--- a/lib/dns/spnego_asn1.c
+++ b/lib/dns/spnego_asn1.c
@@ -229,7 +229,7 @@ encode_MechTypeList(unsigned char *p, size_t len, const MechTypeList * data, siz
int i, e;
for (i = (data)->len - 1; i >= 0; --i) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_MechType(p, len, &(data)->val[i], &l);
BACK;
@@ -257,7 +257,7 @@ decode_MechTypeList(const unsigned char *p, size_t len, MechTypeList * data, siz
len = reallen;
{
size_t origlen = len;
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
(data)->len = 0;
(data)->val = NULL;
@@ -418,7 +418,7 @@ encode_NegTokenInit(unsigned char *p, size_t len, const NegTokenInit * data, siz
int e;
if ((data)->mechListMIC) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_octet_string(p, len, (data)->mechListMIC, &l);
BACK;
@@ -427,7 +427,7 @@ encode_NegTokenInit(unsigned char *p, size_t len, const NegTokenInit * data, siz
ret += oldret;
}
if ((data)->mechToken) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_octet_string(p, len, (data)->mechToken, &l);
BACK;
@@ -436,7 +436,7 @@ encode_NegTokenInit(unsigned char *p, size_t len, const NegTokenInit * data, siz
ret += oldret;
}
if ((data)->reqFlags) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_ContextFlags(p, len, (data)->reqFlags, &l);
BACK;
@@ -444,7 +444,7 @@ encode_NegTokenInit(unsigned char *p, size_t len, const NegTokenInit * data, siz
BACK;
ret += oldret;
} {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_MechTypeList(p, len, &(data)->mechTypes, &l);
BACK;
@@ -641,7 +641,7 @@ encode_NegTokenResp(unsigned char *p, size_t len, const NegTokenResp * data, siz
int e;
if ((data)->mechListMIC) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_octet_string(p, len, (data)->mechListMIC, &l);
BACK;
@@ -650,7 +650,7 @@ encode_NegTokenResp(unsigned char *p, size_t len, const NegTokenResp * data, siz
ret += oldret;
}
if ((data)->responseToken) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_octet_string(p, len, (data)->responseToken, &l);
BACK;
@@ -659,7 +659,7 @@ encode_NegTokenResp(unsigned char *p, size_t len, const NegTokenResp * data, siz
ret += oldret;
}
if ((data)->supportedMech) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_MechType(p, len, (data)->supportedMech, &l);
BACK;
@@ -668,7 +668,7 @@ encode_NegTokenResp(unsigned char *p, size_t len, const NegTokenResp * data, siz
ret += oldret;
}
if ((data)->negState) {
- int oldret = ret;
+ size_t oldret = ret;
ret = 0;
e = encode_enumerated(p, len, (data)->negState, &l);
BACK;
diff --git a/lib/dns/ssu.c b/lib/dns/ssu.c
index 49a777a6447e..7adb769cf35e 100644
--- a/lib/dns/ssu.c
+++ b/lib/dns/ssu.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2010, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2010, 2011, 2013, 2014 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
@@ -217,7 +217,7 @@ dns_ssutable_addrule(dns_ssutable_t *table, isc_boolean_t grant,
result = ISC_R_NOMEMORY;
goto failure;
}
- memcpy(rule->types, types, ntypes * sizeof(dns_rdatatype_t));
+ memmove(rule->types, types, ntypes * sizeof(dns_rdatatype_t));
} else
rule->types = NULL;
diff --git a/lib/dns/ssu_external.c b/lib/dns/ssu_external.c
index 43d231d63eb0..759482768d8f 100644
--- a/lib/dns/ssu_external.c
+++ b/lib/dns/ssu_external.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011-2013 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
@@ -131,7 +131,7 @@ dns_ssu_external_match(dns_name_t *identity,
isc_buffer_t *tkey_token = NULL;
int fd;
const char *sock_path;
- size_t req_len;
+ unsigned int req_len;
isc_region_t token_region;
unsigned char *data;
isc_buffer_t buf;
diff --git a/lib/dns/time.c b/lib/dns/time.c
index 0f245a246a9d..d331ca3bfe10 100644
--- a/lib/dns/time.c
+++ b/lib/dns/time.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -98,7 +98,7 @@ dns_time64_totext(isc_int64_t t, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, buf, l);
+ memmove(region.base, buf, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c
index 161c18808ef4..11b4f49eb04b 100644
--- a/lib/dns/tkey.c
+++ b/lib/dns/tkey.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -152,7 +152,7 @@ add_rdata_to_list(dns_message_t *msg, dns_name_t *name, dns_rdata_t *rdata,
dns_rdata_toregion(rdata, &r);
RETERR(isc_buffer_allocate(msg->mctx, &tmprdatabuf, r.length));
isc_buffer_availableregion(tmprdatabuf, &newr);
- memcpy(newr.base, r.base, r.length);
+ memmove(newr.base, r.base, r.length);
dns_rdata_fromregion(newrdata, rdata->rdclass, rdata->type, &newr);
dns_message_takebuffer(msg, &tmprdatabuf);
@@ -252,12 +252,12 @@ compute_secret(isc_buffer_t *shared, isc_region_t *queryrandomness,
if (r.length < sizeof(digests) || r.length < r2.length)
return (ISC_R_NOSPACE);
if (r2.length > sizeof(digests)) {
- memcpy(r.base, r2.base, r2.length);
+ memmove(r.base, r2.base, r2.length);
for (i = 0; i < sizeof(digests); i++)
r.base[i] ^= digests[i];
isc_buffer_add(secret, r2.length);
} else {
- memcpy(r.base, digests, sizeof(digests));
+ memmove(r.base, digests, sizeof(digests));
for (i = 0; i < r2.length; i++)
r.base[i] ^= r2.base[i];
isc_buffer_add(secret, sizeof(digests));
@@ -534,7 +534,7 @@ process_gsstkey(dns_name_t *name, dns_rdata_tkey_t *tkeyin,
goto failure;
}
tkeyout->keylen = isc_buffer_usedlength(outtoken);
- memcpy(tkeyout->key, isc_buffer_base(outtoken),
+ memmove(tkeyout->key, isc_buffer_base(outtoken),
isc_buffer_usedlength(outtoken));
isc_buffer_free(&outtoken);
} else {
@@ -544,7 +544,7 @@ process_gsstkey(dns_name_t *name, dns_rdata_tkey_t *tkeyin,
goto failure;
}
tkeyout->keylen = tkeyin->keylen;
- memcpy(tkeyout->key, tkeyin->key, tkeyin->keylen);
+ memmove(tkeyout->key, tkeyin->key, tkeyin->keylen);
}
tkeyout->error = dns_rcode_noerror;
diff --git a/lib/dns/tsig.c b/lib/dns/tsig.c
index c7768f4c788a..00ab570d9e34 100644
--- a/lib/dns/tsig.c
+++ b/lib/dns/tsig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1370,21 +1370,21 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg,
* Extract the header.
*/
isc_buffer_usedregion(source, &r);
- memcpy(header, r.base, DNS_MESSAGE_HEADERLEN);
+ memmove(header, r.base, DNS_MESSAGE_HEADERLEN);
isc_region_consume(&r, DNS_MESSAGE_HEADERLEN);
/*
* Decrement the additional field counter.
*/
- memcpy(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
+ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
addcount = htons((isc_uint16_t)(ntohs(addcount) - 1));
- memcpy(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
+ memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
/*
* Put in the original id.
*/
id = htons(tsig.originalid);
- memcpy(&header[0], &id, 2);
+ memmove(&header[0], &id, 2);
/*
* Digest the modified header.
@@ -1609,16 +1609,16 @@ tsig_verify_tcp(isc_buffer_t *source, dns_message_t *msg) {
* Extract the header.
*/
isc_buffer_usedregion(source, &r);
- memcpy(header, r.base, DNS_MESSAGE_HEADERLEN);
+ memmove(header, r.base, DNS_MESSAGE_HEADERLEN);
isc_region_consume(&r, DNS_MESSAGE_HEADERLEN);
/*
* Decrement the additional field counter if necessary.
*/
if (has_tsig) {
- memcpy(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
+ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
addcount = htons((isc_uint16_t)(ntohs(addcount) - 1));
- memcpy(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
+ memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
}
/*
@@ -1627,7 +1627,7 @@ tsig_verify_tcp(isc_buffer_t *source, dns_message_t *msg) {
/* XXX Can TCP transfers be forwarded? How would that work? */
if (has_tsig) {
id = htons(tsig.originalid);
- memcpy(&header[0], &id, 2);
+ memmove(&header[0], &id, 2);
}
/*
diff --git a/lib/dns/ttl.c b/lib/dns/ttl.c
index d3cf024138db..c794859064a0 100644
--- a/lib/dns/ttl.c
+++ b/lib/dns/ttl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -53,7 +53,7 @@ ttlfmt(unsigned int t, const char *s, isc_boolean_t verbose,
isc_boolean_t space, isc_buffer_t *target)
{
char tmp[60];
- size_t len;
+ unsigned int len;
isc_region_t region;
if (verbose)
@@ -68,7 +68,7 @@ ttlfmt(unsigned int t, const char *s, isc_boolean_t verbose,
isc_buffer_availableregion(target, &region);
if (len > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, tmp, len);
+ memmove(region.base, tmp, len);
isc_buffer_add(target, len);
return (ISC_R_SUCCESS);
diff --git a/lib/dns/update.c b/lib/dns/update.c
index 14ffcc2234d8..e727c347ce93 100644
--- a/lib/dns/update.c
+++ b/lib/dns/update.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011-2013 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
@@ -232,7 +232,6 @@ do_one_tuple(dns_difftuple_t **tuple, dns_db_t *db, dns_dbversion_t *ver,
* Create a singleton diff.
*/
dns_diff_init(diff->mctx, &temp_diff);
- temp_diff.resign = diff->resign;
ISC_LIST_APPEND(temp_diff.tuples, *tuple, link);
/*
@@ -1211,7 +1210,9 @@ del_keysigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
for (i = 0; i < nkeys; i++) {
if (rrsig.keyid == dst_key_id(keys[i])) {
found = ISC_TRUE;
- if (!dst_key_isprivate(keys[i])) {
+ if (!dst_key_isprivate(keys[i]) &&
+ !dst_key_inactive(keys[i]))
+ {
/*
* The re-signing code in zone.c
* will mark this as offline.
@@ -1354,7 +1355,6 @@ dns_update_signatures(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db,
dns_diff_init(diff->mctx, &affected);
dns_diff_init(diff->mctx, &sig_diff);
- sig_diff.resign = dns_zone_getsigresigninginterval(zone);
dns_diff_init(diff->mctx, &nsec_diff);
dns_diff_init(diff->mctx, &nsec_mindiff);
diff --git a/lib/dns/validator.c b/lib/dns/validator.c
index 8cf7f665ec88..d7982caa777a 100644
--- a/lib/dns/validator.c
+++ b/lib/dns/validator.c
@@ -3753,8 +3753,7 @@ dns_validator_create(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type,
val->keytable = NULL;
result = dns_view_getsecroots(val->view, &val->keytable);
if (result != ISC_R_SUCCESS)
- return (result);
-
+ goto cleanup_mutex;
val->keynode = NULL;
val->key = NULL;
val->siginfo = NULL;
@@ -3787,6 +3786,9 @@ dns_validator_create(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type,
return (ISC_R_SUCCESS);
+ cleanup_mutex:
+ DESTROYLOCK(&val->lock);
+
cleanup_event:
isc_task_detach(&tclone);
isc_event_free(ISC_EVENT_PTR(&event));
diff --git a/lib/dns/view.c b/lib/dns/view.c
index 9c1a201a8bd9..142b09edbd74 100644
--- a/lib/dns/view.c
+++ b/lib/dns/view.c
@@ -49,6 +49,7 @@
#include <dns/masterdump.h>
#include <dns/order.h>
#include <dns/peer.h>
+#include <dns/rrl.h>
#include <dns/rbt.h>
#include <dns/rdataset.h>
#include <dns/request.h>
@@ -184,6 +185,7 @@ dns_view_create(isc_mem_t *mctx, dns_rdataclass_t rdclass,
view->answeracl_exclude = NULL;
view->denyanswernames = NULL;
view->answernames_exclude = NULL;
+ view->rrl = NULL;
view->provideixfr = ISC_TRUE;
view->maxcachettl = 7 * 24 * 3600;
view->maxncachettl = 3 * 3600;
@@ -335,10 +337,16 @@ destroy(dns_view_t *view) {
dns_acache_detach(&view->acache);
}
dns_rpz_view_destroy(view);
-#else
+#ifdef USE_RRL
+ dns_rrl_view_destroy(view);
+#else /* USE_RRL */
+ INSIST(view->rrl == NULL);
+#endif /* USE_RRL */
+#else /* BIND9 */
INSIST(view->acache == NULL);
INSIST(ISC_LIST_EMPTY(view->rpz_zones));
-#endif
+ INSIST(view->rrl == NULL);
+#endif /* BIND9 */
if (view->requestmgr != NULL)
dns_requestmgr_detach(&view->requestmgr);
if (view->task != NULL)
@@ -560,6 +568,8 @@ dialup(dns_zone_t *zone, void *dummy) {
void
dns_view_dialup(dns_view_t *view) {
REQUIRE(DNS_VIEW_VALID(view));
+ REQUIRE(view->zonetable != NULL);
+
(void)dns_zt_apply(view->zonetable, ISC_FALSE, dialup, NULL);
}
#endif
@@ -868,6 +878,7 @@ dns_view_addzone(dns_view_t *view, dns_zone_t *zone) {
REQUIRE(DNS_VIEW_VALID(view));
REQUIRE(!view->frozen);
+ REQUIRE(view->zonetable != NULL);
result = dns_zt_mount(view->zonetable, zone);
@@ -882,6 +893,7 @@ dns_view_findzone(dns_view_t *view, dns_name_t *name, dns_zone_t **zonep) {
REQUIRE(DNS_VIEW_VALID(view));
+ LOCK(&view->lock);
if (view->zonetable != NULL) {
result = dns_zt_find(view->zonetable, name, 0, NULL, zonep);
if (result == DNS_R_PARTIALMATCH) {
@@ -890,6 +902,7 @@ dns_view_findzone(dns_view_t *view, dns_name_t *name, dns_zone_t **zonep) {
}
} else
result = ISC_R_NOTFOUND;
+ UNLOCK(&view->lock);
return (result);
}
@@ -952,7 +965,12 @@ dns_view_find2(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type,
is_staticstub_zone = ISC_FALSE;
#ifdef BIND9
zone = NULL;
- result = dns_zt_find(view->zonetable, name, 0, NULL, &zone);
+ LOCK(&view->lock);
+ if (view->zonetable != NULL)
+ result = dns_zt_find(view->zonetable, name, 0, NULL, &zone);
+ else
+ result = ISC_R_NOTFOUND;
+ UNLOCK(&view->lock);
if (zone != NULL && dns_zone_gettype(zone) == dns_zone_staticstub &&
!use_static_stub) {
result = ISC_R_NOTFOUND;
@@ -1223,9 +1241,14 @@ dns_view_findzonecut2(dns_view_t *view, dns_name_t *name, dns_name_t *fname,
*/
#ifdef BIND9
zone = NULL;
- result = dns_zt_find(view->zonetable, name, 0, NULL, &zone);
+ LOCK(&view->lock);
+ if (view->zonetable != NULL)
+ result = dns_zt_find(view->zonetable, name, 0, NULL, &zone);
+ else
+ result = ISC_R_NOTFOUND;
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH)
result = dns_zone_getdb(zone, &db);
+ UNLOCK(&view->lock);
#else
result = ISC_R_NOTFOUND;
#endif
@@ -1404,6 +1427,8 @@ dns_viewlist_findzone(dns_viewlist_t *list, dns_name_t *name,
dns_zone_t **zp = NULL;;
REQUIRE(list != NULL);
+ REQUIRE(zonep != NULL && *zonep == NULL);
+
for (view = ISC_LIST_HEAD(*list);
view != NULL;
view = ISC_LIST_NEXT(view, link)) {
@@ -1415,7 +1440,13 @@ dns_viewlist_findzone(dns_viewlist_t *list, dns_name_t *name,
* treat it as not found.
*/
zp = (zone1 == NULL) ? &zone1 : &zone2;
- result = dns_zt_find(view->zonetable, name, 0, NULL, zp);
+ LOCK(&view->lock);
+ if (view->zonetable != NULL)
+ result = dns_zt_find(view->zonetable, name, 0,
+ NULL, zp);
+ else
+ result = ISC_R_NOTFOUND;
+ UNLOCK(&view->lock);
INSIST(result == ISC_R_SUCCESS ||
result == ISC_R_NOTFOUND ||
result == DNS_R_PARTIALMATCH);
@@ -1706,13 +1737,17 @@ dns_view_getrootdelonly(dns_view_t *view) {
#ifdef BIND9
isc_result_t
dns_view_freezezones(dns_view_t *view, isc_boolean_t value) {
+
REQUIRE(DNS_VIEW_VALID(view));
+ REQUIRE(view->zonetable != NULL);
+
return (dns_zt_freezezones(view->zonetable, value));
}
#endif
void
dns_view_setresstats(dns_view_t *view, isc_stats_t *stats) {
+
REQUIRE(DNS_VIEW_VALID(view));
REQUIRE(!view->frozen);
REQUIRE(view->resstats == NULL);
diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c
index 813f616e6fa0..30f2f3b347f4 100644
--- a/lib/dns/xfrin.c
+++ b/lib/dns/xfrin.c
@@ -221,7 +221,6 @@ static isc_result_t xfrin_start(dns_xfrin_ctx_t *xfr);
static void xfrin_connect_done(isc_task_t *task, isc_event_t *event);
static isc_result_t xfrin_send_request(dns_xfrin_ctx_t *xfr);
static void xfrin_send_done(isc_task_t *task, isc_event_t *event);
-static void xfrin_sendlen_done(isc_task_t *task, isc_event_t *event);
static void xfrin_recv_done(isc_task_t *task, isc_event_t *event);
static void xfrin_timeout(isc_task_t *task, isc_event_t *event);
@@ -270,13 +269,18 @@ axfr_init(dns_xfrin_ctx_t *xfr) {
static isc_result_t
axfr_makedb(dns_xfrin_ctx_t *xfr, dns_db_t **dbp) {
- return (dns_db_create(xfr->mctx, /* XXX */
- "rbt", /* XXX guess */
- &xfr->name,
- dns_dbtype_zone,
- xfr->rdclass,
- 0, NULL, /* XXX guess */
- dbp));
+ isc_result_t result;
+
+ result = dns_db_create(xfr->mctx, /* XXX */
+ "rbt", /* XXX guess */
+ &xfr->name,
+ dns_dbtype_zone,
+ xfr->rdclass,
+ 0, NULL, /* XXX guess */
+ dbp);
+ if (result == ISC_R_SUCCESS)
+ result = dns_zone_rpz_enable_db(xfr->zone, *dbp);
+ return (result);
}
static isc_result_t
@@ -861,8 +865,11 @@ xfrin_create(isc_mem_t *mctx,
xfr->sourceaddr = *sourceaddr;
isc_sockaddr_setport(&xfr->sourceaddr, 0);
- isc_buffer_init(&xfr->qbuffer, xfr->qbuffer_data,
- sizeof(xfr->qbuffer_data));
+ /*
+ * Reserve 2 bytes for TCP length at the begining of the buffer.
+ */
+ isc_buffer_init(&xfr->qbuffer, &xfr->qbuffer_data[2],
+ sizeof(xfr->qbuffer_data) - 2);
xfr->magic = XFRIN_MAGIC;
*xfrp = xfr;
@@ -938,6 +945,8 @@ xfrin_connect_done(isc_task_t *task, isc_event_t *event) {
isc_result_t result = cev->result;
char sourcetext[ISC_SOCKADDR_FORMATSIZE];
isc_sockaddr_t sockaddr;
+ dns_zonemgr_t * zmgr;
+ isc_time_t now;
REQUIRE(VALID_XFRIN(xfr));
@@ -952,16 +961,16 @@ xfrin_connect_done(isc_task_t *task, isc_event_t *event) {
return;
}
- if (result != ISC_R_SUCCESS) {
- dns_zonemgr_t * zmgr = dns_zone_getmgr(xfr->zone);
- isc_time_t now;
-
- if (zmgr != NULL) {
+ zmgr = dns_zone_getmgr(xfr->zone);
+ if (zmgr != NULL) {
+ if (result != ISC_R_SUCCESS) {
TIME_NOW(&now);
dns_zonemgr_unreachableadd(zmgr, &xfr->masteraddr,
&xfr->sourceaddr, &now);
- }
- goto failure;
+ goto failure;
+ } else
+ dns_zonemgr_unreachabledel(zmgr, &xfr->masteraddr,
+ &xfr->sourceaddr);
}
result = isc_socket_getsockname(xfr->socket, &sockaddr);
@@ -1042,10 +1051,8 @@ static isc_result_t
xfrin_send_request(dns_xfrin_ctx_t *xfr) {
isc_result_t result;
isc_region_t region;
- isc_region_t lregion;
dns_rdataset_t *qrdataset = NULL;
dns_message_t *msg = NULL;
- unsigned char length[2];
dns_difftuple_t *soatuple = NULL;
dns_name_t *qname = NULL;
dns_dbversion_t *ver = NULL;
@@ -1114,12 +1121,16 @@ xfrin_send_request(dns_xfrin_ctx_t *xfr) {
isc_buffer_usedregion(&xfr->qbuffer, &region);
INSIST(region.length <= 65535);
- length[0] = region.length >> 8;
- length[1] = region.length & 0xFF;
- lregion.base = length;
- lregion.length = 2;
- CHECK(isc_socket_send(xfr->socket, &lregion, xfr->task,
- xfrin_sendlen_done, xfr));
+ /*
+ * Record message length and adjust region to include TCP
+ * length field.
+ */
+ xfr->qbuffer_data[0] = (region.length >> 8) & 0xff;
+ xfr->qbuffer_data[1] = region.length & 0xff;
+ region.base -= 2;
+ region.length += 2;
+ CHECK(isc_socket_send(xfr->socket, &region, xfr->task,
+ xfrin_send_done, xfr));
xfr->sends++;
failure:
@@ -1136,42 +1147,6 @@ xfrin_send_request(dns_xfrin_ctx_t *xfr) {
return (result);
}
-/* XXX there should be library support for sending DNS TCP messages */
-
-static void
-xfrin_sendlen_done(isc_task_t *task, isc_event_t *event) {
- isc_socketevent_t *sev = (isc_socketevent_t *) event;
- dns_xfrin_ctx_t *xfr = (dns_xfrin_ctx_t *) event->ev_arg;
- isc_result_t evresult = sev->result;
- isc_result_t result;
- isc_region_t region;
-
- REQUIRE(VALID_XFRIN(xfr));
-
- UNUSED(task);
-
- INSIST(event->ev_type == ISC_SOCKEVENT_SENDDONE);
- isc_event_free(&event);
-
- xfr->sends--;
- if (xfr->shuttingdown) {
- maybe_free(xfr);
- return;
- }
-
- xfrin_log(xfr, ISC_LOG_DEBUG(3), "sent request length prefix");
- CHECK(evresult);
-
- isc_buffer_usedregion(&xfr->qbuffer, &region);
- CHECK(isc_socket_send(xfr->socket, &region, xfr->task,
- xfrin_send_done, xfr));
- xfr->sends++;
- failure:
- if (result != ISC_R_SUCCESS)
- xfrin_fail(xfr, result, "failed sending request length prefix");
-}
-
-
static void
xfrin_send_done(isc_task_t *task, isc_event_t *event) {
isc_socketevent_t *sev = (isc_socketevent_t *) event;
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index 10ba807c52f1..01ff97b11dcb 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -37,6 +37,7 @@
#include <isc/strerror.h>
#include <isc/string.h>
#include <isc/taskpool.h>
+#include <isc/thread.h>
#include <isc/timer.h>
#include <isc/util.h>
@@ -162,10 +163,20 @@ typedef struct dns_asyncload dns_asyncload_t;
#define UNLOCK_ZONE(z) \
do { (z)->locked = ISC_FALSE; UNLOCK(&(z)->lock); } while (0)
#define LOCKED_ZONE(z) ((z)->locked)
+#define TRYLOCK_ZONE(result, z) \
+ do { \
+ result = isc_mutex_trylock(&(z)->lock); \
+ if (result == ISC_R_SUCCESS) { \
+ INSIST((z)->locked == ISC_FALSE); \
+ (z)->locked = ISC_TRUE; \
+ } \
+ } while (0)
#else
#define LOCK_ZONE(z) LOCK(&(z)->lock)
#define UNLOCK_ZONE(z) UNLOCK(&(z)->lock)
#define LOCKED_ZONE(z) ISC_TRUE
+#define TRYLOCK_ZONE(result, z) \
+ do { result = isc_mutex_trylock(&(z)->lock); } while (0)
#endif
#ifdef ISC_RWLOCK_USEATOMIC
@@ -455,6 +466,7 @@ struct dns_unreachable {
isc_sockaddr_t local;
isc_uint32_t expire;
isc_uint32_t last;
+ isc_uint32_t count;
};
struct dns_zonemgr {
@@ -468,7 +480,8 @@ struct dns_zonemgr {
isc_taskpool_t * loadtasks;
isc_task_t * task;
isc_pool_t * mctxpool;
- isc_ratelimiter_t * rl;
+ isc_ratelimiter_t * notifyrl;
+ isc_ratelimiter_t * refreshrl;
isc_rwlock_t rwlock;
isc_mutex_t iolock;
isc_rwlock_t urlock;
@@ -673,7 +686,6 @@ static void zone_name_tostr(dns_zone_t *zone, char *buf, size_t length);
static void zone_rdclass_tostr(dns_zone_t *zone, char *buf, size_t length);
static void zone_viewname_tostr(dns_zone_t *zone, char *buf, size_t length);
static isc_result_t zone_send_secureserial(dns_zone_t *zone,
- isc_boolean_t secure_locked,
isc_uint32_t serial);
#if 0
@@ -729,10 +741,7 @@ static isc_result_t delete_nsec(dns_db_t *db, dns_dbversion_t *ver,
dns_dbnode_t *node, dns_name_t *name,
dns_diff_t *diff);
static void zone_rekey(dns_zone_t *zone);
-static isc_boolean_t delsig_ok(dns_rdata_rrsig_t *rrsig_ptr,
- dst_key_t **keys, unsigned int nkeys);
-static isc_result_t zone_send_securedb(dns_zone_t *zone, isc_boolean_t locked,
- dns_db_t *db);
+static isc_result_t zone_send_securedb(dns_zone_t *zone, dns_db_t *db);
#define ENTER zone_debuglog(zone, me, 1, "enter")
@@ -767,6 +776,20 @@ static const char *dbargv_default[] = { "rbt" };
} \
} while (0)
+typedef struct nsec3param nsec3param_t;
+struct nsec3param {
+ unsigned char data[DNS_NSEC3PARAM_BUFFERSIZE + 1];
+ unsigned int length;
+ isc_boolean_t nsec;
+ isc_boolean_t replace;
+ ISC_LINK(nsec3param_t) link;
+};
+typedef ISC_LIST(nsec3param_t) nsec3paramlist_t;
+struct np3event {
+ isc_event_t event;
+ nsec3param_t params;
+};
+
/*%
* Increment resolver-related statistics counters. Zone must be locked.
*/
@@ -967,6 +990,7 @@ zone_free(dns_zone_t *zone) {
REQUIRE(zone->irefs == 0);
REQUIRE(!LOCKED_ZONE(zone));
REQUIRE(zone->timer == NULL);
+ REQUIRE(zone->zmgr == NULL);
/*
* Managed objects. Order is important.
@@ -981,8 +1005,6 @@ zone_free(dns_zone_t *zone) {
isc_task_detach(&zone->task);
if (zone->loadtask != NULL)
isc_task_detach(&zone->loadtask);
- if (zone->zmgr != NULL)
- dns_zonemgr_releasezone(zone->zmgr, zone);
/* Unmanaged objects */
for (signing = ISC_LIST_HEAD(zone->signing);
@@ -1534,6 +1556,18 @@ dns_zone_get_rpz(dns_zone_t *zone) {
return (zone->is_rpz);
}
+/*
+ * If a zone is a response policy zone, mark its new database.
+ */
+isc_result_t
+dns_zone_rpz_enable_db(dns_zone_t *zone, dns_db_t *db) {
+#ifdef BIND9
+ if (zone->is_rpz)
+ return (dns_db_rpz_enabled(db, NULL));
+#endif
+ return (ISC_R_SUCCESS);
+}
+
static isc_result_t
zone_load(dns_zone_t *zone, unsigned int flags) {
isc_result_t result;
@@ -1880,8 +1914,7 @@ zone_gotreadhandle(isc_task_t *task, isc_event_t *event) {
result = dns_master_loadfileinc3(load->zone->masterfile,
dns_db_origin(load->db),
dns_db_origin(load->db),
- load->zone->rdclass, options,
- load->zone->sigresigninginterval,
+ load->zone->rdclass, options, 0,
&load->callbacks, task,
zone_loaddone, load,
&load->zone->lctx, load->zone->mctx,
@@ -1933,15 +1966,20 @@ zone_gotwritehandle(isc_task_t *task, isc_event_t *event) {
LOCK_ZONE(zone);
ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
if (zone->db != NULL) {
+ const dns_master_style_t *output_style;
+
dns_db_currentversion(zone->db, &version);
dns_master_initrawheader(&rawdata);
if (inline_secure(zone))
get_raw_serial(zone->raw, &rawdata);
+ if (zone->type == dns_zone_key)
+ output_style = &dns_master_style_keyzone;
+ else
+ output_style = &dns_master_style_default;
result = dns_master_dumpinc3(zone->mctx, zone->db, version,
- &dns_master_style_default,
- zone->masterfile, zone->task,
- dump_done, zone, &zone->dctx,
- zone->masterformat, &rawdata);
+ output_style, zone->masterfile,
+ zone->task, dump_done, zone, &zone->dctx, zone->masterformat,
+ &rawdata);
dns_db_closeversion(zone->db, &version, ISC_FALSE);
} else
result = ISC_R_CANCELED;
@@ -1987,14 +2025,9 @@ zone_startload(dns_db_t *db, dns_zone_t *zone, isc_time_t loadtime) {
isc_result_t tresult;
unsigned int options;
-#ifdef BIND9
- if (zone->is_rpz) {
- result = dns_db_rpz_enabled(db, NULL);
- if (result != ISC_R_SUCCESS)
- return (result);
- }
-#endif
-
+ result = dns_zone_rpz_enable_db(zone, db);
+ if (result != ISC_R_SUCCESS)
+ return (result);
options = get_master_options(zone);
if (DNS_ZONE_OPTION(zone, DNS_ZONEOPT_MANYERRORS))
options |= DNS_MASTER_MANYERRORS;
@@ -2047,8 +2080,7 @@ zone_startload(dns_db_t *db, dns_zone_t *zone, isc_time_t loadtime) {
}
result = dns_master_loadfile3(zone->masterfile,
&zone->origin, &zone->origin,
- zone->rdclass, options,
- zone->sigresigninginterval,
+ zone->rdclass, options, 0,
&callbacks, zone->mctx,
zone->masterformat);
tresult = dns_db_endload(db, &callbacks.add_private);
@@ -2485,7 +2517,7 @@ isspf(const dns_rdata_t *rdata) {
INSIST(tl <= rdl);
if (len > sizeof(buf) - i - 1)
len = sizeof(buf) - i - 1;
- memcpy(buf + i, data, len);
+ memmove(buf + i, data, len);
i += len;
data += tl;
rdl -= tl;
@@ -2737,14 +2769,22 @@ resume_signingwithkey(dns_zone_t *zone) {
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_rdataset_t rdataset;
isc_result_t result;
+ dns_db_t *db = NULL;
+
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+ if (db == NULL)
+ goto cleanup;
- result = dns_db_findnode(zone->db, &zone->origin, ISC_FALSE, &node);
+ result = dns_db_findnode(db, &zone->origin, ISC_FALSE, &node);
if (result != ISC_R_SUCCESS)
goto cleanup;
- dns_db_currentversion(zone->db, &version);
+ dns_db_currentversion(db, &version);
dns_rdataset_init(&rdataset);
- result = dns_db_findrdataset(zone->db, node, version,
+ result = dns_db_findrdataset(db, node, version,
zone->privatetype,
dns_rdatatype_none, 0,
&rdataset, NULL);
@@ -2777,10 +2817,13 @@ resume_signingwithkey(dns_zone_t *zone) {
dns_rdataset_disassociate(&rdataset);
cleanup:
- if (node != NULL)
- dns_db_detachnode(zone->db, &node);
- if (version != NULL)
- dns_db_closeversion(zone->db, &version, ISC_FALSE);
+ if (db != NULL) {
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+ if (version != NULL)
+ dns_db_closeversion(db, &version, ISC_FALSE);
+ dns_db_detach(&db);
+ }
}
static isc_result_t
@@ -2793,18 +2836,33 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
unsigned int options = 0;
char saltbuf[255*2+1];
char flags[sizeof("INITIAL|REMOVE|CREATE|NONSEC|OPTOUT")];
+ dns_db_t *db = NULL;
int i;
- dns_db_currentversion(zone->db, &version);
- result = dns_nsec_nseconly(zone->db, version, &nseconly);
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+
+ if (db == NULL) {
+ result = ISC_R_SUCCESS;
+ goto cleanup;
+ }
+
+ dns_db_currentversion(db, &version);
+ result = dns_nsec_nseconly(db, version, &nseconly);
nsec3ok = (result == ISC_R_SUCCESS && !nseconly);
- dns_db_closeversion(zone->db, &version, ISC_FALSE);
- if (!nsec3ok && (nsec3param->flags & DNS_NSEC3FLAG_REMOVE) == 0)
- return (ISC_R_SUCCESS);
+ dns_db_closeversion(db, &version, ISC_FALSE);
+ if (!nsec3ok && (nsec3param->flags & DNS_NSEC3FLAG_REMOVE) == 0) {
+ result = ISC_R_SUCCESS;
+ goto cleanup;
+ }
nsec3chain = isc_mem_get(zone->mctx, sizeof *nsec3chain);
- if (nsec3chain == NULL)
- return (ISC_R_NOMEMORY);
+ if (nsec3chain == NULL) {
+ result = ISC_R_NOMEMORY;
+ goto cleanup;
+ }
nsec3chain->magic = 0;
nsec3chain->done = ISC_FALSE;
@@ -2816,7 +2874,7 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
nsec3chain->nsec3param.iterations = nsec3param->iterations;
nsec3chain->nsec3param.flags = nsec3param->flags;
nsec3chain->nsec3param.salt_length = nsec3param->salt_length;
- memcpy(nsec3chain->salt, nsec3param->salt, nsec3param->salt_length);
+ memmove(nsec3chain->salt, nsec3param->salt, nsec3param->salt_length);
nsec3chain->nsec3param.salt = nsec3chain->salt;
nsec3chain->seen_nsec = ISC_FALSE;
nsec3chain->delete_nsec = ISC_FALSE;
@@ -2866,7 +2924,7 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
for (current = ISC_LIST_HEAD(zone->nsec3chain);
current != NULL;
current = ISC_LIST_NEXT(current, link)) {
- if (current->db == zone->db &&
+ if (current->db == db &&
current->nsec3param.hash == nsec3param->hash &&
current->nsec3param.iterations == nsec3param->iterations &&
current->nsec3param.salt_length == nsec3param->salt_length
@@ -2875,28 +2933,25 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
current->done = ISC_TRUE;
}
- if (zone->db != NULL) {
- dns_db_attach(zone->db, &nsec3chain->db);
- if ((nsec3chain->nsec3param.flags & DNS_NSEC3FLAG_CREATE) != 0)
- options = DNS_DB_NONSEC3;
- result = dns_db_createiterator(nsec3chain->db, options,
- &nsec3chain->dbiterator);
- if (result == ISC_R_SUCCESS)
- dns_dbiterator_first(nsec3chain->dbiterator);
- if (result == ISC_R_SUCCESS) {
- dns_dbiterator_pause(nsec3chain->dbiterator);
- ISC_LIST_INITANDAPPEND(zone->nsec3chain,
- nsec3chain, link);
- nsec3chain = NULL;
- if (isc_time_isepoch(&zone->nsec3chaintime)) {
- TIME_NOW(&now);
- zone->nsec3chaintime = now;
- if (zone->task != NULL)
- zone_settimer(zone, &now);
- }
+ dns_db_attach(db, &nsec3chain->db);
+ if ((nsec3chain->nsec3param.flags & DNS_NSEC3FLAG_CREATE) != 0)
+ options = DNS_DB_NONSEC3;
+ result = dns_db_createiterator(nsec3chain->db, options,
+ &nsec3chain->dbiterator);
+ if (result == ISC_R_SUCCESS)
+ dns_dbiterator_first(nsec3chain->dbiterator);
+ if (result == ISC_R_SUCCESS) {
+ dns_dbiterator_pause(nsec3chain->dbiterator);
+ ISC_LIST_INITANDAPPEND(zone->nsec3chain,
+ nsec3chain, link);
+ nsec3chain = NULL;
+ if (isc_time_isepoch(&zone->nsec3chaintime)) {
+ TIME_NOW(&now);
+ zone->nsec3chaintime = now;
+ if (zone->task != NULL)
+ zone_settimer(zone, &now);
}
- } else
- result = ISC_R_NOTFOUND;
+ }
if (nsec3chain != NULL) {
if (nsec3chain->db != NULL)
@@ -2905,6 +2960,10 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
dns_dbiterator_destroy(&nsec3chain->dbiterator);
isc_mem_put(zone->mctx, nsec3chain, sizeof *nsec3chain);
}
+
+ cleanup:
+ if (db != NULL)
+ dns_db_detach(&db);
return (result);
}
@@ -2916,21 +2975,29 @@ resume_addnsec3chain(dns_zone_t *zone) {
isc_result_t result;
dns_rdata_nsec3param_t nsec3param;
isc_boolean_t nseconly = ISC_FALSE, nsec3ok = ISC_FALSE;
+ dns_db_t *db = NULL;
if (zone->privatetype == 0)
return;
- result = dns_db_findnode(zone->db, &zone->origin, ISC_FALSE, &node);
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+ if (db == NULL)
+ goto cleanup;
+
+ result = dns_db_findnode(db, &zone->origin, ISC_FALSE, &node);
if (result != ISC_R_SUCCESS)
goto cleanup;
- dns_db_currentversion(zone->db, &version);
+ dns_db_currentversion(db, &version);
- result = dns_nsec_nseconly(zone->db, version, &nseconly);
+ result = dns_nsec_nseconly(db, version, &nseconly);
nsec3ok = (result == ISC_R_SUCCESS && !nseconly);
dns_rdataset_init(&rdataset);
- result = dns_db_findrdataset(zone->db, node, version,
+ result = dns_db_findrdataset(db, node, version,
zone->privatetype, dns_rdatatype_none,
0, &rdataset, NULL);
if (result != ISC_R_SUCCESS) {
@@ -2965,10 +3032,13 @@ resume_addnsec3chain(dns_zone_t *zone) {
}
dns_rdataset_disassociate(&rdataset);
cleanup:
- if (node != NULL)
- dns_db_detachnode(zone->db, &node);
- if (version != NULL)
- dns_db_closeversion(zone->db, &version, ISC_FALSE);
+ if (db != NULL) {
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+ if (version != NULL)
+ dns_db_closeversion(db, &version, ISC_FALSE);
+ dns_db_detach(&db);
+ }
}
static void
@@ -2978,20 +3048,35 @@ set_resigntime(dns_zone_t *zone) {
unsigned int resign;
isc_result_t result;
isc_uint32_t nanosecs;
+ dns_db_t *db = NULL;
dns_rdataset_init(&rdataset);
dns_fixedname_init(&fixed);
- result = dns_db_getsigningtime(zone->db, &rdataset,
+
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+ if (db == NULL) {
+ isc_time_settoepoch(&zone->resigntime);
+ return;
+ }
+
+ result = dns_db_getsigningtime(db, &rdataset,
dns_fixedname_name(&fixed));
if (result != ISC_R_SUCCESS) {
isc_time_settoepoch(&zone->resigntime);
- return;
+ goto cleanup;
}
- resign = rdataset.resign;
+
+ resign = rdataset.resign - zone->sigresigninginterval;
dns_rdataset_disassociate(&rdataset);
isc_random_get(&nanosecs);
nanosecs %= 1000000000;
isc_time_set(&zone->resigntime, resign, nanosecs);
+ cleanup:
+ dns_db_detach(&db);
+ return;
}
static isc_result_t
@@ -3334,6 +3419,8 @@ load_secroots(dns_zone_t *zone, dns_name_t *name, dns_rdataset_t *rdataset) {
/* Convert rdata to keydata. */
result = dns_rdata_tostruct(&rdata, &keydata, NULL);
+ if (result == ISC_R_UNEXPECTEDEND)
+ continue;
RUNTIME_CHECK(result == ISC_R_SUCCESS);
/* Set the key refresh timer. */
@@ -3387,7 +3474,6 @@ do_one_tuple(dns_difftuple_t **tuple, dns_db_t *db, dns_dbversion_t *ver,
* Create a singleton diff.
*/
dns_diff_init(diff->mctx, &temp_diff);
- temp_diff.resign = diff->resign;
ISC_LIST_APPEND(temp_diff.tuples, *tuple, link);
/*
@@ -3739,9 +3825,9 @@ maybe_send_secure(dns_zone_t *zone) {
NULL, &soacount, &serial, NULL,
NULL, NULL, NULL, NULL);
if (result == ISC_R_SUCCESS && soacount > 0U)
- zone_send_secureserial(zone->raw, ISC_TRUE, serial);
+ zone_send_secureserial(zone->raw, serial);
} else
- zone_send_securedb(zone->raw, ISC_TRUE, zone->raw->db);
+ zone_send_securedb(zone->raw, zone->raw->db);
} else
DNS_ZONE_SETFLAG(zone->raw, DNS_ZONEFLG_SENDSECURE);
@@ -3763,6 +3849,7 @@ zone_unchanged(dns_db_t *db1, dns_db_t *db2, isc_mem_t *mctx) {
/*
* The zone is presumed to be locked.
+ * If this is a inline_raw zone the secure version is also locked.
*/
static isc_result_t
zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
@@ -3778,6 +3865,10 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
isc_boolean_t nomaster = ISC_FALSE;
unsigned int options;
+ INSIST(LOCKED_ZONE(zone));
+ if (inline_raw(zone))
+ INSIST(LOCKED_ZONE(zone->secure));
+
TIME_NOW(&now);
/*
@@ -3855,8 +3946,7 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
else
options = 0;
result = dns_journal_rollforward2(zone->mctx, db, options,
- zone->sigresigninginterval,
- zone->journal);
+ 0, zone->journal);
if (result != ISC_R_SUCCESS && result != ISC_R_NOTFOUND &&
result != DNS_R_UPTODATE && result != DNS_R_NOJOURNAL &&
result != ISC_R_RANGE) {
@@ -4128,9 +4218,9 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
inline_raw(zone))
{
if (zone->secure->db == NULL)
- zone_send_securedb(zone, ISC_FALSE, db);
+ zone_send_securedb(zone, db);
else
- zone_send_secureserial(zone, ISC_FALSE, serial);
+ zone_send_secureserial(zone, serial);
}
}
@@ -4183,7 +4273,8 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
dns_zone_log(zone, ISC_LOG_DEBUG(3),
"next resign: %s/%s in %d seconds",
namebuf, typebuf,
- next.resign - timenow);
+ next.resign - timenow -
+ zone->sigresigninginterval);
dns_rdataset_disassociate(&next);
} else
dns_zone_log(zone, ISC_LOG_WARNING,
@@ -4231,12 +4322,9 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
static isc_boolean_t
exit_check(dns_zone_t *zone) {
-
REQUIRE(LOCKED_ZONE(zone));
- if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_SHUTDOWN) &&
- zone->irefs == 0)
- {
+ if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_SHUTDOWN) && zone->irefs == 0) {
/*
* DNS_ZONEFLG_SHUTDOWN can only be set if erefs == 0.
*/
@@ -4891,7 +4979,7 @@ set_addrkeylist(unsigned int count,
newaddrs = isc_mem_get(mctx, count * sizeof(*newaddrs));
if (newaddrs == NULL)
return (ISC_R_NOMEMORY);
- memcpy(newaddrs, addrs, count * sizeof(*newaddrs));
+ memmove(newaddrs, addrs, count * sizeof(*newaddrs));
newnames = NULL;
if (names != NULL) {
@@ -5153,6 +5241,7 @@ find_zone_keys(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver,
const char *directory = dns_zone_getkeydirectory(zone);
CHECK(dns_db_findnode(db, dns_db_origin(db), ISC_FALSE, &node));
+ memset(keys, 0, sizeof(*keys) * maxkeys);
result = dns_dnssec_findzonekeys2(db, ver, node, dns_db_origin(db),
directory, mctx, maxkeys, keys,
nkeys);
@@ -5219,19 +5308,39 @@ set_key_expiry_warning(dns_zone_t *zone, isc_stdtime_t when, isc_stdtime_t now)
* have no new key.
*/
static isc_boolean_t
-delsig_ok(dns_rdata_rrsig_t *rrsig_ptr, dst_key_t **keys, unsigned int nkeys) {
+delsig_ok(dns_rdata_rrsig_t *rrsig_ptr, dst_key_t **keys, unsigned int nkeys,
+ isc_boolean_t *warn)
+{
unsigned int i = 0;
+ isc_boolean_t have_ksk = ISC_FALSE, have_zsk = ISC_FALSE;
+ isc_boolean_t have_pksk = ISC_FALSE, have_pzsk = ISC_FALSE;
- /*
- * It's okay to delete a signature if there is an active ZSK
- * with the same algorithm
- */
for (i = 0; i < nkeys; i++) {
- if (rrsig_ptr->algorithm == dst_key_alg(keys[i]) &&
- (dst_key_isprivate(keys[i])) && !KSK(keys[i]))
- return (ISC_TRUE);
+ if (rrsig_ptr->algorithm != dst_key_alg(keys[i]))
+ continue;
+ if (dst_key_isprivate(keys[i])) {
+ if (KSK(keys[i]))
+ have_ksk = have_pksk = ISC_TRUE;
+ else
+ have_zsk = have_pzsk = ISC_TRUE;
+ } else {
+ if (KSK(keys[i]))
+ have_ksk = ISC_TRUE;
+ else
+ have_zsk = ISC_TRUE;
+ }
}
+ if (have_zsk && have_ksk && !have_pzsk)
+ *warn = ISC_TRUE;
+
+ /*
+ * It's okay to delete a signature if there is an active key
+ * with the same algorithm to replace it.
+ */
+ if (have_pksk || have_pzsk)
+ return (ISC_TRUE);
+
/*
* Failing that, it is *not* okay to delete a signature
* if the associated public key is still in the DNSKEY RRset
@@ -5299,7 +5408,8 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
RUNTIME_CHECK(result == ISC_R_SUCCESS);
if (type != dns_rdatatype_dnskey) {
- if (delsig_ok(&rrsig, keys, nkeys)) {
+ isc_boolean_t warn = ISC_FALSE, deleted = ISC_FALSE;
+ if (delsig_ok(&rrsig, keys, nkeys, &warn)) {
result = update_one_rr(db, ver, zonediff->diff,
DNS_DIFFOP_DELRESIGN, name,
rdataset.ttl, &rdata);
@@ -5307,7 +5417,9 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
changed = ISC_TRUE;
if (result != ISC_R_SUCCESS)
break;
- } else {
+ deleted = ISC_TRUE;
+ }
+ if (warn) {
/*
* At this point, we've got an RRSIG,
* which is signed by an inactive key.
@@ -5317,7 +5429,7 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
* offline will prevent us spinning waiting
* for the private part.
*/
- if (incremental) {
+ if (incremental && !deleted) {
result = offline(db, ver, zonediff,
name, rdataset.ttl,
&rdata);
@@ -5365,7 +5477,9 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
* We want the earliest offline expire time
* iff there is a new offline signature.
*/
- if (!dst_key_isprivate(keys[i])) {
+ if (!dst_key_inactive(keys[i]) &&
+ !dst_key_isprivate(keys[i]))
+ {
isc_int64_t timeexpire =
dns_time64_from32(rrsig.timeexpire);
if (warn != 0 && warn > timeexpire)
@@ -5383,6 +5497,7 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
result = offline(db, ver, zonediff,
name, rdataset.ttl,
&rdata);
+ changed = ISC_TRUE;
break;
}
result = update_one_rr(db, ver, zonediff->diff,
@@ -5551,7 +5666,6 @@ zone_resigninc(dns_zone_t *zone) {
dns_rdataset_init(&rdataset);
dns_fixedname_init(&fixed);
dns_diff_init(zone->mctx, &_sig_diff);
- _sig_diff.resign = zone->sigresigninginterval;
zonediff_init(&zonediff, &_sig_diff);
/*
@@ -5611,7 +5725,7 @@ zone_resigninc(dns_zone_t *zone) {
i = 0;
while (result == ISC_R_SUCCESS) {
- resign = rdataset.resign;
+ resign = rdataset.resign - zone->sigresigninginterval;
covers = rdataset.covers;
dns_rdataset_disassociate(&rdataset);
@@ -6480,7 +6594,6 @@ zone_nsec3chain(dns_zone_t *zone) {
dns_diff_init(zone->mctx, &nsec3_diff);
dns_diff_init(zone->mctx, &nsec_diff);
dns_diff_init(zone->mctx, &_sig_diff);
- _sig_diff.resign = zone->sigresigninginterval;
zonediff_init(&zonediff, &_sig_diff);
ISC_LIST_INIT(cleanup);
@@ -7326,7 +7439,6 @@ zone_sign(dns_zone_t *zone) {
dns_fixedname_init(&nextfixed);
nextname = dns_fixedname_name(&nextfixed);
dns_diff_init(zone->mctx, &_sig_diff);
- _sig_diff.resign = zone->sigresigninginterval;
dns_diff_init(zone->mctx, &post_diff);
zonediff_init(&zonediff, &_sig_diff);
ISC_LIST_INIT(cleanup);
@@ -7340,8 +7452,13 @@ zone_sign(dns_zone_t *zone) {
}
ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
- dns_db_attach(zone->db, &db);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+ if (db == NULL) {
+ result = ISC_R_FAILURE;
+ goto failure;
+ }
result = dns_db_newversion(db, &version);
if (result != ISC_R_SUCCESS) {
@@ -7760,7 +7877,7 @@ zone_sign(dns_zone_t *zone) {
isc_time_settoepoch(&zone->signingtime);
}
-static void
+static isc_result_t
normalize_key(dns_rdata_t *rr, dns_rdata_t *target,
unsigned char *data, int size) {
dns_rdata_dnskey_t dnskey;
@@ -7781,6 +7898,8 @@ normalize_key(dns_rdata_t *rr, dns_rdata_t *target,
break;
case dns_rdatatype_keydata:
result = dns_rdata_tostruct(rr, &keydata, NULL);
+ if (result == ISC_R_UNEXPECTEDEND)
+ return (result);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
dns_keydata_todnskey(&keydata, &dnskey, NULL);
dns_rdata_fromstruct(target, rr->rdclass, dns_rdatatype_dnskey,
@@ -7789,6 +7908,7 @@ normalize_key(dns_rdata_t *rr, dns_rdata_t *target,
default:
INSIST(0);
}
+ return (ISC_R_SUCCESS);
}
/*
@@ -7812,14 +7932,18 @@ matchkey(dns_rdataset_t *rdset, dns_rdata_t *rr) {
dns_rdata_init(&rdata1);
dns_rdata_init(&rdata2);
- normalize_key(rr, &rdata1, data1, sizeof(data1));
+ result = normalize_key(rr, &rdata1, data1, sizeof(data1));
+ if (result != ISC_R_SUCCESS)
+ return (ISC_FALSE);
for (result = dns_rdataset_first(rdset);
result == ISC_R_SUCCESS;
result = dns_rdataset_next(rdset)) {
dns_rdata_reset(&rdata);
dns_rdataset_current(rdset, &rdata);
- normalize_key(&rdata, &rdata2, data2, sizeof(data2));
+ result = normalize_key(&rdata, &rdata2, data2, sizeof(data2));
+ if (result != ISC_R_SUCCESS)
+ continue;
if (dns_rdata_compare(&rdata1, &rdata2) == 0)
return (ISC_TRUE);
}
@@ -7926,7 +8050,11 @@ minimal_update(dns_keyfetch_t *kfetch, dns_dbversion_t *ver, dns_diff_t *diff)
name, 0, &rdata));
/* Update refresh timer */
- CHECK(dns_rdata_tostruct(&rdata, &keydata, NULL));
+ result = dns_rdata_tostruct(&rdata, &keydata, NULL);
+ if (result == ISC_R_UNEXPECTEDEND)
+ continue;
+ if (result != ISC_R_SUCCESS)
+ goto failure;
keydata.refresh = refresh_time(kfetch, ISC_TRUE);
set_refreshkeytimer(zone, &keydata, now);
@@ -8077,7 +8205,6 @@ keyfetch_done(isc_task_t *task, isc_event_t *event) {
INSIST(result == ISC_R_SUCCESS);
dns_diff_init(mctx, &diff);
- diff.resign = zone->sigresigninginterval;
CHECK(dns_db_newversion(kfetch->db, &ver));
@@ -8823,11 +8950,29 @@ void
dns_zone_markdirty(dns_zone_t *zone) {
isc_uint32_t serial;
isc_result_t result = ISC_R_SUCCESS;
+ dns_zone_t *secure = NULL;
+ /*
+ * Obtaining a lock on the zone->secure (see zone_send_secureserial)
+ * could result in a deadlock due to a LOR so we will spin if we
+ * can't obtain the both locks.
+ */
+ again:
LOCK_ZONE(zone);
if (zone->type == dns_zone_master) {
if (inline_raw(zone)) {
unsigned int soacount;
+ secure = zone->secure;
+ INSIST(secure != zone);
+ TRYLOCK_ZONE(result, secure);
+ if (result != ISC_R_SUCCESS) {
+ UNLOCK_ZONE(zone);
+ secure = NULL;
+#ifdef ISC_PLATFORM_USETHREADS
+ isc_thread_yield();
+#endif
+ goto again;
+ }
ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
if (zone->db != NULL) {
@@ -8839,13 +8984,15 @@ dns_zone_markdirty(dns_zone_t *zone) {
result = DNS_R_NOTLOADED;
ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
if (result == ISC_R_SUCCESS && soacount > 0U)
- zone_send_secureserial(zone, ISC_FALSE, serial);
+ zone_send_secureserial(zone, serial);
}
/* XXXMPA make separate call back */
if (result == ISC_R_SUCCESS)
set_resigntime(zone);
}
+ if (secure != NULL)
+ UNLOCK_ZONE(secure);
zone_needdump(zone, DNS_DUMP_DELAY);
UNLOCK_ZONE(zone);
}
@@ -9156,15 +9303,20 @@ zone_dump(dns_zone_t *zone, isc_boolean_t compact) {
result = DNS_R_CONTINUE;
UNLOCK_ZONE(zone);
} else {
+ const dns_master_style_t *output_style;
+
dns_masterrawheader_t rawdata;
dns_db_currentversion(db, &version);
dns_master_initrawheader(&rawdata);
if (inline_secure(zone))
get_raw_serial(zone->raw, &rawdata);
+ if (zone->type == dns_zone_key)
+ output_style = &dns_master_style_keyzone;
+ else
+ output_style = &dns_master_style_default;
result = dns_master_dump3(zone->mctx, db, version,
- &dns_master_style_default,
- masterfile, masterformat,
- &rawdata);
+ output_style, masterfile,
+ masterformat, &rawdata);
dns_db_closeversion(db, &version, ISC_FALSE);
}
fail:
@@ -9311,7 +9463,6 @@ forward_cancel(dns_zone_t *zone) {
static void
zone_unload(dns_zone_t *zone) {
-
/*
* 'zone' locked by caller.
*/
@@ -9565,7 +9716,7 @@ notify_send_queue(dns_notify_t *notify) {
return (ISC_R_NOMEMORY);
e->ev_arg = notify;
e->ev_sender = NULL;
- result = isc_ratelimiter_enqueue(notify->zone->zmgr->rl,
+ result = isc_ratelimiter_enqueue(notify->zone->zmgr->notifyrl,
notify->zone->task, &e);
if (result != ISC_R_SUCCESS)
isc_event_free(&e);
@@ -10331,6 +10482,12 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
LOCK_ZONE(zone);
+ if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_EXITING)) {
+ isc_event_free(&event);
+ dns_request_destroy(&zone->request);
+ goto detach;
+ }
+
/*
* if timeout log and next master;
*/
@@ -10718,7 +10875,7 @@ queue_soa_query(dns_zone_t *zone) {
e->ev_arg = zone;
e->ev_sender = NULL;
- result = isc_ratelimiter_enqueue(zone->zmgr->rl, zone->task, &e);
+ result = isc_ratelimiter_enqueue(zone->zmgr->refreshrl, zone->task, &e);
if (result != ISC_R_SUCCESS) {
zone_idetach(&dummy);
isc_event_free(&e);
@@ -11279,6 +11436,12 @@ zone_shutdown(isc_task_t *task, isc_event_t *event) {
linked = ISC_TRUE;
zone->statelist = NULL;
}
+ if (zone->statelist == &zone->zmgr->xfrin_in_progress) {
+ ISC_LIST_UNLINK(zone->zmgr->xfrin_in_progress, zone,
+ statelink);
+ zone->statelist = NULL;
+ zmgr_resume_xfrs(zone->zmgr, ISC_FALSE);
+ }
RWUNLOCK(&zone->zmgr->rwlock, isc_rwlocktype_write);
}
@@ -11288,6 +11451,10 @@ zone_shutdown(isc_task_t *task, isc_event_t *event) {
if (zone->xfr != NULL)
dns_xfrin_shutdown(zone->xfr);
+ /* Safe to release the zone now */
+ if (zone->zmgr != NULL)
+ dns_zonemgr_releasezone(zone->zmgr, zone);
+
LOCK_ZONE(zone);
if (linked) {
INSIST(zone->irefs > 0);
@@ -11439,10 +11606,10 @@ zone_settimer(dns_zone_t *zone, isc_time_t *now) {
isc_time_compare(&zone->refreshtime, &next) < 0)
next = zone->refreshtime;
}
- if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED)) {
- INSIST(!isc_time_isepoch(&zone->expiretime));
+ if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED) &&
+ !isc_time_isepoch(&zone->expiretime)) {
if (isc_time_isepoch(&next) ||
- isc_time_compare(&zone->expiretime, &next) < 0)
+ isc_time_compare(&zone->expiretime, &next) < 0)
next = zone->expiretime;
}
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDDUMP) &&
@@ -12102,7 +12269,7 @@ zone_namerd_tostr(dns_zone_t *zone, char *buf, size_t length) {
/*
* Leave space for terminating '\0'.
*/
- isc_buffer_init(&buffer, buf, length - 1);
+ isc_buffer_init(&buffer, buf, (unsigned int)length - 1);
if (zone->type != dns_zone_redirect && zone->type != dns_zone_key) {
if (dns_name_dynamic(&zone->origin))
result = dns_name_totext(&zone->origin, ISC_TRUE, &buffer);
@@ -12140,7 +12307,7 @@ zone_name_tostr(dns_zone_t *zone, char *buf, size_t length) {
/*
* Leave space for terminating '\0'.
*/
- isc_buffer_init(&buffer, buf, length - 1);
+ isc_buffer_init(&buffer, buf, (unsigned int)length - 1);
if (dns_name_dynamic(&zone->origin))
result = dns_name_totext(&zone->origin, ISC_TRUE, &buffer);
if (result != ISC_R_SUCCESS &&
@@ -12160,7 +12327,7 @@ zone_rdclass_tostr(dns_zone_t *zone, char *buf, size_t length) {
/*
* Leave space for terminating '\0'.
*/
- isc_buffer_init(&buffer, buf, length - 1);
+ isc_buffer_init(&buffer, buf, (unsigned int)length - 1);
(void)dns_rdataclass_totext(zone->rdclass, &buffer);
buf[isc_buffer_usedlength(&buffer)] = '\0';
@@ -12177,7 +12344,7 @@ zone_viewname_tostr(dns_zone_t *zone, char *buf, size_t length) {
/*
* Leave space for terminating '\0'.
*/
- isc_buffer_init(&buffer, buf, length - 1);
+ isc_buffer_init(&buffer, buf, (unsigned int)length - 1);
if (zone->view == NULL) {
isc_buffer_putstr(&buffer, "_none");
@@ -12644,6 +12811,7 @@ sync_secure_db(dns_zone_t *seczone, dns_db_t *secdb,
static void
receive_secure_serial(isc_task_t *task, isc_event_t *event) {
+ static char me[] = "receive_secure_serial";
isc_result_t result;
dns_journal_t *rjournal = NULL;
isc_uint32_t start, end;
@@ -12659,16 +12827,23 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) {
end = ((struct secure_event *)event)->serial;
isc_event_free(&event);
+ ENTER;
+
LOCK_ZONE(zone);
dns_diff_init(zone->mctx, &diff);
UNUSED(task);
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+
/*
* zone->db may be NULL if the load from disk failed.
*/
- if (zone->db == NULL || !inline_secure(zone)) {
+ if (db == NULL || !inline_secure(zone)) {
result = ISC_R_FAILURE;
goto failure;
}
@@ -12713,7 +12888,6 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) {
}
}
- dns_db_attach(zone->db, &db);
dns_db_currentversion(db, &oldver);
CHECK(dns_db_newversion(db, &newver));
@@ -12795,9 +12969,7 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) {
}
static isc_result_t
-zone_send_secureserial(dns_zone_t *zone, isc_boolean_t locked,
- isc_uint32_t serial)
-{
+zone_send_secureserial(dns_zone_t *zone, isc_uint32_t serial) {
isc_event_t *e;
dns_zone_t *dummy = NULL;
@@ -12808,10 +12980,8 @@ zone_send_secureserial(dns_zone_t *zone, isc_boolean_t locked,
if (e == NULL)
return (ISC_R_NOMEMORY);
((struct secure_event *)e)->serial = serial;
- if (locked)
- zone_iattach(zone->secure, &dummy);
- else
- dns_zone_iattach(zone->secure, &dummy);
+ INSIST(LOCKED_ZONE(zone->secure));
+ zone_iattach(zone->secure, &dummy);
isc_task_send(zone->secure->task, &e);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_SENDSECURE);
@@ -12869,6 +13039,203 @@ checkandaddsoa(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
0, NULL));
}
+/*
+ * This function should populate an nsec3paramlist_t with the
+ * nsecparam_t data from a zone.
+ */
+static isc_result_t
+save_nsec3param(dns_zone_t *zone, nsec3paramlist_t *nsec3list) {
+ isc_result_t result;
+ dns_dbnode_t *node = NULL;
+ dns_rdataset_t rdataset, prdataset;
+ dns_rdata_t rdata_in, prdata_in, prdata_out;
+ dns_dbversion_t *version = NULL;
+ nsec3param_t *nsec3param = NULL;
+ nsec3param_t *nsec3p = NULL;
+ nsec3param_t *next;
+ dns_db_t *db = NULL;
+ unsigned char buf[DNS_NSEC3PARAM_BUFFERSIZE];
+
+ REQUIRE(DNS_ZONE_VALID(zone));
+ REQUIRE(nsec3list != NULL);
+ REQUIRE(ISC_LIST_EMPTY(*nsec3list));
+
+ dns_db_attach(zone->db, &db);
+ CHECK(dns_db_getoriginnode(db, &node));
+
+ dns_rdataset_init(&rdataset);
+ dns_db_currentversion(db, &version);
+ result = dns_db_findrdataset(db, node, version,
+ dns_rdatatype_nsec3param,
+ dns_rdatatype_none, 0, &rdataset, NULL);
+
+ if (result != ISC_R_SUCCESS)
+ goto getprivate;
+
+ /*
+ * walk nsec3param rdataset making a list of parameters (note that
+ * multiple simultaneous nsec3 chains are annoyingly legal -- this
+ * is why we use an nsec3list, even tho we will usually only have
+ * one)
+ */
+ for (result = dns_rdataset_first(&rdataset);
+ result == ISC_R_SUCCESS;
+ result = dns_rdataset_next(&rdataset))
+ {
+ dns_rdata_init(&rdata_in);
+ dns_rdataset_current(&rdataset, &rdata_in);
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
+ DNS_LOGMODULE_ZONE, ISC_LOG_DEBUG(3),
+ "looping through nsec3param data");
+ nsec3param = isc_mem_get(zone->mctx, sizeof(nsec3param_t));
+ if (nsec3param == NULL)
+ CHECK(ISC_R_NOMEMORY);
+ ISC_LINK_INIT(nsec3param, link);
+
+ /*
+ * now transfer the data from the rdata to
+ * the nsec3param
+ */
+ dns_rdata_init(&prdata_out);
+ dns_nsec3param_toprivate(&rdata_in, &prdata_out,
+ zone->privatetype, nsec3param->data,
+ sizeof(nsec3param->data));
+ nsec3param->length = prdata_out.length;
+ ISC_LIST_APPEND(*nsec3list, nsec3param, link);
+ }
+
+ getprivate:
+ dns_rdataset_init(&prdataset);
+ result = dns_db_findrdataset(db, node, version, zone->privatetype,
+ dns_rdatatype_none, 0, &prdataset, NULL);
+ if (result != ISC_R_SUCCESS)
+ goto done;
+
+ /*
+ * walk private type records, converting them to nsec3 parameters
+ * using dns_nsec3param_fromprivate(), do the right thing based on
+ * CREATE and REMOVE flags
+ */
+ for (result = dns_rdataset_first(&prdataset);
+ result == ISC_R_SUCCESS;
+ result = dns_rdataset_next(&prdataset))
+ {
+ dns_rdata_init(&prdata_in);
+ dns_rdataset_current(&prdataset, &prdata_in);
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
+ DNS_LOGMODULE_ZONE, ISC_LOG_DEBUG(3),
+ "looping through nsec3param private data");
+
+ if (!dns_nsec3param_fromprivate(&prdata_in, &prdata_out,
+ buf, sizeof(buf)))
+ continue;
+
+ if ((prdata_out.data[1] & DNS_NSEC3FLAG_REMOVE) !=0) {
+ prdata_out.data[1] = 0;
+
+ for (nsec3p = ISC_LIST_HEAD(*nsec3list);
+ nsec3p != NULL;
+ nsec3p = next)
+ {
+ next = ISC_LIST_NEXT(nsec3p, link);
+ if (memcmp(prdata_out.data, nsec3p->data,
+ sizeof(nsec3p->data)) == 0) {
+ ISC_LIST_UNLINK(*nsec3list,
+ nsec3p, link);
+ isc_mem_put(zone->mctx, nsec3p,
+ sizeof(nsec3param_t));
+ }
+ }
+ continue;
+ }
+
+ nsec3param = isc_mem_get(zone->mctx, sizeof(nsec3param_t));
+ if (nsec3param == NULL)
+ CHECK(ISC_R_NOMEMORY);
+ ISC_LINK_INIT(nsec3param, link);
+
+ dns_rdata_init(&prdata_out);
+ dns_nsec3param_toprivate(&prdata_in, &prdata_out,
+ zone->privatetype, nsec3param->data,
+ sizeof(nsec3param->data));
+ nsec3param->length = prdata_out.length;
+ ISC_LIST_APPEND(*nsec3list, nsec3param, link);
+ }
+
+ done:
+ if (result == ISC_R_NOMORE || result == ISC_R_NOTFOUND)
+ result = ISC_R_SUCCESS;
+
+ failure:
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+ if (version != NULL)
+ dns_db_closeversion(db, &version, ISC_FALSE);
+ if (db != NULL)
+ dns_db_detach(&db);
+ if (dns_rdataset_isassociated(&rdataset))
+ dns_rdataset_disassociate(&rdataset);
+ if (dns_rdataset_isassociated(&prdataset))
+ dns_rdataset_disassociate(&prdataset);
+ return (result);
+}
+
+/*
+ * Walk the list of the nsec3 chains desired for the zone, converting
+ * parameters to private type records using dns_nsec3param_toprivate(),
+ * and insert them into the new zone db.
+ */
+static isc_result_t
+restore_nsec3param(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version,
+ nsec3paramlist_t *nsec3list)
+{
+ isc_result_t result;
+ dns_diff_t diff;
+ dns_rdata_t rdata;
+ nsec3param_t *nsec3p = NULL;
+ nsec3param_t *next;
+
+ REQUIRE(DNS_ZONE_VALID(zone));
+ REQUIRE(!ISC_LIST_EMPTY(*nsec3list));
+
+ dns_diff_init(zone->mctx, &diff);
+
+ /*
+ * Loop through the list of private-type records, set the INITIAL
+ * and CREATE flags, and the add the record to the apex of the tree
+ * in db.
+ */
+ for (nsec3p = ISC_LIST_HEAD(*nsec3list);
+ nsec3p != NULL;
+ nsec3p = next)
+ {
+ next = ISC_LIST_NEXT(nsec3p, link);
+ dns_rdata_init(&rdata);
+ nsec3p->data[2] = DNS_NSEC3FLAG_CREATE | DNS_NSEC3FLAG_INITIAL;
+ rdata.length = nsec3p->length;
+ rdata.data = nsec3p->data;
+ rdata.type = zone->privatetype;
+ rdata.rdclass = zone->rdclass;
+ CHECK(update_one_rr(db, version, &diff, DNS_DIFFOP_ADD,
+ &zone->origin, 0, &rdata));
+ }
+
+ result = ISC_R_SUCCESS;
+
+failure:
+ for (nsec3p = ISC_LIST_HEAD(*nsec3list);
+ nsec3p != NULL;
+ nsec3p = next)
+ {
+ next = ISC_LIST_NEXT(nsec3p, link);
+ ISC_LIST_UNLINK(*nsec3list, nsec3p, link);
+ isc_mem_put(zone->mctx, nsec3p, sizeof(nsec3param_t));
+ }
+
+ dns_diff_clear(&diff);
+ return (result);
+}
+
static void
receive_secure_db(isc_task_t *task, isc_event_t *event) {
isc_result_t result;
@@ -12884,25 +13251,44 @@ receive_secure_db(isc_task_t *task, isc_event_t *event) {
isc_time_t loadtime;
unsigned int oldserial = 0;
isc_boolean_t have_oldserial = ISC_FALSE;
+ nsec3paramlist_t nsec3list;
UNUSED(task);
+ ISC_LIST_INIT(nsec3list);
+
zone = event->ev_arg;
rawdb = ((struct secure_event *)event)->db;
isc_event_free(&event);
- REQUIRE(inline_secure(zone));
-
dns_fixedname_init(&fname);
name = dns_fixedname_name(&fname);
dns_rdataset_init(&rdataset);
+ LOCK_ZONE(zone);
+ if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_EXITING) || !inline_secure(zone)) {
+ result = ISC_R_SHUTTINGDOWN;
+ goto failure;
+ }
+
TIME_NOW(&loadtime);
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
if (zone->db != NULL) {
result = dns_db_getsoaserial(zone->db, NULL, &oldserial);
if (result == ISC_R_SUCCESS)
have_oldserial = ISC_TRUE;
+
+ /*
+ * assemble nsec3parameters from the old zone, and set a flag
+ * if any are found
+ */
+ result = save_nsec3param(zone, &nsec3list);
+ if (result != ISC_R_SUCCESS) {
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+ goto failure;
+ }
}
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
result = dns_db_create(zone->mctx, zone->db_argv[0],
&zone->origin, dns_dbtype_zone, zone->rdclass,
@@ -12963,21 +13349,27 @@ receive_secure_db(isc_task_t *task, isc_event_t *event) {
dns_db_detachnode(db, &node);
}
+ /*
+ * Call restore_nsec3param() to create private-type records from
+ * the old nsec3 parameters and insert them into db
+ */
+ if (!ISC_LIST_EMPTY(nsec3list))
+ restore_nsec3param(zone, db, version, &nsec3list);
+
dns_db_closeversion(db, &version, ISC_TRUE);
+
/*
* Lock hierarchy: zmgr, zone, raw.
*/
- LOCK_ZONE(zone);
- if (inline_secure(zone))
- LOCK_ZONE(zone->raw);
+ INSIST(zone != zone->raw);
+ LOCK_ZONE(zone->raw);
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NEEDNOTIFY);
result = zone_postload(zone, db, loadtime, ISC_R_SUCCESS);
zone_needdump(zone, 0); /* XXXMPA */
- if (inline_secure(zone))
- UNLOCK_ZONE(zone->raw);
- UNLOCK_ZONE(zone);
+ UNLOCK_ZONE(zone->raw);
failure:
+ UNLOCK_ZONE(zone);
if (result != ISC_R_SUCCESS)
dns_zone_log(zone, ISC_LOG_ERROR, "receive_secure_db: %s",
dns_result_totext(result));
@@ -12998,7 +13390,7 @@ receive_secure_db(isc_task_t *task, isc_event_t *event) {
}
static isc_result_t
-zone_send_securedb(dns_zone_t *zone, isc_boolean_t locked, dns_db_t *db) {
+zone_send_securedb(dns_zone_t *zone, dns_db_t *db) {
isc_event_t *e;
dns_db_t *dummy = NULL;
dns_zone_t *secure = NULL;
@@ -13011,11 +13403,8 @@ zone_send_securedb(dns_zone_t *zone, isc_boolean_t locked, dns_db_t *db) {
return (ISC_R_NOMEMORY);
dns_db_attach(db, &dummy);
((struct secure_event *)e)->db = dummy;
- if (locked)
- zone_iattach(zone->secure, &secure);
- else
- dns_zone_iattach(zone->secure, &secure);
-
+ INSIST(LOCKED_ZONE(zone->secure));
+ zone_iattach(zone->secure, &secure);
isc_task_send(zone->secure->task, &e);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_SENDSECURE);
return (ISC_R_SUCCESS);
@@ -13024,12 +13413,29 @@ zone_send_securedb(dns_zone_t *zone, isc_boolean_t locked, dns_db_t *db) {
isc_result_t
dns_zone_replacedb(dns_zone_t *zone, dns_db_t *db, isc_boolean_t dump) {
isc_result_t result;
+ dns_zone_t *secure = NULL;
REQUIRE(DNS_ZONE_VALID(zone));
+ again:
LOCK_ZONE(zone);
+ if (inline_raw(zone)) {
+ secure = zone->secure;
+ INSIST(secure != zone);
+ TRYLOCK_ZONE(result, secure);
+ if (result != ISC_R_SUCCESS) {
+ UNLOCK_ZONE(zone);
+ secure = NULL;
+#if ISC_PLATFORM_USETHREADS
+ isc_thread_yield();
+#endif
+ goto again;
+ }
+ }
ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_write);
result = zone_replacedb(zone, db, dump);
ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_write);
+ if (secure != NULL)
+ UNLOCK_ZONE(secure);
UNLOCK_ZONE(zone);
return (result);
}
@@ -13046,6 +13452,8 @@ zone_replacedb(dns_zone_t *zone, dns_db_t *db, isc_boolean_t dump) {
*/
REQUIRE(DNS_ZONE_VALID(zone));
REQUIRE(LOCKED_ZONE(zone));
+ if (inline_raw(zone))
+ REQUIRE(LOCKED_ZONE(zone->secure));
result = zone_get_from_db(zone, db, &nscount, &soacount,
NULL, NULL, NULL, NULL, NULL, NULL);
@@ -13145,7 +13553,7 @@ zone_replacedb(dns_zone_t *zone, dns_db_t *db, isc_boolean_t dump) {
}
}
if (zone->type == dns_zone_master && inline_raw(zone))
- zone_send_secureserial(zone, ISC_FALSE, serial);
+ zone_send_secureserial(zone, serial);
} else {
if (dump && zone->masterfile != NULL) {
/*
@@ -13198,7 +13606,7 @@ zone_replacedb(dns_zone_t *zone, dns_db_t *db, isc_boolean_t dump) {
}
if (inline_raw(zone))
- zone_send_securedb(zone, ISC_FALSE, db);
+ zone_send_securedb(zone, db);
}
dns_db_closeversion(db, &ver, ISC_FALSE);
@@ -13253,13 +13661,34 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
isc_uint32_t serial, refresh, retry, expire, minimum;
isc_result_t xfrresult = result;
isc_boolean_t free_needed;
+ dns_zone_t *secure = NULL;
REQUIRE(DNS_ZONE_VALID(zone));
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"zone transfer finished: %s", dns_result_totext(result));
+ /*
+ * Obtaining a lock on the zone->secure (see zone_send_secureserial)
+ * could result in a deadlock due to a LOR so we will spin if we
+ * can't obtain the both locks.
+ */
+ again:
LOCK_ZONE(zone);
+ if (inline_raw(zone)) {
+ secure = zone->secure;
+ INSIST(secure != zone);
+ TRYLOCK_ZONE(result, secure);
+ if (result != ISC_R_SUCCESS) {
+ UNLOCK_ZONE(zone);
+ secure = NULL;
+#if ISC_PLATFORM_USETHREADS
+ isc_thread_yield();
+#endif
+ goto again;
+ }
+ }
+
INSIST((zone->flags & DNS_ZONEFLG_REFRESH) != 0);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_REFRESH);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_SOABEFOREAXFR);
@@ -13349,7 +13778,7 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
"transferred serial %u%s",
serial, buf);
if (inline_raw(zone))
- zone_send_secureserial(zone, ISC_FALSE, serial);
+ zone_send_secureserial(zone, serial);
}
/*
@@ -13461,17 +13890,22 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_NEEDCOMPACT);
}
+ if (secure != NULL)
+ UNLOCK_ZONE(secure);
/*
* This transfer finishing freed up a transfer quota slot.
* Let any other zones waiting for quota have it.
*/
- UNLOCK_ZONE(zone);
- RWLOCK(&zone->zmgr->rwlock, isc_rwlocktype_write);
- ISC_LIST_UNLINK(zone->zmgr->xfrin_in_progress, zone, statelink);
- zone->statelist = NULL;
- zmgr_resume_xfrs(zone->zmgr, ISC_FALSE);
- RWUNLOCK(&zone->zmgr->rwlock, isc_rwlocktype_write);
- LOCK_ZONE(zone);
+ if (zone->zmgr != NULL &&
+ zone->statelist == &zone->zmgr->xfrin_in_progress) {
+ UNLOCK_ZONE(zone);
+ RWLOCK(&zone->zmgr->rwlock, isc_rwlocktype_write);
+ ISC_LIST_UNLINK(zone->zmgr->xfrin_in_progress, zone, statelink);
+ zone->statelist = NULL;
+ zmgr_resume_xfrs(zone->zmgr, ISC_FALSE);
+ RWUNLOCK(&zone->zmgr->rwlock, isc_rwlocktype_write);
+ LOCK_ZONE(zone);
+ }
/*
* Retry with a different server if necessary.
@@ -13493,6 +13927,7 @@ zone_loaddone(void *arg, isc_result_t result) {
dns_load_t *load = arg;
dns_zone_t *zone;
isc_result_t tresult;
+ dns_zone_t *secure = NULL;
REQUIRE(DNS_LOAD_VALID(load));
zone = load->zone;
@@ -13507,9 +13942,22 @@ zone_loaddone(void *arg, isc_result_t result) {
/*
* Lock hierarchy: zmgr, zone, raw.
*/
+ again:
LOCK_ZONE(zone);
if (inline_secure(zone))
LOCK_ZONE(zone->raw);
+ else if (inline_raw(zone)) {
+ secure = zone->secure;
+ TRYLOCK_ZONE(result, secure);
+ if (result != ISC_R_SUCCESS) {
+ UNLOCK_ZONE(zone);
+ secure = NULL;
+#if ISC_PLATFORM_USETHREADS
+ isc_thread_yield();
+#endif
+ goto again;
+ }
+ }
(void)zone_postload(zone, load->db, load->loadtime, result);
zonemgr_putio(&zone->readio);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_LOADING);
@@ -13523,6 +13971,8 @@ zone_loaddone(void *arg, isc_result_t result) {
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_THAW);
if (inline_secure(zone))
UNLOCK_ZONE(zone->raw);
+ else if (secure != NULL)
+ UNLOCK_ZONE(secure);
UNLOCK_ZONE(zone);
load->magic = 0;
@@ -13573,9 +14023,18 @@ dns_zone_getsigvalidityinterval(dns_zone_t *zone) {
void
dns_zone_setsigresigninginterval(dns_zone_t *zone, isc_uint32_t interval) {
+ isc_time_t now;
+
REQUIRE(DNS_ZONE_VALID(zone));
+ LOCK_ZONE(zone);
zone->sigresigninginterval = interval;
+ set_resigntime(zone);
+ if (zone->task != NULL) {
+ TIME_NOW(&now);
+ zone_settimer(zone, &now);
+ }
+ UNLOCK_ZONE(zone);
}
isc_uint32_t
@@ -13632,6 +14091,7 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
isc_sockaddr_t masteraddr;
isc_time_t now;
const char *soa_before = "";
+ isc_boolean_t loaded;
UNUSED(task);
@@ -13665,7 +14125,11 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
/*
* Decide whether we should request IXFR or AXFR.
*/
- if (zone->db == NULL) {
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ loaded = ISC_TF(zone->db != NULL);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+
+ if (!loaded) {
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"no database exists yet, requesting AXFR of "
"initial version from %s", master);
@@ -13885,8 +14349,18 @@ forward_callback(isc_task_t *task, isc_event_t *event) {
case dns_rcode_yxrrset:
case dns_rcode_nxrrset:
case dns_rcode_refused:
- case dns_rcode_nxdomain:
+ case dns_rcode_nxdomain: {
+ char rcode[128];
+ isc_buffer_t rb;
+
+ isc_buffer_init(&rb, rcode, sizeof(rcode));
+ (void)dns_rcode_totext(msg->rcode, &rb);
+ dns_zone_log(zone, ISC_LOG_INFO,
+ "forwarded dynamic update: "
+ "master %s returned: %.*s",
+ master, (int)rb.used, rcode);
break;
+ }
/* These should not occur if the masters/zone are valid. */
case dns_rcode_notzone:
@@ -14036,7 +14510,8 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
zmgr->loadtasks = NULL;
zmgr->mctxpool = NULL;
zmgr->task = NULL;
- zmgr->rl = NULL;
+ zmgr->notifyrl = NULL;
+ zmgr->refreshrl = NULL;
ISC_LIST_INIT(zmgr->zones);
ISC_LIST_INIT(zmgr->waiting_for_xfrin);
ISC_LIST_INIT(zmgr->xfrin_in_progress);
@@ -14060,15 +14535,24 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
isc_task_setname(zmgr->task, "zmgr", zmgr);
result = isc_ratelimiter_create(mctx, timermgr, zmgr->task,
- &zmgr->rl);
+ &zmgr->notifyrl);
if (result != ISC_R_SUCCESS)
goto free_task;
+ result = isc_ratelimiter_create(mctx, timermgr, zmgr->task,
+ &zmgr->refreshrl);
+ if (result != ISC_R_SUCCESS)
+ goto free_notifyrl;
+
/* default to 20 refresh queries / notifies per second. */
isc_interval_set(&interval, 0, 1000000000/2);
- result = isc_ratelimiter_setinterval(zmgr->rl, &interval);
+ result = isc_ratelimiter_setinterval(zmgr->notifyrl, &interval);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
- isc_ratelimiter_setpertic(zmgr->rl, 10);
+ isc_ratelimiter_setpertic(zmgr->notifyrl, 10);
+
+ result = isc_ratelimiter_setinterval(zmgr->refreshrl, &interval);
+ RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ isc_ratelimiter_setpertic(zmgr->refreshrl, 10);
zmgr->iolimit = 1;
zmgr->ioactive = 0;
@@ -14077,7 +14561,7 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
result = isc_mutex_init(&zmgr->iolock);
if (result != ISC_R_SUCCESS)
- goto free_rl;
+ goto free_refreshrl;
zmgr->magic = ZONEMGR_MAGIC;
@@ -14088,8 +14572,10 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
free_iolock:
DESTROYLOCK(&zmgr->iolock);
#endif
- free_rl:
- isc_ratelimiter_detach(&zmgr->rl);
+ free_refreshrl:
+ isc_ratelimiter_detach(&zmgr->refreshrl);
+ free_notifyrl:
+ isc_ratelimiter_detach(&zmgr->notifyrl);
free_task:
isc_task_detach(&zmgr->task);
free_urlock:
@@ -14287,7 +14773,8 @@ dns_zonemgr_shutdown(dns_zonemgr_t *zmgr) {
REQUIRE(DNS_ZONEMGR_VALID(zmgr));
- isc_ratelimiter_shutdown(zmgr->rl);
+ isc_ratelimiter_shutdown(zmgr->notifyrl);
+ isc_ratelimiter_shutdown(zmgr->refreshrl);
if (zmgr->task != NULL)
isc_task_destroy(&zmgr->task);
@@ -14419,7 +14906,8 @@ zonemgr_free(dns_zonemgr_t *zmgr) {
zmgr->magic = 0;
DESTROYLOCK(&zmgr->iolock);
- isc_ratelimiter_detach(&zmgr->rl);
+ isc_ratelimiter_detach(&zmgr->notifyrl);
+ isc_ratelimiter_detach(&zmgr->refreshrl);
isc_rwlock_destroy(&zmgr->urlock);
isc_rwlock_destroy(&zmgr->rwlock);
@@ -14809,9 +15297,14 @@ dns_zonemgr_setserialqueryrate(dns_zonemgr_t *zmgr, unsigned int value) {
}
isc_interval_set(&interval, s, ns);
- result = isc_ratelimiter_setinterval(zmgr->rl, &interval);
+
+ result = isc_ratelimiter_setinterval(zmgr->notifyrl, &interval);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
- isc_ratelimiter_setpertic(zmgr->rl, pertic);
+ isc_ratelimiter_setpertic(zmgr->notifyrl, pertic);
+
+ result = isc_ratelimiter_setinterval(zmgr->refreshrl, &interval);
+ RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ isc_ratelimiter_setpertic(zmgr->refreshrl, pertic);
zmgr->serialqueryrate = value;
}
@@ -14831,6 +15324,7 @@ dns_zonemgr_unreachable(dns_zonemgr_t *zmgr, isc_sockaddr_t *remote,
isc_rwlocktype_t locktype;
isc_result_t result;
isc_uint32_t seconds = isc_time_seconds(now);
+ isc_uint32_t count = 0;
REQUIRE(DNS_ZONEMGR_VALID(zmgr));
@@ -14844,12 +15338,13 @@ dns_zonemgr_unreachable(dns_zonemgr_t *zmgr, isc_sockaddr_t *remote,
if (result == ISC_R_SUCCESS) {
locktype = isc_rwlocktype_write;
zmgr->unreachable[i].last = seconds;
+ count = zmgr->unreachable[i].count;
}
break;
}
}
RWUNLOCK(&zmgr->urlock, locktype);
- return (ISC_TF(i < UNREACH_CHACHE_SIZE));
+ return (ISC_TF(i < UNREACH_CHACHE_SIZE && count > 1U));
}
void
@@ -14923,6 +15418,10 @@ dns_zonemgr_unreachableadd(dns_zonemgr_t *zmgr, isc_sockaddr_t *remote,
*/
zmgr->unreachable[i].expire = seconds + UNREACH_HOLD_TIME;
zmgr->unreachable[i].last = seconds;
+ if (zmgr->unreachable[i].expire < seconds)
+ zmgr->unreachable[i].count = 1;
+ else
+ zmgr->unreachable[i].count++;
} else if (slot != UNREACH_CHACHE_SIZE) {
/*
* Found a empty slot. Add a new entry to the cache.
@@ -14931,6 +15430,7 @@ dns_zonemgr_unreachableadd(dns_zonemgr_t *zmgr, isc_sockaddr_t *remote,
zmgr->unreachable[slot].last = seconds;
zmgr->unreachable[slot].remote = *remote;
zmgr->unreachable[slot].local = *local;
+ zmgr->unreachable[slot].count = 1;
} else {
/*
* Replace the least recently used entry in the cache.
@@ -14939,6 +15439,7 @@ dns_zonemgr_unreachableadd(dns_zonemgr_t *zmgr, isc_sockaddr_t *remote,
zmgr->unreachable[oldest].last = seconds;
zmgr->unreachable[oldest].remote = *remote;
zmgr->unreachable[oldest].local = *local;
+ zmgr->unreachable[oldest].count = 1;
}
RWUNLOCK(&zmgr->urlock, isc_rwlocktype_write);
}
@@ -15358,6 +15859,7 @@ zone_signwithkey(dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid,
dns_signing_t *current;
isc_result_t result = ISC_R_SUCCESS;
isc_time_t now;
+ dns_db_t *db = NULL;
signing = isc_mem_get(zone->mctx, sizeof *signing);
if (signing == NULL)
@@ -15373,10 +15875,22 @@ zone_signwithkey(dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid,
TIME_NOW(&now);
+ ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
+ if (zone->db != NULL)
+ dns_db_attach(zone->db, &db);
+ ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read);
+
+ if (db == NULL) {
+ result = ISC_R_NOTFOUND;
+ goto cleanup;
+ }
+
+ dns_db_attach(db, &signing->db);
+
for (current = ISC_LIST_HEAD(zone->signing);
current != NULL;
current = ISC_LIST_NEXT(current, link)) {
- if (current->db == zone->db &&
+ if (current->db == signing->db &&
current->algorithm == signing->algorithm &&
current->keyid == signing->keyid) {
if (current->delete != signing->delete)
@@ -15386,25 +15900,21 @@ zone_signwithkey(dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid,
}
}
- if (zone->db != NULL) {
- dns_db_attach(zone->db, &signing->db);
- result = dns_db_createiterator(signing->db, 0,
- &signing->dbiterator);
+ result = dns_db_createiterator(signing->db, 0,
+ &signing->dbiterator);
- if (result == ISC_R_SUCCESS)
- result = dns_dbiterator_first(signing->dbiterator);
- if (result == ISC_R_SUCCESS) {
- dns_dbiterator_pause(signing->dbiterator);
- ISC_LIST_INITANDAPPEND(zone->signing, signing, link);
- signing = NULL;
- if (isc_time_isepoch(&zone->signingtime)) {
- zone->signingtime = now;
- if (zone->task != NULL)
- zone_settimer(zone, &now);
- }
+ if (result == ISC_R_SUCCESS)
+ result = dns_dbiterator_first(signing->dbiterator);
+ if (result == ISC_R_SUCCESS) {
+ dns_dbiterator_pause(signing->dbiterator);
+ ISC_LIST_INITANDAPPEND(zone->signing, signing, link);
+ signing = NULL;
+ if (isc_time_isepoch(&zone->signingtime)) {
+ zone->signingtime = now;
+ if (zone->task != NULL)
+ zone_settimer(zone, &now);
}
- } else
- result = ISC_R_NOTFOUND;
+ }
cleanup:
if (signing != NULL) {
@@ -15414,6 +15924,8 @@ zone_signwithkey(dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid,
dns_dbiterator_destroy(&signing->dbiterator);
isc_mem_put(zone->mctx, signing, sizeof *signing);
}
+ if (db != NULL)
+ dns_db_detach(&db);
return (result);
}
@@ -15822,7 +16334,6 @@ zone_rekey(dns_zone_t *zone) {
mctx = zone->mctx;
dns_diff_init(mctx, &diff);
dns_diff_init(mctx, &_sig_diff);
- _sig_diff.resign = zone->sigresigninginterval;
zonediff_init(&zonediff, &_sig_diff);
CHECK(dns_zone_getdb(zone, &db));
@@ -16182,18 +16693,34 @@ dns_zone_dlzpostload(dns_zone_t *zone, dns_db_t *db)
{
isc_time_t loadtime;
isc_result_t result;
+ dns_zone_t *secure = NULL;
TIME_NOW(&loadtime);
/*
* Lock hierarchy: zmgr, zone, raw.
*/
+ again:
LOCK_ZONE(zone);
if (inline_secure(zone))
LOCK_ZONE(zone->raw);
+ else if (inline_raw(zone)) {
+ secure = zone->secure;
+ TRYLOCK_ZONE(result, secure);
+ if (result != ISC_R_SUCCESS) {
+ UNLOCK_ZONE(zone);
+ secure = NULL;
+#if ISC_PLATFORM_USETHREADS
+ isc_thread_yield();
+#endif
+ goto again;
+ }
+ }
result = zone_postload(zone, db, loadtime, ISC_R_SUCCESS);
if (inline_secure(zone))
UNLOCK_ZONE(zone->raw);
+ else if (secure != NULL)
+ UNLOCK_ZONE(secure);
UNLOCK_ZONE(zone);
return result;
}
@@ -16504,14 +17031,6 @@ dns_zone_keydone(dns_zone_t *zone, const char *keystr) {
return (result);
}
-struct nsec3param {
- isc_event_t event;
- unsigned char data[DNS_NSEC3PARAM_BUFFERSIZE + 1];
- unsigned int length;
- isc_boolean_t nsec;
- isc_boolean_t replace;
-};
-
static void
setnsec3param(isc_task_t *task, isc_event_t *event) {
const char *me = "setnsec3param";
@@ -16523,7 +17042,8 @@ setnsec3param(isc_task_t *task, isc_event_t *event) {
dns_dbnode_t *node = NULL;
dns_rdataset_t prdataset, nrdataset;
dns_diff_t diff;
- struct nsec3param *np = (struct nsec3param *)event;
+ struct np3event *npe = (struct np3event *)event;
+ nsec3param_t *np;
dns_update_log_t log = { update_log_cb, NULL };
dns_rdata_t rdata;
isc_boolean_t nseconly;
@@ -16536,6 +17056,8 @@ setnsec3param(isc_task_t *task, isc_event_t *event) {
ENTER;
+ np = &npe->params;
+
dns_rdataset_init(&prdataset);
dns_rdataset_init(&nrdataset);
dns_diff_init(zone->mctx, &diff);
@@ -16687,7 +17209,8 @@ dns_zone_setnsec3param(dns_zone_t *zone, isc_uint8_t hash, isc_uint8_t flags,
dns_rdata_t nrdata = DNS_RDATA_INIT;
dns_rdata_t prdata = DNS_RDATA_INIT;
unsigned char nbuf[DNS_NSEC3PARAM_BUFFERSIZE];
- struct nsec3param *np;
+ struct np3event *npe;
+ nsec3param_t *np;
dns_zone_t *dummy = NULL;
isc_buffer_t b;
isc_event_t *e;
@@ -16698,13 +17221,15 @@ dns_zone_setnsec3param(dns_zone_t *zone, isc_uint8_t hash, isc_uint8_t flags,
LOCK_ZONE(zone);
e = isc_event_allocate(zone->mctx, zone, DNS_EVENT_SETNSEC3PARAM,
- setnsec3param, zone, sizeof(struct nsec3param));
+ setnsec3param, zone, sizeof(struct np3event));
if (e == NULL) {
result = ISC_R_NOMEMORY;
goto failure;
}
- np = (struct nsec3param *) e;
+ npe = (struct np3event *) e;
+ np = &npe->params;
+
np->replace = replace;
if (hash == 0) {
np->length = 0;
diff --git a/lib/export/isc/Makefile.in b/lib/export/isc/Makefile.in
index c04a9073dcc3..a92f66f30a98 100644
--- a/lib/export/isc/Makefile.in
+++ b/lib/export/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009, 2010, 2012-2014 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
@@ -70,9 +70,10 @@ OBJS = @ISC_EXTRA_OBJS@ \
md5.@O@ mutexblock.@O@ netaddr.@O@ netscope.@O@ \
ondestroy.@O@ parseint.@O@ portset.@O@ radix.@O@ \
random.@O@ refcount.@O@ region.@O@ regex.@O@ result.@O@ \
- rwlock.@O@ serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ \
- stats.@O@ string.@O@ \
+ rwlock.@O@ safe.@O@ serial.@O@ sha1.@O@ sha2.@O@ \
+ sockaddr.@O@ stats.@O@ string.@O@ \
symtab.@O@ \
+ tm.@O@ \
version.@O@ \
${APIOBJS} ${ISCDRIVEROBJS} \
${UNIXOBJS} ${NLSOBJS} ${THREADOBJS}
@@ -94,7 +95,9 @@ SRCS = @ISC_EXTRA_SRCS@ \
ondestroy.c \
parseint.c portset.c radix.c \
random.c refcount.c region.c regex.c result.c rwlock.c \
- serial.c sha1.c sha2.c sockaddr.c stats.c string.c symtab.c \
+ safe.c serial.c sha1.c sha2.c sockaddr.c \
+ stats.c string.c symtab.c \
+ tm.c \
version.c \
${APISRCS} ${ISCDRIVERSRCS}
diff --git a/lib/export/samples/nsprobe.c b/lib/export/samples/nsprobe.c
index 1d7ed3b4c9d1..795b1ca4fb47 100644
--- a/lib/export/samples/nsprobe.c
+++ b/lib/export/samples/nsprobe.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009-2014 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
@@ -1101,7 +1101,7 @@ main(int argc, char *argv[]) {
(long)res->ai_addrlen);
exit(1);
}
- memcpy(&sa.type.sa, res->ai_addr, res->ai_addrlen);
+ memmove(&sa.type.sa, res->ai_addr, res->ai_addrlen);
sa.length = res->ai_addrlen;
freeaddrinfo(res);
ISC_LINK_INIT(&sa, link);
diff --git a/lib/export/samples/sample-request.c b/lib/export/samples/sample-request.c
index 07baf3950785..8d36a2cebde4 100644
--- a/lib/export/samples/sample-request.c
+++ b/lib/export/samples/sample-request.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012-2014 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
@@ -221,7 +221,7 @@ main(int argc, char *argv[]) {
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa.type));
- memcpy(&sa.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa.type, res->ai_addr, res->ai_addrlen);
freeaddrinfo(res);
sa.length = res->ai_addrlen;
ISC_LINK_INIT(&sa, link);
diff --git a/lib/export/samples/sample-update.c b/lib/export/samples/sample-update.c
index 2c35baa6e2a8..758e02eb33fa 100644
--- a/lib/export/samples/sample-update.c
+++ b/lib/export/samples/sample-update.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2010, 2012-2014 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
@@ -188,7 +188,7 @@ main(int argc, char *argv[]) {
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa_auth.type));
- memcpy(&sa_auth.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa_auth.type, res->ai_addr, res->ai_addrlen);
freeaddrinfo(res);
sa_auth.length = res->ai_addrlen;
ISC_LINK_INIT(&sa_auth, link);
@@ -210,7 +210,7 @@ main(int argc, char *argv[]) {
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa_recursive.type));
- memcpy(&sa_recursive.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa_recursive.type, res->ai_addr, res->ai_addrlen);
freeaddrinfo(res);
sa_recursive.length = res->ai_addrlen;
ISC_LINK_INIT(&sa_recursive, link);
diff --git a/lib/export/samples/sample.c b/lib/export/samples/sample.c
index b121a0db4480..7de9a8f1e9da 100644
--- a/lib/export/samples/sample.c
+++ b/lib/export/samples/sample.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012-2014 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
@@ -197,7 +197,7 @@ addserver(dns_client_t *client, const char *addrstr, const char *port,
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa.type));
- memcpy(&sa.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa.type, res->ai_addr, res->ai_addrlen);
sa.length = res->ai_addrlen;
freeaddrinfo(res);
ISC_LINK_INIT(&sa, link);
diff --git a/lib/irs/Makefile.in b/lib/irs/Makefile.in
index d3c47b0137aa..c59af263fe4b 100644
--- a/lib/irs/Makefile.in
+++ b/lib/irs/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009, 2012, 2014 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
@@ -39,7 +39,7 @@ OBJS = context.@O@ \
# Alphabetically
SRCS = context.c \
dnsconf.c \
- gai_sterror.c getaddrinfo.c getnameinfo.c \
+ gai_strerror.c getaddrinfo.c getnameinfo.c \
resconf.c
LIBS = @LIBS@
diff --git a/lib/irs/api b/lib/irs/api
index 298e96a8abc9..3f5a2a3b1693 100644
--- a/lib/irs/api
+++ b/lib/irs/api
@@ -4,6 +4,6 @@
# 9.8: 80-89, 120-129
# 9.9: 90-109
# 9.9-sub: 130-139
-LIBINTERFACE = 90
-LIBREVISION = 1
+LIBINTERFACE = 91
+LIBREVISION = 0
LIBAGE = 0
diff --git a/lib/irs/getaddrinfo.c b/lib/irs/getaddrinfo.c
index 1de540f2962e..24d35bf691d9 100644
--- a/lib/irs/getaddrinfo.c
+++ b/lib/irs/getaddrinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012-2014 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
@@ -409,7 +409,7 @@ getaddrinfo(const char *hostname, const char *servname,
* Convert to a V4 mapped address.
*/
struct in6_addr *a6 = (struct in6_addr *)abuf;
- memcpy(&a6->s6_addr[12], &a6->s6_addr[0], 4);
+ memmove(&a6->s6_addr[12], &a6->s6_addr[0], 4);
memset(&a6->s6_addr[10], 0xff, 2);
memset(&a6->s6_addr[0], 0, 10);
goto inet6_addr;
@@ -446,7 +446,7 @@ getaddrinfo(const char *hostname, const char *servname,
ai_list = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy((char *)ai->ai_addr + addroff, abuf, addrsize);
+ memmove((char *)ai->ai_addr + addroff, abuf, addrsize);
if ((flags & AI_CANONNAME) != 0) {
#ifdef IRS_HAVE_SIN6_SCOPE_ID
if (ai->ai_family == AF_INET6)
@@ -789,8 +789,8 @@ process_answer(isc_task_t *task, isc_event_t *event) {
RUNTIME_CHECK(result == ISC_R_SUCCESS);
SIN(ai->ai_addr)->sin_port =
resstate->head->ai_port;
- memcpy(&SIN(ai->ai_addr)->sin_addr,
- &rdata_a.in_addr, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr,
+ &rdata_a.in_addr, 4);
dns_rdata_freestruct(&rdata_a);
break;
case AF_INET6:
@@ -800,8 +800,8 @@ process_answer(isc_task_t *task, isc_event_t *event) {
RUNTIME_CHECK(result == ISC_R_SUCCESS);
SIN6(ai->ai_addr)->sin6_port =
resstate->head->ai_port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr,
- &rdata_aaaa.in6_addr, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr,
+ &rdata_aaaa.in6_addr, 16);
dns_rdata_freestruct(&rdata_aaaa);
break;
}
@@ -1130,7 +1130,7 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
return (0);
}
@@ -1153,7 +1153,7 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN6(ai->ai_addr)->sin6_port = port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
return (0);
}
diff --git a/lib/irs/include/irs/Makefile.in b/lib/irs/include/irs/Makefile.in
index 63e7fd6be63f..eca98eb13671 100644
--- a/lib/irs/include/irs/Makefile.in
+++ b/lib/irs/include/irs/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009, 2012, 2014 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
@@ -39,6 +39,8 @@ install:: installdirs
done
${INSTALL_DATA} netdb.h ${DESTDIR}${includedir}/irs
${INSTALL_DATA} platform.h ${DESTDIR}${includedir}/irs
+ ${INSTALL_DATA} resconf.h ${DESTDIR}${includedir}/irs
+ ${INSTALL_DATA} types.h ${DESTDIR}${includedir}/irs
distclean::
rm -f netdb.h platform.h
diff --git a/lib/irs/include/irs/resconf.h b/lib/irs/include/irs/resconf.h
index 78c87d51660d..dec110ad30fb 100644
--- a/lib/irs/include/irs/resconf.h
+++ b/lib/irs/include/irs/resconf.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2014 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
@@ -46,7 +46,12 @@ isc_result_t
irs_resconf_load(isc_mem_t *mctx, const char *filename, irs_resconf_t **confp);
/*%<
* Load the resolver configuration file 'filename' in the "resolv.conf" format,
- * and create a new irs_resconf_t object from the configuration.
+ * and create a new irs_resconf_t object from the configuration. If the file
+ * is not found ISC_R_FILENOTFOUND is returned with the structure initialized
+ * as if file contained only:
+ *
+ * nameserver ::1
+ * nameserver 127.0.0.1
*
* Notes:
*
@@ -55,6 +60,11 @@ irs_resconf_load(isc_mem_t *mctx, const char *filename, irs_resconf_t **confp);
* In addition, 'sortlist' is not actually effective; it's parsed, but
* the application cannot use the configuration.
*
+ * Returns:
+ * \li ISC_R_SUCCESS on success
+ * \li ISC_R_FILENOTFOUND if the file was not found. *confp will be valid.
+ * \li other on error.
+ *
* Requires:
*
*\li 'mctx' is a valid memory context.
diff --git a/lib/irs/resconf.c b/lib/irs/resconf.c
index 88bdac1641d5..cb2400795549 100644
--- a/lib/irs/resconf.c
+++ b/lib/irs/resconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011, 2012, 2014 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
@@ -224,7 +224,7 @@ add_server(isc_mem_t *mctx, const char *address_str,
v4 = &((struct sockaddr_in *)res->ai_addr)->sin_addr;
if (memcmp(v4, zeroaddress, 4) == 0)
- memcpy(v4, loopaddress, 4);
+ memmove(v4, loopaddress, 4);
}
address = isc_mem_get(mctx, sizeof(*address));
@@ -238,7 +238,7 @@ add_server(isc_mem_t *mctx, const char *address_str,
goto cleanup;
}
address->length = res->ai_addrlen;
- memcpy(&address->type.ss, res->ai_addr, res->ai_addrlen);
+ memmove(&address->type.ss, res->ai_addr, res->ai_addrlen);
ISC_LINK_INIT(address, link);
ISC_LIST_APPEND(*nameservers, address, link);
@@ -258,14 +258,14 @@ create_addr(const char *buffer, isc_netaddr_t *addr, int convert_zero) {
unsigned char zeroaddress[] = {0, 0, 0, 0};
unsigned char loopaddress[] = {127, 0, 0, 1};
if (memcmp(&v4, zeroaddress, 4) == 0)
- memcpy(&v4, loopaddress, 4);
+ memmove(&v4, loopaddress, 4);
}
addr->family = AF_INET;
- memcpy(&addr->type.in, &v4, NS_INADDRSZ);
+ memmove(&addr->type.in, &v4, NS_INADDRSZ);
addr->zone = 0;
} else if (inet_pton(AF_INET6, buffer, &v6) == 1) {
addr->family = AF_INET6;
- memcpy(&addr->type.in6, &v6, NS_IN6ADDRSZ);
+ memmove(&addr->type.in6, &v6, NS_IN6ADDRSZ);
addr->zone = 0;
} else
return (ISC_R_BADADDRESSFORM); /* Unrecognised format. */
@@ -483,7 +483,7 @@ irs_resconf_load(isc_mem_t *mctx, const char *filename, irs_resconf_t **confp)
{
FILE *fp = NULL;
char word[256];
- isc_result_t rval, ret;
+ isc_result_t rval, ret = ISC_R_SUCCESS;
irs_resconf_t *conf;
int i, stopchar;
@@ -507,45 +507,49 @@ irs_resconf_load(isc_mem_t *mctx, const char *filename, irs_resconf_t **confp)
conf->search[i] = NULL;
errno = 0;
- if ((fp = fopen(filename, "r")) == NULL) {
- isc_mem_put(mctx, conf, sizeof(*conf));
- return (ISC_R_INVALIDFILE);
- }
-
- ret = ISC_R_SUCCESS;
- do {
- stopchar = getword(fp, word, sizeof(word));
- if (stopchar == EOF) {
- rval = ISC_R_SUCCESS;
- POST(rval);
- break;
- }
-
- if (strlen(word) == 0U)
- rval = ISC_R_SUCCESS;
- else if (strcmp(word, "nameserver") == 0)
- rval = resconf_parsenameserver(conf, fp);
- else if (strcmp(word, "domain") == 0)
- rval = resconf_parsedomain(conf, fp);
- else if (strcmp(word, "search") == 0)
- rval = resconf_parsesearch(conf, fp);
- else if (strcmp(word, "sortlist") == 0)
- rval = resconf_parsesortlist(conf, fp);
- else if (strcmp(word, "options") == 0)
- rval = resconf_parseoption(conf, fp);
- else {
- /* unrecognised word. Ignore entire line */
- rval = ISC_R_SUCCESS;
- stopchar = eatline(fp);
+ if ((fp = fopen(filename, "r")) != NULL) {
+ do {
+ stopchar = getword(fp, word, sizeof(word));
if (stopchar == EOF) {
+ rval = ISC_R_SUCCESS;
+ POST(rval);
break;
}
- }
- if (ret == ISC_R_SUCCESS && rval != ISC_R_SUCCESS)
- ret = rval;
- } while (1);
- fclose(fp);
+ if (strlen(word) == 0U)
+ rval = ISC_R_SUCCESS;
+ else if (strcmp(word, "nameserver") == 0)
+ rval = resconf_parsenameserver(conf, fp);
+ else if (strcmp(word, "domain") == 0)
+ rval = resconf_parsedomain(conf, fp);
+ else if (strcmp(word, "search") == 0)
+ rval = resconf_parsesearch(conf, fp);
+ else if (strcmp(word, "sortlist") == 0)
+ rval = resconf_parsesortlist(conf, fp);
+ else if (strcmp(word, "options") == 0)
+ rval = resconf_parseoption(conf, fp);
+ else {
+ /* unrecognised word. Ignore entire line */
+ rval = ISC_R_SUCCESS;
+ stopchar = eatline(fp);
+ if (stopchar == EOF) {
+ break;
+ }
+ }
+ if (ret == ISC_R_SUCCESS && rval != ISC_R_SUCCESS)
+ ret = rval;
+ } while (1);
+
+ fclose(fp);
+ } else {
+ switch (errno) {
+ case ENOENT:
+ break;
+ default:
+ isc_mem_put(mctx, conf, sizeof(*conf));
+ return (ISC_R_INVALIDFILE);
+ }
+ }
/* If we don't find a nameserver fall back to localhost */
if (conf->numns == 0) {
@@ -575,8 +579,11 @@ irs_resconf_load(isc_mem_t *mctx, const char *filename, irs_resconf_t **confp)
if (ret != ISC_R_SUCCESS)
irs_resconf_destroy(&conf);
- else
+ else {
+ if (fp == NULL)
+ ret = ISC_R_FILENOTFOUND;
*confp = conf;
+ }
return (ret);
}
diff --git a/lib/isc/Makefile.in b/lib/isc/Makefile.in
index e68290cd2975..f513eb97ff9e 100644
--- a/lib/isc/Makefile.in
+++ b/lib/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -62,9 +62,10 @@ OBJS = @ISC_EXTRA_OBJS@ \
parseint.@O@ portset.@O@ quota.@O@ radix.@O@ random.@O@ \
ratelimiter.@O@ refcount.@O@ region.@O@ regex.@O@ result.@O@ \
rwlock.@O@ \
- serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ stats.@O@ \
+ safe.@O@ serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ stats.@O@ \
string.@O@ strtoul.@O@ symtab.@O@ task.@O@ taskpool.@O@ \
- timer.@O@ version.@O@ ${UNIXOBJS} ${NLSOBJS} ${THREADOBJS}
+ tm.@O@ timer.@O@ version.@O@ \
+ ${UNIXOBJS} ${NLSOBJS} ${THREADOBJS}
SYMTBLOBJS = backtrace-emptytbl.@O@
# Alphabetically
@@ -78,8 +79,9 @@ SRCS = @ISC_EXTRA_SRCS@ \
netaddr.c netscope.c pool.c ondestroy.c \
parseint.c portset.c quota.c radix.c random.c \
ratelimiter.c refcount.c region.c regex.c result.c rwlock.c \
- serial.c sha1.c sha2.c sockaddr.c stats.c string.c strtoul.c \
- symtab.c symtbl-empty.c task.c taskpool.c timer.c version.c
+ safe.c serial.c sha1.c sha2.c sockaddr.c stats.c string.c \
+ strtoul.c symtab.c task.c taskpool.c timer.c \
+ tm.c version.c
LIBS = @LIBS@
@@ -93,6 +95,10 @@ TESTDIRS = @UNITTESTS@
@BIND9_MAKE_RULES@
+safe.@O@: safe.c
+ ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} @CCNOOPT@ \
+ -c ${srcdir}/safe.c
+
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
diff --git a/lib/isc/api b/lib/isc/api
index 48bc766d9378..a1fe77ff05b6 100644
--- a/lib/isc/api
+++ b/lib/isc/api
@@ -4,6 +4,6 @@
# 9.8: 80-89, 120-129
# 9.9: 90-109
# 9.9-sub: 130-139
-LIBINTERFACE = 95
-LIBREVISION = 1
-LIBAGE = 0
+LIBINTERFACE = 100
+LIBREVISION = 0
+LIBAGE = 5
diff --git a/lib/isc/app_api.c b/lib/isc/app_api.c
index ce767d175053..709f2f258a4f 100644
--- a/lib/isc/app_api.c
+++ b/lib/isc/app_api.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2013 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
@@ -91,6 +91,16 @@ isc_app_ctxrun(isc_appctx_t *ctx) {
}
isc_result_t
+isc_app_ctxonrun(isc_appctx_t *ctx, isc_mem_t *mctx,
+ isc_task_t *task, isc_taskaction_t action,
+ void *arg)
+{
+ REQUIRE(ISCAPI_APPCTX_VALID(ctx));
+
+ return (ctx->methods->ctxonrun(ctx, mctx, task, action, arg));
+}
+
+isc_result_t
isc_app_ctxsuspend(isc_appctx_t *ctx) {
REQUIRE(ISCAPI_APPCTX_VALID(ctx));
diff --git a/lib/isc/backtrace.c b/lib/isc/backtrace.c
index d2f044cb8c4c..a5b1a0fdba7e 100644
--- a/lib/isc/backtrace.c
+++ b/lib/isc/backtrace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2013 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
@@ -51,6 +51,8 @@
#define BACKTRACE_LIBC
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__ia64__))
#define BACKTRACE_GCC
+#elif defined(WIN32)
+#define BACKTRACE_WIN32
#elif defined(__x86_64__) || defined(__i386__)
#define BACKTRACE_X86STACK
#else
@@ -127,6 +129,14 @@ isc_backtrace_gettrace(void **addrs, int maxaddrs, int *nframes) {
return (ISC_R_SUCCESS);
}
+#elif defined(BACKTRACE_WIN32)
+isc_result_t
+isc_backtrace_gettrace(void **addrs, int maxaddrs, int *nframes) {
+ unsigned long ftc = (unsigned long)maxaddrs;
+
+ *nframes = (int)CaptureStackBackTrace(1, ftc, addrs, NULL);
+ return ISC_R_SUCCESS;
+}
#elif defined(BACKTRACE_X86STACK)
#ifdef __x86_64__
static unsigned long
@@ -278,7 +288,8 @@ isc_backtrace_getsymbol(const void *addr, const char **symbolp,
result = ISC_R_NOTFOUND;
else {
*symbolp = found->symbol;
- *offsetp = (const char *)addr - (char *)found->addr;
+ *offsetp = (unsigned long) ((const char *)addr -
+ (char *)found->addr);
}
return (result);
diff --git a/lib/isc/base32.c b/lib/isc/base32.c
index d25e3c4716bb..ad0b0da569e1 100644
--- a/lib/isc/base32.c
+++ b/lib/isc/base32.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008, 2009, 2013, 2014 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
@@ -166,7 +166,7 @@ base32_decode_char(base32_decode_ctx_t *ctx, int c) {
return (ISC_R_BADBASE32);
if ((s = strchr(ctx->base, c)) == NULL)
return (ISC_R_BADBASE32);
- last = s - ctx->base;
+ last = (unsigned int)(s - ctx->base);
/*
* Handle lower case.
*/
@@ -355,7 +355,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -367,7 +367,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/base64.c b/lib/isc/base64.c
index bad1565bea7b..6b4cb1bf7c63 100644
--- a/lib/isc/base64.c
+++ b/lib/isc/base64.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -124,7 +124,7 @@ base64_decode_char(base64_decode_ctx_t *ctx, int c) {
return (ISC_R_BADBASE64);
if ((s = strchr(base64, c)) == NULL)
return (ISC_R_BADBASE64);
- ctx->val[ctx->digits++] = s - base64;
+ ctx->val[ctx->digits++] = (int)(s - base64);
if (ctx->digits == 4) {
int n;
unsigned char buf[3];
@@ -234,7 +234,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -246,7 +246,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/buffer.c b/lib/isc/buffer.c
index e37af15968a9..2d15e248575c 100644
--- a/lib/isc/buffer.c
+++ b/lib/isc/buffer.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -420,7 +420,7 @@ isc__buffer_putstr(isc_buffer_t *b, const char *source) {
REQUIRE(l <= isc_buffer_availablelength(b));
cp = isc_buffer_used(b);
- memcpy(cp, source, l);
+ memmove(cp, source, l);
b->used += l;
}
@@ -439,7 +439,7 @@ isc_buffer_copyregion(isc_buffer_t *b, const isc_region_t *r) {
available = isc_buffer_availablelength(b);
if (r->length > available)
return (ISC_R_NOSPACE);
- memcpy(base, r->base, r->length);
+ memmove(base, r->base, r->length);
b->used += r->length;
return (ISC_R_SUCCESS);
diff --git a/lib/isc/commandline.c b/lib/isc/commandline.c
index aca1203ce338..98546db48f38 100644
--- a/lib/isc/commandline.c
+++ b/lib/isc/commandline.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
diff --git a/lib/isc/hash.c b/lib/isc/hash.c
index f1d68c7700f5..f70e7943312d 100644
--- a/lib/isc/hash.c
+++ b/lib/isc/hash.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -94,7 +94,7 @@ struct isc_hash {
isc_boolean_t initialized;
isc_refcount_t refcnt;
isc_entropy_t *entropy; /*%< entropy source */
- unsigned int limit; /*%< upper limit of key length */
+ size_t limit; /*%< upper limit of key length */
size_t vectorlen; /*%< size of the vector below */
hash_random_t *rndvector; /*%< random vector for universal hashing */
};
@@ -140,7 +140,7 @@ static unsigned char maptolower[] = {
isc_result_t
isc_hash_ctxcreate(isc_mem_t *mctx, isc_entropy_t *entropy,
- unsigned int limit, isc_hash_t **hctxp)
+ size_t limit, isc_hash_t **hctxp)
{
isc_result_t result;
isc_hash_t *hctx;
@@ -250,7 +250,8 @@ isc_hash_ctxinit(isc_hash_t *hctx) {
isc_result_t result;
result = isc_entropy_getdata(hctx->entropy,
- hctx->rndvector, hctx->vectorlen,
+ hctx->rndvector,
+ (unsigned int)hctx->vectorlen,
NULL, 0);
INSIST(result == ISC_R_SUCCESS);
#else
@@ -258,7 +259,7 @@ isc_hash_ctxinit(isc_hash_t *hctx) {
#endif
} else {
isc_uint32_t pr;
- unsigned int i, copylen;
+ size_t i, copylen;
unsigned char *p;
p = (unsigned char *)hctx->rndvector;
@@ -269,7 +270,7 @@ isc_hash_ctxinit(isc_hash_t *hctx) {
else
copylen = hctx->vectorlen - i;
- memcpy(p, &pr, copylen);
+ memmove(p, &pr, copylen);
}
INSIST(p == (unsigned char *)hctx->rndvector +
hctx->vectorlen);
@@ -323,9 +324,9 @@ destroy(isc_hash_t **hctxp) {
DESTROYLOCK(&hctx->lock);
- memcpy(canary0, hctx + 1, sizeof(canary0));
+ memmove(canary0, hctx + 1, sizeof(canary0));
memset(hctx, 0, sizeof(isc_hash_t));
- memcpy(canary1, hctx + 1, sizeof(canary1));
+ memmove(canary1, hctx + 1, sizeof(canary1));
INSIST(memcmp(canary0, canary1, sizeof(canary0)) == 0);
isc_mem_put(mctx, hctx, sizeof(isc_hash_t));
isc_mem_detach(&mctx);
diff --git a/lib/isc/heap.c b/lib/isc/heap.c
index ebadd2fd807c..9d4fd28adc3e 100644
--- a/lib/isc/heap.c
+++ b/lib/isc/heap.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2010-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1997-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -32,7 +32,7 @@
#include <isc/heap.h>
#include <isc/magic.h>
#include <isc/mem.h>
-#include <isc/string.h> /* Required for memcpy. */
+#include <isc/string.h> /* Required for memmove. */
#include <isc/util.h>
/*@{*/
@@ -123,7 +123,7 @@ isc_heap_destroy(isc_heap_t **heapp) {
static isc_boolean_t
resize(isc_heap_t *heap) {
void **new_array;
- size_t new_size;
+ unsigned int new_size;
REQUIRE(VALID_HEAP(heap));
@@ -132,7 +132,7 @@ resize(isc_heap_t *heap) {
if (new_array == NULL)
return (ISC_FALSE);
if (heap->array != NULL) {
- memcpy(new_array, heap->array, heap->size * sizeof(void *));
+ memmove(new_array, heap->array, heap->size * sizeof(void *));
isc_mem_put(heap->mctx, heap->array,
heap->size * sizeof(void *));
}
diff --git a/lib/isc/hex.c b/lib/isc/hex.c
index 3fa0e699fa55..00903c7374cf 100644
--- a/lib/isc/hex.c
+++ b/lib/isc/hex.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -99,7 +99,7 @@ hex_decode_char(hex_decode_ctx_t *ctx, int c) {
if ((s = strchr(hex, toupper(c))) == NULL)
return (ISC_R_BADHEX);
- ctx->val[ctx->digits++] = s - hex;
+ ctx->val[ctx->digits++] = (int)(s - hex);
if (ctx->digits == 2) {
unsigned char num;
@@ -183,7 +183,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -195,7 +195,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/hmacmd5.c b/lib/isc/hmacmd5.c
index 6abe6e27df8e..b26a336eadc0 100644
--- a/lib/isc/hmacmd5.c
+++ b/lib/isc/hmacmd5.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -28,6 +28,7 @@
#include <isc/hmacmd5.h>
#include <isc/md5.h>
#include <isc/platform.h>
+#include <isc/safe.h>
#include <isc/string.h>
#include <isc/types.h>
#include <isc/util.h>
@@ -82,7 +83,7 @@ isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
isc_md5_update(&md5ctx, key, len);
isc_md5_final(&md5ctx, ctx->key);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_md5_init(&ctx->md5ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -145,5 +146,5 @@ isc_hmacmd5_verify2(isc_hmacmd5_t *ctx, unsigned char *digest, size_t len) {
REQUIRE(len <= ISC_MD5_DIGESTLENGTH);
isc_hmacmd5_sign(ctx, newdigest);
- return (ISC_TF(memcmp(digest, newdigest, len) == 0));
+ return (isc_safe_memcmp(digest, newdigest, len));
}
diff --git a/lib/isc/hmacsha.c b/lib/isc/hmacsha.c
index d7b9f1897eb0..ac2b70c59f6c 100644
--- a/lib/isc/hmacsha.c
+++ b/lib/isc/hmacsha.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005-2007, 2009, 2011-2014 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
@@ -27,6 +27,7 @@
#include <isc/assertions.h>
#include <isc/hmacsha.h>
#include <isc/platform.h>
+#include <isc/safe.h>
#include <isc/sha1.h>
#include <isc/sha2.h>
#include <isc/string.h>
@@ -62,7 +63,7 @@ isc_hmacsha1_sign(isc_hmacsha1_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -93,7 +94,7 @@ isc_hmacsha224_sign(isc_hmacsha224_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -124,7 +125,7 @@ isc_hmacsha256_sign(isc_hmacsha256_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -155,7 +156,7 @@ isc_hmacsha384_sign(isc_hmacsha384_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -186,7 +187,7 @@ isc_hmacsha512_sign(isc_hmacsha512_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -212,7 +213,7 @@ isc_hmacsha1_init(isc_hmacsha1_t *ctx, const unsigned char *key,
isc_sha1_update(&sha1ctx, key, len);
isc_sha1_final(&sha1ctx, ctx->key);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha1_init(&ctx->sha1ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -259,7 +260,7 @@ isc_hmacsha1_sign(isc_hmacsha1_t *ctx, unsigned char *digest, size_t len) {
isc_sha1_update(&ctx->sha1ctx, newdigest, ISC_SHA1_DIGESTLENGTH);
isc_sha1_final(&ctx->sha1ctx, newdigest);
isc_hmacsha1_invalidate(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -280,7 +281,7 @@ isc_hmacsha224_init(isc_hmacsha224_t *ctx, const unsigned char *key,
isc_sha224_update(&sha224ctx, key, len);
isc_sha224_final(ctx->key, &sha224ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha224_init(&ctx->sha224ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -325,7 +326,7 @@ isc_hmacsha224_sign(isc_hmacsha224_t *ctx, unsigned char *digest, size_t len) {
isc_sha224_update(&ctx->sha224ctx, opad, sizeof(opad));
isc_sha224_update(&ctx->sha224ctx, newdigest, ISC_SHA224_DIGESTLENGTH);
isc_sha224_final(newdigest, &ctx->sha224ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -346,7 +347,7 @@ isc_hmacsha256_init(isc_hmacsha256_t *ctx, const unsigned char *key,
isc_sha256_update(&sha256ctx, key, len);
isc_sha256_final(ctx->key, &sha256ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha256_init(&ctx->sha256ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -391,7 +392,7 @@ isc_hmacsha256_sign(isc_hmacsha256_t *ctx, unsigned char *digest, size_t len) {
isc_sha256_update(&ctx->sha256ctx, opad, sizeof(opad));
isc_sha256_update(&ctx->sha256ctx, newdigest, ISC_SHA256_DIGESTLENGTH);
isc_sha256_final(newdigest, &ctx->sha256ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -412,7 +413,7 @@ isc_hmacsha384_init(isc_hmacsha384_t *ctx, const unsigned char *key,
isc_sha384_update(&sha384ctx, key, len);
isc_sha384_final(ctx->key, &sha384ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha384_init(&ctx->sha384ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -457,7 +458,7 @@ isc_hmacsha384_sign(isc_hmacsha384_t *ctx, unsigned char *digest, size_t len) {
isc_sha384_update(&ctx->sha384ctx, opad, sizeof(opad));
isc_sha384_update(&ctx->sha384ctx, newdigest, ISC_SHA384_DIGESTLENGTH);
isc_sha384_final(newdigest, &ctx->sha384ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -478,7 +479,7 @@ isc_hmacsha512_init(isc_hmacsha512_t *ctx, const unsigned char *key,
isc_sha512_update(&sha512ctx, key, len);
isc_sha512_final(ctx->key, &sha512ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha512_init(&ctx->sha512ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -523,7 +524,7 @@ isc_hmacsha512_sign(isc_hmacsha512_t *ctx, unsigned char *digest, size_t len) {
isc_sha512_update(&ctx->sha512ctx, opad, sizeof(opad));
isc_sha512_update(&ctx->sha512ctx, newdigest, ISC_SHA512_DIGESTLENGTH);
isc_sha512_final(newdigest, &ctx->sha512ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
#endif /* !ISC_PLATFORM_OPENSSLHASH */
@@ -538,7 +539,7 @@ isc_hmacsha1_verify(isc_hmacsha1_t *ctx, unsigned char *digest, size_t len) {
REQUIRE(len <= ISC_SHA1_DIGESTLENGTH);
isc_hmacsha1_sign(ctx, newdigest, ISC_SHA1_DIGESTLENGTH);
- return (ISC_TF(memcmp(digest, newdigest, len) == 0));
+ return (isc_safe_memcmp(digest, newdigest, len));
}
/*
@@ -551,7 +552,7 @@ isc_hmacsha224_verify(isc_hmacsha224_t *ctx, unsigned char *digest, size_t len)
REQUIRE(len <= ISC_SHA224_DIGESTLENGTH);
isc_hmacsha224_sign(ctx, newdigest, ISC_SHA224_DIGESTLENGTH);
- return (ISC_TF(memcmp(digest, newdigest, len) == 0));
+ return (isc_safe_memcmp(digest, newdigest, len));
}
/*
@@ -564,7 +565,7 @@ isc_hmacsha256_verify(isc_hmacsha256_t *ctx, unsigned char *digest, size_t len)
REQUIRE(len <= ISC_SHA256_DIGESTLENGTH);
isc_hmacsha256_sign(ctx, newdigest, ISC_SHA256_DIGESTLENGTH);
- return (ISC_TF(memcmp(digest, newdigest, len) == 0));
+ return (isc_safe_memcmp(digest, newdigest, len));
}
/*
@@ -577,7 +578,7 @@ isc_hmacsha384_verify(isc_hmacsha384_t *ctx, unsigned char *digest, size_t len)
REQUIRE(len <= ISC_SHA384_DIGESTLENGTH);
isc_hmacsha384_sign(ctx, newdigest, ISC_SHA384_DIGESTLENGTH);
- return (ISC_TF(memcmp(digest, newdigest, len) == 0));
+ return (isc_safe_memcmp(digest, newdigest, len));
}
/*
@@ -590,5 +591,5 @@ isc_hmacsha512_verify(isc_hmacsha512_t *ctx, unsigned char *digest, size_t len)
REQUIRE(len <= ISC_SHA512_DIGESTLENGTH);
isc_hmacsha512_sign(ctx, newdigest, ISC_SHA512_DIGESTLENGTH);
- return (ISC_TF(memcmp(digest, newdigest, len) == 0));
+ return (isc_safe_memcmp(digest, newdigest, len));
}
diff --git a/lib/isc/httpd.c b/lib/isc/httpd.c
index 16a8c9fe142b..46dab296f6a1 100644
--- a/lib/isc/httpd.c
+++ b/lib/isc/httpd.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2008, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2008, 2010-2012, 2014 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
@@ -26,6 +26,7 @@
#include <isc/socket.h>
#include <isc/string.h>
#include <isc/task.h>
+#include <isc/time.h>
#include <isc/util.h>
#include <string.h>
@@ -58,20 +59,6 @@
#define HTTP_SENDGROW 1024
#define HTTP_SEND_MAXLEN 10240
-/*%
- * HTTP urls. These are the URLs we manage, and the function to call to
- * provide the data for it. We pass in the base url (so the same function
- * can handle multiple requests), and a structure to fill in to return a
- * result to the client. We also pass in a pointer to be filled in for
- * the data cleanup function.
- */
-struct isc_httpdurl {
- char *url;
- isc_httpdaction_t *action;
- void *action_arg;
- ISC_LINK(isc_httpdurl_t) link;
-};
-
#define HTTPD_CLOSE 0x0001 /* Got a Connection: close header */
#define HTTPD_FOUNDHOST 0x0002 /* Got a Host: header */
@@ -87,6 +74,7 @@ struct isc_httpd {
*/
char recvbuf[HTTP_RECVLEN]; /*%< receive buffer */
isc_uint32_t recvlen; /*%< length recv'd */
+ char *headers; /*%< set in process_request() */
unsigned int method;
char *url;
char *querystring;
@@ -217,20 +205,12 @@ static isc_result_t process_request(isc_httpd_t *, int);
static void httpdmgr_destroy(isc_httpdmgr_t *);
static isc_result_t grow_headerspace(isc_httpd_t *);
static void reset_client(isc_httpd_t *httpd);
-static isc_result_t render_404(const char *, const char *,
- void *,
- unsigned int *, const char **,
- const char **, isc_buffer_t *,
- isc_httpdfree_t **, void **);
-static isc_result_t render_500(const char *, const char *,
- void *,
- unsigned int *, const char **,
- const char **, isc_buffer_t *,
- isc_httpdfree_t **, void **);
+
+static isc_httpdaction_t render_404;
+static isc_httpdaction_t render_500;
static void
-destroy_client(isc_httpd_t **httpdp)
-{
+destroy_client(isc_httpd_t **httpdp) {
isc_httpd_t *httpd = *httpdp;
isc_httpdmgr_t *httpdmgr = httpd->mgr;
@@ -321,8 +301,7 @@ isc_httpdmgr_create(isc_mem_t *mctx, isc_socket_t *sock, isc_task_t *task,
}
static void
-httpdmgr_destroy(isc_httpdmgr_t *httpdmgr)
-{
+httpdmgr_destroy(isc_httpdmgr_t *httpdmgr) {
isc_mem_t *mctx;
isc_httpdurl_t *url;
@@ -379,8 +358,7 @@ httpdmgr_destroy(isc_httpdmgr_t *httpdmgr)
#define BUFLENOK(s) (httpd->recvbuf - (s) < HTTP_RECVLEN)
static isc_result_t
-process_request(isc_httpd_t *httpd, int length)
-{
+process_request(isc_httpd_t *httpd, int length) {
char *s;
char *p;
int delim;
@@ -390,6 +368,7 @@ process_request(isc_httpd_t *httpd, int length)
httpd->recvlen += length;
httpd->recvbuf[httpd->recvlen] = 0;
+ httpd->headers = NULL;
/*
* If we don't find a blank line in our buffer, return that we need
@@ -494,6 +473,8 @@ process_request(isc_httpd_t *httpd, int length)
p = s + 1;
s = p;
+ httpd->headers = s;
+
if (strstr(s, "Connection: close") != NULL)
httpd->flags |= HTTPD_CLOSE;
@@ -513,8 +494,7 @@ process_request(isc_httpd_t *httpd, int length)
}
static void
-isc_httpd_accept(isc_task_t *task, isc_event_t *ev)
-{
+isc_httpd_accept(isc_task_t *task, isc_event_t *ev) {
isc_result_t result;
isc_httpdmgr_t *httpdmgr = ev->ev_arg;
isc_httpd_t *httpd;
@@ -609,8 +589,8 @@ isc_httpd_accept(isc_task_t *task, isc_event_t *ev)
}
static isc_result_t
-render_404(const char *url, const char *querystring,
- void *arg,
+render_404(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers, void *arg,
unsigned int *retcode, const char **retmsg,
const char **mimetype, isc_buffer_t *b,
isc_httpdfree_t **freecb, void **freecb_args)
@@ -618,7 +598,9 @@ render_404(const char *url, const char *querystring,
static char msg[] = "No such URL.";
UNUSED(url);
+ UNUSED(urlinfo);
UNUSED(querystring);
+ UNUSED(headers);
UNUSED(arg);
*retcode = 404;
@@ -633,8 +615,8 @@ render_404(const char *url, const char *querystring,
}
static isc_result_t
-render_500(const char *url, const char *querystring,
- void *arg,
+render_500(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers, void *arg,
unsigned int *retcode, const char **retmsg,
const char **mimetype, isc_buffer_t *b,
isc_httpdfree_t **freecb, void **freecb_args)
@@ -642,7 +624,9 @@ render_500(const char *url, const char *querystring,
static char msg[] = "Internal server failure.";
UNUSED(url);
+ UNUSED(urlinfo);
UNUSED(querystring);
+ UNUSED(headers);
UNUSED(arg);
*retcode = 500;
@@ -657,8 +641,7 @@ render_500(const char *url, const char *querystring,
}
static void
-isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
-{
+isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev) {
isc_region_t r;
isc_result_t result;
isc_httpd_t *httpd = ev->ev_arg;
@@ -710,8 +693,9 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
url = ISC_LIST_NEXT(url, link);
}
if (url == NULL)
- result = httpd->mgr->render_404(httpd->url, httpd->querystring,
- NULL,
+ result = httpd->mgr->render_404(httpd->url, NULL,
+ httpd->querystring,
+ NULL, NULL,
&httpd->retcode,
&httpd->retmsg,
&httpd->mimetype,
@@ -719,14 +703,18 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
&httpd->freecb,
&httpd->freecb_arg);
else
- result = url->action(httpd->url, httpd->querystring,
+ result = url->action(httpd->url, url,
+ httpd->querystring,
+ httpd->headers,
url->action_arg,
&httpd->retcode, &httpd->retmsg,
&httpd->mimetype, &httpd->bodybuffer,
&httpd->freecb, &httpd->freecb_arg);
if (result != ISC_R_SUCCESS) {
- result = httpd->mgr->render_500(httpd->url, httpd->querystring,
- NULL, &httpd->retcode,
+ result = httpd->mgr->render_500(httpd->url, url,
+ httpd->querystring,
+ NULL, NULL,
+ &httpd->retcode,
&httpd->retmsg,
&httpd->mimetype,
&httpd->bodybuffer,
@@ -739,9 +727,19 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
isc_httpd_addheader(httpd, "Content-Type", httpd->mimetype);
isc_httpd_addheader(httpd, "Date", datebuf);
isc_httpd_addheader(httpd, "Expires", datebuf);
- isc_httpd_addheader(httpd, "Last-Modified", datebuf);
- isc_httpd_addheader(httpd, "Pragma: no-cache", NULL);
- isc_httpd_addheader(httpd, "Cache-Control: no-cache", NULL);
+
+ if (url != NULL && url->isstatic) {
+ char loadbuf[32];
+ isc_time_formathttptimestamp(&url->loadtime,
+ loadbuf, sizeof(loadbuf));
+ isc_httpd_addheader(httpd, "Last-Modified", loadbuf);
+ isc_httpd_addheader(httpd, "Cache-Control: public", NULL);
+ } else {
+ isc_httpd_addheader(httpd, "Last-Modified", datebuf);
+ isc_httpd_addheader(httpd, "Pragma: no-cache", NULL);
+ isc_httpd_addheader(httpd, "Cache-Control: no-cache", NULL);
+ }
+
isc_httpd_addheader(httpd, "Server: libisc", NULL);
isc_httpd_addheaderuint(httpd, "Content-Length",
isc_buffer_usedlength(&httpd->bodybuffer));
@@ -766,8 +764,7 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
}
void
-isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdmgrp)
-{
+isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdmgrp) {
isc_httpdmgr_t *httpdmgr;
isc_httpd_t *httpd;
httpdmgr = *httpdmgrp;
@@ -794,8 +791,7 @@ isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdmgrp)
}
static isc_result_t
-grow_headerspace(isc_httpd_t *httpd)
-{
+grow_headerspace(isc_httpd_t *httpd) {
char *newspace;
unsigned int newlen;
isc_region_t r;
@@ -816,8 +812,7 @@ grow_headerspace(isc_httpd_t *httpd)
}
isc_result_t
-isc_httpd_response(isc_httpd_t *httpd)
-{
+isc_httpd_response(isc_httpd_t *httpd) {
isc_result_t result;
unsigned int needlen;
@@ -869,8 +864,7 @@ isc_httpd_addheader(isc_httpd_t *httpd, const char *name,
}
isc_result_t
-isc_httpd_endheaders(isc_httpd_t *httpd)
-{
+isc_httpd_endheaders(isc_httpd_t *httpd) {
isc_result_t result;
while (isc_buffer_availablelength(&httpd->headerbuffer) < 2) {
@@ -912,8 +906,7 @@ isc_httpd_addheaderuint(isc_httpd_t *httpd, const char *name, int val) {
}
static void
-isc_httpd_senddone(isc_task_t *task, isc_event_t *ev)
-{
+isc_httpd_senddone(isc_task_t *task, isc_event_t *ev) {
isc_httpd_t *httpd = ev->ev_arg;
isc_region_t r;
isc_socketevent_t *sev = (isc_socketevent_t *)ev;
@@ -976,8 +969,7 @@ out:
}
static void
-reset_client(isc_httpd_t *httpd)
-{
+reset_client(isc_httpd_t *httpd) {
/*
* Catch errors here. We MUST be in RECV mode, and we MUST NOT have
* any outstanding buffers. If we have buffers, we have a leak.
@@ -988,6 +980,7 @@ reset_client(isc_httpd_t *httpd)
httpd->recvbuf[0] = 0;
httpd->recvlen = 0;
+ httpd->headers = NULL;
httpd->method = ISC_HTTPD_METHODUNKNOWN;
httpd->url = NULL;
httpd->querystring = NULL;
@@ -1002,6 +995,14 @@ isc_result_t
isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
isc_httpdaction_t *func, void *arg)
{
+ return (isc_httpdmgr_addurl2(httpdmgr, url, ISC_FALSE, func, arg));
+}
+
+isc_result_t
+isc_httpdmgr_addurl2(isc_httpdmgr_t *httpdmgr, const char *url,
+ isc_boolean_t isstatic,
+ isc_httpdaction_t *func, void *arg)
+{
isc_httpdurl_t *item;
if (url == NULL) {
@@ -1021,6 +1022,9 @@ isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
item->action = func;
item->action_arg = arg;
+ item->isstatic = isstatic;
+ isc_time_now(&item->loadtime);
+
ISC_LINK_INIT(item, link);
ISC_LIST_APPEND(httpdmgr->urls, item, link);
diff --git a/lib/isc/include/isc/Makefile.in b/lib/isc/include/isc/Makefile.in
index 8afcfa73cb80..54524beddc2a 100644
--- a/lib/isc/include/isc/Makefile.in
+++ b/lib/isc/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001, 2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -29,18 +29,16 @@ top_srcdir = @top_srcdir@
HEADERS = app.h assertions.h base64.h bind9.h bitstring.h boolean.h \
buffer.h bufferlist.h commandline.h entropy.h error.h event.h \
eventclass.h file.h formatcheck.h fsaccess.h \
- hash.h heap.h hex.h hmacmd5.h hmacsha.h \
- httpd.h \
- interfaceiter.h @ISC_IPV6_H@ iterated_hash.h lang.h lex.h \
- lfsr.h lib.h list.h log.h \
+ hash.h heap.h hex.h hmacmd5.h hmacsha.h httpd.h \
+ interfaceiter.h @ISC_IPV6_H@ iterated_hash.h \
+ lang.h lex.h lfsr.h lib.h list.h log.h \
magic.h md5.h mem.h msgcat.h msgs.h mutexblock.h \
namespace.h netaddr.h ondestroy.h os.h parseint.h \
print.h quota.h radix.h random.h ratelimiter.h \
refcount.h regex.h region.h resource.h \
- result.h resultclass.h rwlock.h serial.h sha1.h sha2.h \
- sockaddr.h socket.h stdio.h stdlib.h string.h \
- symtab.h \
- task.h taskpool.h timer.h types.h util.h version.h \
+ result.h resultclass.h rwlock.h safe.h serial.h sha1.h sha2.h \
+ sockaddr.h socket.h stdio.h stdlib.h string.h symtab.h \
+ task.h taskpool.h timer.h tm.h types.h util.h version.h \
xml.h
SUBDIRS =
diff --git a/lib/isc/include/isc/app.h b/lib/isc/include/isc/app.h
index e0be79063709..53810859ce4e 100644
--- a/lib/isc/include/isc/app.h
+++ b/lib/isc/include/isc/app.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -117,6 +117,9 @@ typedef struct isc_appmethods {
isc_socketmgr_t *timermgr);
void (*settimermgr)(isc_appctx_t *ctx,
isc_timermgr_t *timermgr);
+ isc_result_t (*ctxonrun)(isc_appctx_t *ctx, isc_mem_t *mctx,
+ isc_task_t *task, isc_taskaction_t action,
+ void *arg);
} isc_appmethods_t;
/*%
@@ -153,10 +156,13 @@ isc_app_start(void);
* close to the beginning of the application as possible.
*
* Requires:
- * 'ctx' is a valid application context (for app_ctxstart()).
+ *\li 'ctx' is a valid application context (for app_ctxstart()).
*/
isc_result_t
+isc_app_ctxonrun(isc_appctx_t *ctx, isc_mem_t *mctx, isc_task_t *task,
+ isc_taskaction_t action, void *arg);
+isc_result_t
isc_app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
void *arg);
/*!<
@@ -164,6 +170,7 @@ isc_app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
*
* Requires:
*\li isc_app_start() has been called.
+ *\li 'ctx' is a valid application context (for app_ctxonrun()).
*
* Returns:
* ISC_R_SUCCESS
diff --git a/lib/isc/include/isc/buffer.h b/lib/isc/include/isc/buffer.h
index 72b856056a8a..5aff01c24790 100644
--- a/lib/isc/include/isc/buffer.h
+++ b/lib/isc/include/isc/buffer.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2010, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -787,7 +787,7 @@ ISC_LANG_ENDDECLS
#define ISC__BUFFER_PUTMEM(_b, _base, _length) \
do { \
- memcpy(isc_buffer_used(_b), (_base), (_length)); \
+ memmove(isc_buffer_used(_b), (_base), (_length)); \
(_b)->used += (_length); \
} while (0)
@@ -797,7 +797,7 @@ ISC_LANG_ENDDECLS
unsigned char *_cp; \
_length = strlen(_source); \
_cp = isc_buffer_used(_b); \
- memcpy(_cp, (_source), _length); \
+ memmove(_cp, (_source), _length); \
(_b)->used += (_length); \
} while (0)
diff --git a/lib/isc/include/isc/file.h b/lib/isc/include/isc/file.h
index 92ea96eceb7e..a974bbd7219b 100644
--- a/lib/isc/include/isc/file.h
+++ b/lib/isc/include/isc/file.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -326,6 +326,16 @@ isc_file_splitpath(isc_mem_t *mctx, char *path,
* - ISC_R_NOMEMORY if unable to allocate memory
*/
+isc_result_t
+isc_file_getsizefd(int fd, off_t *size);
+/*%<
+ * Return the size of the file (stored in the parameter pointed
+ * to by 'size') in bytes.
+ *
+ * Returns:
+ * - ISC_R_SUCCESS on success
+ */
+
ISC_LANG_ENDDECLS
#endif /* ISC_FILE_H */
diff --git a/lib/isc/include/isc/hash.h b/lib/isc/include/isc/hash.h
index ca04b4e43c75..0bfe936d7f95 100644
--- a/lib/isc/include/isc/hash.h
+++ b/lib/isc/include/isc/hash.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -82,7 +82,7 @@
ISC_LANG_BEGINDECLS
isc_result_t
-isc_hash_ctxcreate(isc_mem_t *mctx, isc_entropy_t *entropy, unsigned int limit,
+isc_hash_ctxcreate(isc_mem_t *mctx, isc_entropy_t *entropy, size_t limit,
isc_hash_t **hctx);
isc_result_t
isc_hash_create(isc_mem_t *mctx, isc_entropy_t *entropy, size_t limit);
diff --git a/lib/isc/include/isc/httpd.h b/lib/isc/include/isc/httpd.h
index ba7f900198e4..06ce90f32326 100644
--- a/lib/isc/include/isc/httpd.h
+++ b/lib/isc/include/isc/httpd.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2008, 2014 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
@@ -26,6 +26,23 @@
#include <isc/types.h>
#include <isc/mutex.h>
#include <isc/task.h>
+#include <isc/time.h>
+
+/*%
+ * HTTP urls. These are the URLs we manage, and the function to call to
+ * provide the data for it. We pass in the base url (so the same function
+ * can handle multiple requests), and a structure to fill in to return a
+ * result to the client. We also pass in a pointer to be filled in for
+ * the data cleanup function.
+ */
+struct isc_httpdurl {
+ char *url;
+ isc_httpdaction_t *action;
+ void *action_arg;
+ isc_boolean_t isstatic;
+ isc_time_t loadtime;
+ ISC_LINK(isc_httpdurl_t) link;
+};
#define HTTPD_EVENTCLASS ISC_EVENTCLASS(4300)
#define HTTPD_SHUTDOWN (HTTPD_EVENTCLASS + 0x0001)
@@ -50,6 +67,11 @@ isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
isc_httpdaction_t *func, void *arg);
isc_result_t
+isc_httpdmgr_addurl2(isc_httpdmgr_t *httpdmgr, const char *url,
+ isc_boolean_t isstatic,
+ isc_httpdaction_t *func, void *arg);
+
+isc_result_t
isc_httpd_response(isc_httpd_t *httpd);
isc_result_t
diff --git a/lib/isc/include/isc/namespace.h b/lib/isc/include/isc/namespace.h
index f8744d8ad635..4cfb305ca003 100644
--- a/lib/isc/include/isc/namespace.h
+++ b/lib/isc/include/isc/namespace.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009-2013 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
@@ -106,6 +106,7 @@
#define isc_socket_sendv isc__socket_sendv
#define isc_socket_sendtov isc__socket_sendtov
#define isc_socket_sendto2 isc__socket_sendto2
+#define isc_socket_sendtov2 isc__socket_sendtov2
#define isc_socket_cleanunix isc__socket_cleanunix
#define isc_socket_permunix isc__socket_permunix
#define isc_socket_bind isc__socket_bind
diff --git a/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in
index 03c2710bac35..07553e36b898 100644
--- a/lib/isc/include/isc/platform.h.in
+++ b/lib/isc/include/isc/platform.h.in
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -199,6 +199,11 @@
*/
@ISC_PLATFORM_NEEDMEMMOVE@
+/*
+ * Define if this system needs strcasestr.
+ */
+@ISC_PLATFORM_NEEDSTRCASESTR@
+
/***
*** Miscellaneous.
***/
@@ -328,6 +333,7 @@
#define LIBISCCC_EXTERNAL_DATA
#define LIBISCCFG_EXTERNAL_DATA
#define LIBBIND9_EXTERNAL_DATA
+#define LIBTESTS_EXTERNAL_DATA
#else /*! \brief ISC_PLATFORM_USEDECLSPEC */
#ifdef LIBISC_EXPORTS
#define LIBISC_EXTERNAL_DATA __declspec(dllexport)
@@ -354,6 +360,11 @@
#else
#define LIBBIND9_EXTERNAL_DATA __declspec(dllimport)
#endif
+#ifdef LIBTESTS_EXPORTS
+#define LIBTESTS_EXTERNAL_DATA __declspec(dllexport)
+#else
+#define LIBTESTS_EXTERNAL_DATA __declspec(dllimport)
+#endif
#endif /*! \brief ISC_PLATFORM_USEDECLSPEC */
/*
diff --git a/lib/isc/include/isc/radix.h b/lib/isc/include/isc/radix.h
index 47512c722885..1c1887f1d0c0 100644
--- a/lib/isc/include/isc/radix.h
+++ b/lib/isc/include/isc/radix.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007, 2008, 2013, 2014 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
@@ -41,10 +41,10 @@
(pt).family = (na)->family; \
(pt).bitlen = (bits); \
if ((pt).family == AF_INET6) { \
- memcpy(&(pt).add.sin6, &(na)->type.in6, \
+ memmove(&(pt).add.sin6, &(na)->type.in6, \
((bits)+7)/8); \
} else \
- memcpy(&(pt).add.sin, &(na)->type.in, \
+ memmove(&(pt).add.sin, &(na)->type.in, \
((bits)+7)/8); \
} else { \
(pt).family = AF_UNSPEC; \
diff --git a/lib/isc/include/isc/safe.h b/lib/isc/include/isc/safe.h
new file mode 100644
index 000000000000..89d56def73fd
--- /dev/null
+++ b/lib/isc/include/isc/safe.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2013 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$ */
+
+#ifndef ISC_SAFE_H
+#define ISC_SAFE_H 1
+
+/*! \file isc/safe.h */
+
+#include <isc/types.h>
+
+ISC_LANG_BEGINDECLS
+
+isc_boolean_t
+isc_safe_memcmp(const void *s1, const void *s2, size_t n);
+/*%<
+ * Clone of libc memcmp() safe to differential timing attacks.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_SAFE_H */
diff --git a/lib/isc/include/isc/socket.h b/lib/isc/include/isc/socket.h
index 9d086b452012..2ccd41a2d5c3 100644
--- a/lib/isc/include/isc/socket.h
+++ b/lib/isc/include/isc/socket.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -866,6 +866,11 @@ isc_socket_sendtov(isc_socket_t *sock, isc_bufferlist_t *buflist,
isc_task_t *task, isc_taskaction_t action, const void *arg,
isc_sockaddr_t *address, struct in6_pktinfo *pktinfo);
isc_result_t
+isc_socket_sendtov2(isc_socket_t *sock, isc_bufferlist_t *buflist,
+ isc_task_t *task, isc_taskaction_t action, const void *arg,
+ isc_sockaddr_t *address, struct in6_pktinfo *pktinfo,
+ unsigned int flags);
+isc_result_t
isc_socket_sendto2(isc_socket_t *sock, isc_region_t *region,
isc_task_t *task,
isc_sockaddr_t *address, struct in6_pktinfo *pktinfo,
diff --git a/lib/isc/include/isc/stdio.h b/lib/isc/include/isc/stdio.h
index 1a7ae642d5eb..8d288d869ba4 100644
--- a/lib/isc/include/isc/stdio.h
+++ b/lib/isc/include/isc/stdio.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -22,7 +22,7 @@
/*! \file isc/stdio.h */
-/*%
+/*%
* These functions are wrappers around the corresponding stdio functions.
*
* They return a detailed error code in the form of an an isc_result_t. ANSI C
@@ -48,7 +48,11 @@ isc_stdio_close(FILE *f);
/*% Seek */
isc_result_t
-isc_stdio_seek(FILE *f, long offset, int whence);
+isc_stdio_seek(FILE *f, off_t offset, int whence);
+
+/*% Tell */
+isc_result_t
+isc_stdio_tell(FILE *f, off_t *offsetp);
/*% Read */
isc_result_t
diff --git a/lib/isc/include/isc/string.h b/lib/isc/include/isc/string.h
index b49fdbc327f1..585ef928afa9 100644
--- a/lib/isc/include/isc/string.h
+++ b/lib/isc/include/isc/string.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2014 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
@@ -226,6 +226,13 @@ isc_string_strlcat(char *dst, const char *src, size_t size);
#define strlcat isc_string_strlcat
#endif
+char *
+isc_string_strcasestr(const char *big, const char *little);
+
+#ifdef ISC_PLATFORM_NEEDSTRCASESTR
+#define strcasestr isc_string_strcasestr
+#endif
+
ISC_LANG_ENDDECLS
#endif /* ISC_STRING_H */
diff --git a/lib/isc/include/isc/tm.h b/lib/isc/include/isc/tm.h
new file mode 100644
index 000000000000..44b81480e457
--- /dev/null
+++ b/lib/isc/include/isc/tm.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#ifndef ISC_TM_H
+#define ISC_TM_H 1
+
+/*! \file isc/tm.h
+ * Provides portable conversion routines for struct tm.
+ */
+#include <time.h>
+
+#include <isc/lang.h>
+#include <isc/types.h>
+
+
+ISC_LANG_BEGINDECLS
+
+time_t
+isc_tm_timegm(struct tm *tm);
+/*
+ * Convert a tm structure to time_t, using UTC rather than the local
+ * time zone.
+ */
+
+char *
+isc_tm_strptime(const char *buf, const char *fmt, struct tm *tm);
+/*
+ * Parse a formatted date string into struct tm.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_TIMER_H */
diff --git a/lib/isc/include/isc/types.h b/lib/isc/include/isc/types.h
index 8dbf67ed109e..a1edadd10db7 100644
--- a/lib/isc/include/isc/types.h
+++ b/lib/isc/include/isc/types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -103,7 +103,9 @@ typedef int (*isc_sockfdwatch_t)(isc_task_t *, isc_socket_t *, void *, int);
/* The following cannot be listed alphabetically due to forward reference */
typedef isc_result_t (isc_httpdaction_t)(const char *url,
+ isc_httpdurl_t *urlinfo,
const char *querystring,
+ const char *headers,
void *arg,
unsigned int *retcode,
const char **retmsg,
diff --git a/lib/isc/inet_aton.c b/lib/isc/inet_aton.c
index 66a108dc4274..d999bf38f364 100644
--- a/lib/isc/inet_aton.c
+++ b/lib/isc/inet_aton.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007, 2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2008, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1996-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -92,7 +88,8 @@ static char rcsid[] = "$Id: inet_aton.c,v 1.23 2008/12/01 23:47:45 tbox Exp $";
int
isc_net_aton(const char *cp, struct in_addr *addr) {
isc_uint32_t val;
- int base, n;
+ int base;
+ ptrdiff_t n;
unsigned char c;
isc_uint8_t parts[4];
isc_uint8_t *pp = parts;
diff --git a/lib/isc/inet_pton.c b/lib/isc/inet_pton.c
index 6bada239e0e5..4c60f8252f4a 100644
--- a/lib/isc/inet_pton.c
+++ b/lib/isc/inet_pton.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1996-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -44,7 +44,7 @@ static char rcsid[] =
static int inet_pton4(const char *src, unsigned char *dst);
static int inet_pton6(const char *src, unsigned char *dst);
-/*%
+/*%
* convert from presentation format (which usually means ASCII printable)
* to network format (which is usually some kind of binary format).
* \return
@@ -91,8 +91,9 @@ inet_pton4(const char *src, unsigned char *dst) {
const char *pch;
if ((pch = strchr(digits, ch)) != NULL) {
- unsigned int new = *tp * 10 + (pch - digits);
+ unsigned int new = *tp * 10;
+ new += (int)(pch - digits);
if (saw_digit && *tp == 0)
return (0);
if (new > 255)
@@ -113,7 +114,7 @@ inet_pton4(const char *src, unsigned char *dst) {
}
if (octets < 4)
return (0);
- memcpy(dst, tmp, NS_INADDRSZ);
+ memmove(dst, tmp, NS_INADDRSZ);
return (1);
}
@@ -196,7 +197,7 @@ inet_pton6(const char *src, unsigned char *dst) {
* Since some memmove()'s erroneously fail to handle
* overlapping regions, we'll do the shift by hand.
*/
- const int n = tp - colonp;
+ const int n = (int)(tp - colonp);
int i;
if (tp == endp)
@@ -209,6 +210,6 @@ inet_pton6(const char *src, unsigned char *dst) {
}
if (tp != endp)
return (0);
- memcpy(dst, tmp, NS_IN6ADDRSZ);
+ memmove(dst, tmp, NS_IN6ADDRSZ);
return (1);
}
diff --git a/lib/isc/lex.c b/lib/isc/lex.c
index 8749ed0b0ba3..aa3a6c9ffd59 100644
--- a/lib/isc/lex.c
+++ b/lib/isc/lex.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -75,7 +75,7 @@ grow_data(isc_lex_t *lex, size_t *remainingp, char **currp, char **prevp) {
new = isc_mem_get(lex->mctx, lex->max_token * 2 + 1);
if (new == NULL)
return (ISC_R_NOMEMORY);
- memcpy(new, lex->data, lex->max_token + 1);
+ memmove(new, lex->data, lex->max_token + 1);
*currp = new + (*currp - lex->data);
if (*prevp != NULL)
*prevp = new + (*prevp - lex->data);
@@ -173,7 +173,7 @@ isc_lex_getspecials(isc_lex_t *lex, isc_lexspecials_t specials) {
REQUIRE(VALID_LEX(lex));
- memcpy(specials, lex->specials, 256);
+ memmove(specials, lex->specials, 256);
}
void
@@ -185,7 +185,7 @@ isc_lex_setspecials(isc_lex_t *lex, isc_lexspecials_t specials) {
REQUIRE(VALID_LEX(lex));
- memcpy(lex->specials, specials, 256);
+ memmove(lex->specials, specials, 256);
}
static inline isc_result_t
@@ -210,7 +210,7 @@ new_source(isc_lex_t *lex, isc_boolean_t is_file, isc_boolean_t need_close,
}
source->pushback = NULL;
result = isc_buffer_allocate(lex->mctx, &source->pushback,
- lex->max_token);
+ (unsigned int)lex->max_token);
if (result != ISC_R_SUCCESS) {
isc_mem_free(lex->mctx, source->name);
isc_mem_put(lex->mctx, source, sizeof(*source));
@@ -445,7 +445,7 @@ isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
c = EOF;
source->at_eof = ISC_TRUE;
} else {
- c = *((char *)buffer->base +
+ c = *((unsigned char *)buffer->base +
buffer->current);
buffer->current++;
}
@@ -522,7 +522,7 @@ isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
!= 0) {
lex->last_was_eol = ISC_FALSE;
tokenp->type = isc_tokentype_initialws;
- tokenp->value.as_char = c;
+ tokenp->value.as_char = c;
done = ISC_TRUE;
}
} else if (c == '\n') {
@@ -615,8 +615,9 @@ isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
v->as_textregion.base =
lex->data;
v->as_textregion.length =
- lex->max_token -
- remaining;
+ (unsigned int)
+ (lex->max_token -
+ remaining);
} else
goto done;
done = ISC_TRUE;
@@ -659,7 +660,8 @@ isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
tokenp->type = isc_tokentype_string;
tokenp->value.as_textregion.base = lex->data;
tokenp->value.as_textregion.length =
- lex->max_token - remaining;
+ (unsigned int)
+ (lex->max_token - remaining);
done = ISC_TRUE;
continue;
}
@@ -744,7 +746,8 @@ isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
tokenp->value.as_textregion.base =
lex->data;
tokenp->value.as_textregion.length =
- lex->max_token - remaining;
+ (unsigned int)
+ (lex->max_token - remaining);
no_comments = ISC_FALSE;
done = ISC_TRUE;
}
diff --git a/lib/isc/log.c b/lib/isc/log.c
index 024d97c6a9ff..2cf584b44a6d 100644
--- a/lib/isc/log.c
+++ b/lib/isc/log.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -767,7 +767,7 @@ isc_log_createchannel(isc_logconfig_t *lcfg, const char *name,
break;
default:
- isc_mem_put(mctx, channel->name, strlen(channel->name) + 1);
+ isc_mem_free(mctx, channel->name);
isc_mem_put(mctx, channel, sizeof(*channel));
return (ISC_R_UNEXPECTED);
}
@@ -1130,7 +1130,7 @@ sync_channellist(isc_logconfig_t *lcfg) {
if (lcfg->channellist_count != 0) {
bytes = lcfg->channellist_count *
sizeof(ISC_LIST(isc_logchannellist_t));
- memcpy(lists, lcfg->channellists, bytes);
+ memmove(lists, lcfg->channellists, bytes);
isc_mem_put(lctx->mctx, lcfg->channellists, bytes);
}
@@ -1146,7 +1146,7 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) {
char *basename, *digit_end;
const char *dirname;
int version, greatest = -1;
- unsigned int basenamelen;
+ size_t basenamelen;
isc_dir_t dir;
isc_result_t result;
char sep = '/';
diff --git a/lib/isc/md5.c b/lib/isc/md5.c
index 7c6419b2a9c7..5d212502938b 100644
--- a/lib/isc/md5.c
+++ b/lib/isc/md5.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -217,11 +217,11 @@ isc_md5_update(isc_md5_t *ctx, const unsigned char *buf, unsigned int len) {
t = 64 - (t & 0x3f); /* Space available in ctx->in (at least 1) */
if (t > len) {
- memcpy((unsigned char *)ctx->in + 64 - t, buf, len);
+ memmove((unsigned char *)ctx->in + 64 - t, buf, len);
return;
}
/* First chunk is an odd size */
- memcpy((unsigned char *)ctx->in + 64 - t, buf, t);
+ memmove((unsigned char *)ctx->in + 64 - t, buf, t);
byteSwap(ctx->in, 16);
transform(ctx->buf, ctx->in);
buf += t;
@@ -229,7 +229,7 @@ isc_md5_update(isc_md5_t *ctx, const unsigned char *buf, unsigned int len) {
/* Process data in 64-byte chunks */
while (len >= 64) {
- memcpy(ctx->in, buf, 64);
+ memmove(ctx->in, buf, 64);
byteSwap(ctx->in, 16);
transform(ctx->buf, ctx->in);
buf += 64;
@@ -237,7 +237,7 @@ isc_md5_update(isc_md5_t *ctx, const unsigned char *buf, unsigned int len) {
}
/* Handle any remaining bytes of data. */
- memcpy(ctx->in, buf, len);
+ memmove(ctx->in, buf, len);
}
/*!
@@ -271,7 +271,7 @@ isc_md5_final(isc_md5_t *ctx, unsigned char *digest) {
transform(ctx->buf, ctx->in);
byteSwap(ctx->buf, 4);
- memcpy(digest, ctx->buf, 16);
+ memmove(digest, ctx->buf, 16);
memset(ctx, 0, sizeof(isc_md5_t)); /* In case it's sensitive */
}
#endif
diff --git a/lib/isc/mem.c b/lib/isc/mem.c
index 20fec46c7cbf..f45a077e1e94 100644
--- a/lib/isc/mem.c
+++ b/lib/isc/mem.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2010, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1997-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -68,7 +68,7 @@ typedef struct debuglink debuglink_t;
struct debuglink {
ISC_LINK(debuglink_t) link;
const void *ptr[DEBUGLIST_COUNT];
- unsigned int size[DEBUGLIST_COUNT];
+ size_t size[DEBUGLIST_COUNT];
const char *file[DEBUGLIST_COUNT];
unsigned int line[DEBUGLIST_COUNT];
unsigned int count;
@@ -396,12 +396,10 @@ static struct isc__mempoolmethods {
* mctx must be locked.
*/
static inline void
-add_trace_entry(isc__mem_t *mctx, const void *ptr, unsigned int size
- FLARG)
-{
+add_trace_entry(isc__mem_t *mctx, const void *ptr, size_t size FLARG) {
debuglink_t *dl;
unsigned int i;
- unsigned int mysize = size;
+ size_t mysize = size;
if ((isc_mem_debugging & ISC_MEM_DEBUGTRACE) != 0)
fprintf(stderr, isc_msgcat_get(isc_msgcat, ISC_MSGSET_MEM,
@@ -456,7 +454,7 @@ add_trace_entry(isc__mem_t *mctx, const void *ptr, unsigned int size
}
static inline void
-delete_trace_entry(isc__mem_t *mctx, const void *ptr, unsigned int size,
+delete_trace_entry(isc__mem_t *mctx, const void *ptr, size_t size,
const char *file, unsigned int line)
{
debuglink_t *dl;
@@ -555,9 +553,9 @@ more_basic_blocks(isc__mem_t *ctx) {
return (ISC_FALSE);
}
if (ctx->basic_table_size != 0) {
- memcpy(table, ctx->basic_table,
- ctx->basic_table_size *
- sizeof(unsigned char *));
+ memmove(table, ctx->basic_table,
+ ctx->basic_table_size *
+ sizeof(unsigned char *));
(ctx->memfree)(ctx->arg, ctx->basic_table);
}
ctx->basic_table = table;
@@ -623,7 +621,7 @@ more_frags(isc__mem_t *ctx, size_t new_size) {
total_size = ctx->mem_target;
new = ctx->basic_blocks;
ctx->basic_blocks = ctx->basic_blocks->next;
- frags = total_size / new_size;
+ frags = (int)(total_size / new_size);
ctx->stats[new_size].blocks++;
ctx->stats[new_size].freefrags += frags;
/*
@@ -1605,7 +1603,7 @@ isc___mem_reallocate(isc_mem_t *ctx0, void *ptr, size_t size FLARG) {
oldsize -= ALIGNMENT_SIZE;
}
copysize = (oldsize > size) ? size : oldsize;
- memcpy(new_ptr, ptr, copysize);
+ memmove(new_ptr, ptr, copysize);
isc__mem_free(ctx0, ptr FLARG_PASS);
}
} else if (ptr != NULL)
diff --git a/lib/isc/netaddr.c b/lib/isc/netaddr.c
index 5cce1bc1a03e..0940df1713e5 100644
--- a/lib/isc/netaddr.c
+++ b/lib/isc/netaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2010-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -340,7 +340,7 @@ isc_netaddr_fromsockaddr(isc_netaddr_t *t, const isc_sockaddr_t *s) {
t->zone = 0;
break;
case AF_INET6:
- memcpy(&t->type.in6, &s->type.sin6.sin6_addr, 16);
+ memmove(&t->type.in6, &s->type.sin6.sin6_addr, 16);
#ifdef ISC_PLATFORM_HAVESCOPEID
t->zone = s->type.sin6.sin6_scope_id;
#else
@@ -349,7 +349,7 @@ isc_netaddr_fromsockaddr(isc_netaddr_t *t, const isc_sockaddr_t *s) {
break;
#ifdef ISC_PLATFORM_HAVESYSUNH
case AF_UNIX:
- memcpy(t->type.un, s->type.sunix.sun_path, sizeof(t->type.un));
+ memmove(t->type.un, s->type.sunix.sun_path, sizeof(t->type.un));
t->zone = 0;
break;
#endif
@@ -429,6 +429,6 @@ isc_netaddr_fromv4mapped(isc_netaddr_t *t, const isc_netaddr_t *s) {
memset(t, 0, sizeof(*t));
t->family = AF_INET;
- memcpy(&t->type.in, (char *)&src->type.in6 + 12, 4);
+ memmove(&t->type.in, (char *)&src->type.in6 + 12, 4);
return;
}
diff --git a/lib/isc/nothreads/include/isc/thread.h b/lib/isc/nothreads/include/isc/thread.h
index 313bc5f9590a..fee57005b62c 100644
--- a/lib/isc/nothreads/include/isc/thread.h
+++ b/lib/isc/nothreads/include/isc/thread.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -29,6 +29,7 @@ void
isc_thread_setconcurrency(unsigned int level);
#define isc_thread_self() ((unsigned long)0)
+#define isc_thread_yield() ((void)0)
ISC_LANG_ENDDECLS
diff --git a/lib/isc/pthreads/include/isc/thread.h b/lib/isc/pthreads/include/isc/thread.h
index 7dcc9527cf7b..47648830e911 100644
--- a/lib/isc/pthreads/include/isc/thread.h
+++ b/lib/isc/pthreads/include/isc/thread.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -41,6 +41,9 @@ isc_thread_create(isc_threadfunc_t, isc_threadarg_t, isc_thread_t *);
void
isc_thread_setconcurrency(unsigned int level);
+void
+isc_thread_yield(void);
+
/* XXX We could do fancier error handling... */
#define isc_thread_join(t, rp) \
diff --git a/lib/isc/pthreads/thread.c b/lib/isc/pthreads/thread.c
index 1b250fac2801..97821a2cadb0 100644
--- a/lib/isc/pthreads/thread.c
+++ b/lib/isc/pthreads/thread.c
@@ -21,6 +21,10 @@
#include <config.h>
+#if defined(HAVE_SCHED_H)
+#include <sched.h>
+#endif
+
#include <isc/thread.h>
#include <isc/util.h>
@@ -74,3 +78,14 @@ isc_thread_setconcurrency(unsigned int level) {
UNUSED(level);
#endif
}
+
+void
+isc_thread_yield(void) {
+#if defined(HAVE_SCHED_YIELD)
+ sched_yield();
+#elif defined( HAVE_PTHREAD_YIELD)
+ pthread_yield();
+#elif defined( HAVE_PTHREAD_YIELD_NP)
+ pthread_yield_np();
+#endif
+}
diff --git a/lib/isc/radix.c b/lib/isc/radix.c
index 35088788614e..82090d1fde91 100644
--- a/lib/isc/radix.c
+++ b/lib/isc/radix.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007-2009, 2011-2014 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
@@ -62,11 +62,11 @@ _new_prefix(isc_mem_t *mctx, isc_prefix_t **target, int family, void *dest,
if (family == AF_INET6) {
prefix->bitlen = (bitlen >= 0) ? bitlen : 128;
- memcpy(&prefix->add.sin6, dest, 16);
+ memmove(&prefix->add.sin6, dest, 16);
} else {
/* AF_UNSPEC is "any" or "none"--treat it as AF_INET */
prefix->bitlen = (bitlen >= 0) ? bitlen : 32;
- memcpy(&prefix->add.sin, dest, 4);
+ memmove(&prefix->add.sin, dest, 4);
}
prefix->family = family;
diff --git a/lib/isc/random.c b/lib/isc/random.c
index 8b73ed56927d..4c48e60fd77d 100644
--- a/lib/isc/random.c
+++ b/lib/isc/random.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -50,7 +50,7 @@ initialize_rand(void)
*/
pid = ((pid << 16) & 0xffff0000) | ((pid >> 16) & 0xffff);
- srand(time(NULL) ^ pid);
+ srand((unsigned)time(NULL) ^ pid);
#endif
}
diff --git a/lib/isc/safe.c b/lib/isc/safe.c
new file mode 100644
index 000000000000..fd2768718872
--- /dev/null
+++ b/lib/isc/safe.c
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2013 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$ */
+
+/*! \file */
+
+#include <config.h>
+
+#include <isc/safe.h>
+#include <isc/util.h>
+
+#ifdef _MSC_VER
+#pragma optimize("", off)
+#endif
+
+isc_boolean_t
+isc_safe_memcmp(const void *s1, const void *s2, size_t n) {
+ isc_uint8_t acc = 0;
+
+ if (n != 0U) {
+ const isc_uint8_t *p1 = s1, *p2 = s2;
+
+ do {
+ acc |= *p1++ ^ *p2++;
+ } while (--n != 0U);
+ }
+ return (ISC_TF(acc == 0));
+}
diff --git a/lib/isc/sha1.c b/lib/isc/sha1.c
index cce96036045f..aca90b43830a 100644
--- a/lib/isc/sha1.c
+++ b/lib/isc/sha1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012, 2014 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
@@ -209,7 +209,7 @@ transform(isc_uint32_t state[5], const unsigned char buffer[64]) {
INSIST(state != NULL);
block = &workspace;
- (void)memcpy(block, buffer, 64);
+ (void)memmove(block, buffer, 64);
/* Copy context->state[] to working vars */
a = state[0];
@@ -301,7 +301,7 @@ isc_sha1_update(isc_sha1_t *context, const unsigned char *data,
context->count[1] += (len >> 29) + 1;
j = (j >> 3) & 63;
if ((j + len) > 63) {
- (void)memcpy(&context->buffer[j], data, (i = 64 - j));
+ (void)memmove(&context->buffer[j], data, (i = 64 - j));
transform(context->state, context->buffer);
for (; i + 63 < len; i += 64)
transform(context->state, &data[i]);
@@ -310,7 +310,7 @@ isc_sha1_update(isc_sha1_t *context, const unsigned char *data,
i = 0;
}
- (void)memcpy(&context->buffer[j], &data[i], len - i);
+ (void)memmove(&context->buffer[j], &data[i], len - i);
}
diff --git a/lib/isc/sha2.c b/lib/isc/sha2.c
index aca048e73b12..a61ea99c2ace 100644
--- a/lib/isc/sha2.c
+++ b/lib/isc/sha2.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005-2007, 2009, 2011, 2012, 2014 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
@@ -560,8 +560,8 @@ isc_sha224_init(isc_sha224_t *context) {
if (context == (isc_sha256_t *)0) {
return;
}
- memcpy(context->state, sha224_initial_hash_value,
- ISC_SHA256_DIGESTLENGTH);
+ memmove(context->state, sha224_initial_hash_value,
+ ISC_SHA256_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA256_BLOCK_LENGTH);
context->bitcount = 0;
}
@@ -580,7 +580,7 @@ void
isc_sha224_final(isc_uint8_t digest[], isc_sha224_t *context) {
isc_uint8_t sha256_digest[ISC_SHA256_DIGESTLENGTH];
isc_sha256_final(sha256_digest, (isc_sha256_t *)context);
- memcpy(digest, sha256_digest, ISC_SHA224_DIGESTLENGTH);
+ memmove(digest, sha256_digest, ISC_SHA224_DIGESTLENGTH);
memset(sha256_digest, 0, ISC_SHA256_DIGESTLENGTH);
}
@@ -590,7 +590,7 @@ isc_sha256_init(isc_sha256_t *context) {
if (context == (isc_sha256_t *)0) {
return;
}
- memcpy(context->state, sha256_initial_hash_value,
+ memmove(context->state, sha256_initial_hash_value,
ISC_SHA256_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA256_BLOCK_LENGTH);
context->bitcount = 0;
@@ -803,7 +803,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
if (len >= freespace) {
/* Fill the buffer completely and process it */
- memcpy(&context->buffer[usedspace], data, freespace);
+ memmove(&context->buffer[usedspace], data, freespace);
context->bitcount += freespace << 3;
len -= freespace;
data += freespace;
@@ -811,7 +811,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
(isc_uint32_t*)context->buffer);
} else {
/* The buffer is not yet full */
- memcpy(&context->buffer[usedspace], data, len);
+ memmove(&context->buffer[usedspace], data, len);
context->bitcount += len << 3;
/* Clean up: */
usedspace = freespace = 0;
@@ -822,7 +822,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
}
while (len >= ISC_SHA256_BLOCK_LENGTH) {
/* Process as many complete blocks as we can */
- memcpy(context->buffer, data, ISC_SHA256_BLOCK_LENGTH);
+ memmove(context->buffer, data, ISC_SHA256_BLOCK_LENGTH);
isc_sha256_transform(context, (isc_uint32_t*)context->buffer);
context->bitcount += ISC_SHA256_BLOCK_LENGTH << 3;
len -= ISC_SHA256_BLOCK_LENGTH;
@@ -830,7 +830,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
}
if (len > 0U) {
/* There's left-overs, so save 'em */
- memcpy(context->buffer, data, len);
+ memmove(context->buffer, data, len);
context->bitcount += len << 3;
}
/* Clean up: */
@@ -900,7 +900,7 @@ isc_sha256_final(isc_uint8_t digest[], isc_sha256_t *context) {
}
}
#else
- memcpy(d, context->state, ISC_SHA256_DIGESTLENGTH);
+ memmove(d, context->state, ISC_SHA256_DIGESTLENGTH);
#endif
}
@@ -916,8 +916,8 @@ isc_sha512_init(isc_sha512_t *context) {
if (context == (isc_sha512_t *)0) {
return;
}
- memcpy(context->state, sha512_initial_hash_value,
- ISC_SHA512_DIGESTLENGTH);
+ memmove(context->state, sha512_initial_hash_value,
+ ISC_SHA512_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA512_BLOCK_LENGTH);
context->bitcount[0] = context->bitcount[1] = 0;
}
@@ -1122,7 +1122,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
if (len >= freespace) {
/* Fill the buffer completely and process it */
- memcpy(&context->buffer[usedspace], data, freespace);
+ memmove(&context->buffer[usedspace], data, freespace);
ADDINC128(context->bitcount, freespace << 3);
len -= freespace;
data += freespace;
@@ -1130,7 +1130,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
(isc_uint64_t*)context->buffer);
} else {
/* The buffer is not yet full */
- memcpy(&context->buffer[usedspace], data, len);
+ memmove(&context->buffer[usedspace], data, len);
ADDINC128(context->bitcount, len << 3);
/* Clean up: */
usedspace = freespace = 0;
@@ -1141,7 +1141,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
}
while (len >= ISC_SHA512_BLOCK_LENGTH) {
/* Process as many complete blocks as we can */
- memcpy(context->buffer, data, ISC_SHA512_BLOCK_LENGTH);
+ memmove(context->buffer, data, ISC_SHA512_BLOCK_LENGTH);
isc_sha512_transform(context, (isc_uint64_t*)context->buffer);
ADDINC128(context->bitcount, ISC_SHA512_BLOCK_LENGTH << 3);
len -= ISC_SHA512_BLOCK_LENGTH;
@@ -1149,7 +1149,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
}
if (len > 0U) {
/* There's left-overs, so save 'em */
- memcpy(context->buffer, data, len);
+ memmove(context->buffer, data, len);
ADDINC128(context->bitcount, len << 3);
}
/* Clean up: */
@@ -1224,7 +1224,7 @@ void isc_sha512_final(isc_uint8_t digest[], isc_sha512_t *context) {
}
}
#else
- memcpy(d, context->state, ISC_SHA512_DIGESTLENGTH);
+ memmove(d, context->state, ISC_SHA512_DIGESTLENGTH);
#endif
}
@@ -1239,8 +1239,8 @@ isc_sha384_init(isc_sha384_t *context) {
if (context == (isc_sha384_t *)0) {
return;
}
- memcpy(context->state, sha384_initial_hash_value,
- ISC_SHA512_DIGESTLENGTH);
+ memmove(context->state, sha384_initial_hash_value,
+ ISC_SHA512_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA384_BLOCK_LENGTH);
context->bitcount[0] = context->bitcount[1] = 0;
}
@@ -1277,7 +1277,7 @@ isc_sha384_final(isc_uint8_t digest[], isc_sha384_t *context) {
}
}
#else
- memcpy(d, context->state, ISC_SHA384_DIGESTLENGTH);
+ memmove(d, context->state, ISC_SHA384_DIGESTLENGTH);
#endif
}
diff --git a/lib/isc/sockaddr.c b/lib/isc/sockaddr.c
index 91a949b64253..cee6d700c02e 100644
--- a/lib/isc/sockaddr.c
+++ b/lib/isc/sockaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2010-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -332,7 +332,7 @@ isc_sockaddr_v6fromin(isc_sockaddr_t *sockaddr, const struct in_addr *ina,
#endif
sockaddr->type.sin6.sin6_addr.s6_addr[10] = 0xff;
sockaddr->type.sin6.sin6_addr.s6_addr[11] = 0xff;
- memcpy(&sockaddr->type.sin6.sin6_addr.s6_addr[12], ina, 4);
+ memmove(&sockaddr->type.sin6.sin6_addr.s6_addr[12], ina, 4);
sockaddr->type.sin6.sin6_port = htons(port);
sockaddr->length = sizeof(sockaddr->type.sin6);
ISC_LINK_INIT(sockaddr, link);
@@ -386,7 +386,7 @@ isc_sockaddr_fromnetaddr(isc_sockaddr_t *sockaddr, const isc_netaddr_t *na,
#ifdef ISC_PLATFORM_HAVESALEN
sockaddr->type.sin6.sin6_len = sizeof(sockaddr->type.sin6);
#endif
- memcpy(&sockaddr->type.sin6.sin6_addr, &na->type.in6, 16);
+ memmove(&sockaddr->type.sin6.sin6_addr, &na->type.in6, 16);
#ifdef ISC_PLATFORM_HAVESCOPEID
sockaddr->type.sin6.sin6_scope_id = isc_netaddr_getzone(na);
#endif
diff --git a/lib/isc/stats.c b/lib/isc/stats.c
index 8b624b2d478d..89e34b378087 100644
--- a/lib/isc/stats.c
+++ b/lib/isc/stats.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012, 2014 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
@@ -275,8 +275,8 @@ copy_counters(isc_stats_t *stats) {
}
#else
UNUSED(i);
- memcpy(stats->copiedcounters, stats->counters,
- stats->ncounters * sizeof(isc_stat_t));
+ memmove(stats->copiedcounters, stats->counters,
+ stats->ncounters * sizeof(isc_stat_t));
#endif
#ifdef ISC_RWLOCK_USEATOMIC
diff --git a/lib/isc/string.c b/lib/isc/string.c
index cba517c568f9..56ec444bffaa 100644
--- a/lib/isc/string.c
+++ b/lib/isc/string.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,34 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id$ */
+/*
+ * Copyright (c) 1990, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
/*! \file */
@@ -188,7 +215,7 @@ isc_string_regiondup(isc_mem_t *mctx, const isc_region_t *source) {
target = (char *) isc_mem_allocate(mctx, source->length + 1);
if (target != NULL) {
- memcpy(source->base, target, source->length);
+ memmove(source->base, target, source->length);
target[source->length] = '\0';
}
@@ -269,3 +296,24 @@ isc_string_strlcat(char *dst, const char *src, size_t size)
return(dlen + (s - src)); /* count does not include NUL */
}
+
+char *
+isc_string_strcasestr(const char *str, const char *search) {
+ char c, sc, *s;
+ size_t len;
+
+ if ((c = *search++) != 0) {
+ c = tolower((unsigned char) c);
+ len = strlen(search);
+ do {
+ do {
+ if ((sc = *str++) == 0)
+ return (NULL);
+ } while ((char) tolower((unsigned char) sc) != c);
+ } while (strncasecmp(str, search, len) != 0);
+ str--;
+ }
+ DE_CONST(str, s);
+ return (s);
+
+}
diff --git a/lib/isc/strtoul.c b/lib/isc/strtoul.c
index 18d93e21ce26..49b31f274f18 100644
--- a/lib/isc/strtoul.c
+++ b/lib/isc/strtoul.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
diff --git a/lib/isc/tm.c b/lib/isc/tm.c
new file mode 100644
index 000000000000..08af2bcc95dd
--- /dev/null
+++ b/lib/isc/tm.c
@@ -0,0 +1,438 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+/*-
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code was contributed to The NetBSD Foundation by Klaus Klein.
+ *
+ * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+
+#include <isc/tm.h>
+#include <isc/util.h>
+
+/*
+ * Portable conversion routines for struct tm, replacing
+ * timegm() and strptime(), which are not available on all
+ * platforms and don't always behave the same way when they
+ * are.
+ */
+
+/*
+ * We do not implement alternate representations. However, we always
+ * check whether a given modifier is allowed for a certain conversion.
+ */
+#define ALT_E 0x01
+#define ALT_O 0x02
+#define LEGAL_ALT(x) { if (alt_format & ~(x)) return (0); }
+
+#ifndef TM_YEAR_BASE
+#define TM_YEAR_BASE 1900
+#endif
+
+static const char *day[7] = {
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
+ "Friday", "Saturday"
+};
+static const char *abday[7] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+};
+static const char *mon[12] = {
+ "January", "February", "March", "April", "May", "June", "July",
+ "August", "September", "October", "November", "December"
+};
+static const char *abmon[12] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+};
+static const char *am_pm[2] = {
+ "AM", "PM"
+};
+
+static int
+conv_num(const char **buf, int *dest, int llim, int ulim) {
+ int result = 0;
+
+ /* The limit also determines the number of valid digits. */
+ int rulim = ulim;
+
+ if (**buf < '0' || **buf > '9')
+ return (0);
+
+ do {
+ result *= 10;
+ result += *(*buf)++ - '0';
+ rulim /= 10;
+ } while ((result * 10 <= ulim) &&
+ rulim && **buf >= '0' && **buf <= '9');
+
+ if (result < llim || result > ulim)
+ return (0);
+
+ *dest = result;
+ return (1);
+}
+
+time_t
+isc_tm_timegm(struct tm *tm) {
+ time_t ret;
+ int i, yday = 0, leapday;
+ int mdays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
+
+ leapday = ((((tm->tm_year + 1900 ) % 4) == 0 &&
+ ((tm->tm_year + 1900 ) % 100) != 0) ||
+ ((tm->tm_year + 1900 ) % 400) == 0) ? 1 : 0;
+ mdays[1] += leapday;
+
+ yday = tm->tm_mday - 1;
+ for (i = 1; i <= tm->tm_mon; i++)
+ yday += mdays[i - 1];
+ ret = tm->tm_sec +
+ (60 * tm->tm_min) +
+ (3600 * tm->tm_hour) +
+ (86400 * (yday +
+ ((tm->tm_year - 70) * 365) +
+ ((tm->tm_year - 69) / 4) -
+ ((tm->tm_year - 1) / 100) +
+ ((tm->tm_year + 299) / 400)));
+ return (ret);
+}
+
+char *
+isc_tm_strptime(const char *buf, const char *fmt, struct tm *tm) {
+ char c, *ret;
+ const char *bp;
+ size_t len = 0;
+ int alt_format, i, split_year = 0;
+
+ bp = buf;
+
+ while ((c = *fmt) != '\0') {
+ /* Clear `alternate' modifier prior to new conversion. */
+ alt_format = 0;
+
+ /* Eat up white-space. */
+ if (isspace((unsigned char) c)) {
+ while (isspace((unsigned char) *bp))
+ bp++;
+
+ fmt++;
+ continue;
+ }
+
+ if ((c = *fmt++) != '%')
+ goto literal;
+
+
+again: switch (c = *fmt++) {
+ case '%': /* "%%" is converted to "%". */
+literal:
+ if (c != *bp++)
+ return (0);
+ break;
+
+ /*
+ * "Alternative" modifiers. Just set the appropriate flag
+ * and start over again.
+ */
+ case 'E': /* "%E?" alternative conversion modifier. */
+ LEGAL_ALT(0);
+ alt_format |= ALT_E;
+ goto again;
+
+ case 'O': /* "%O?" alternative conversion modifier. */
+ LEGAL_ALT(0);
+ alt_format |= ALT_O;
+ goto again;
+
+ /*
+ * "Complex" conversion rules, implemented through recursion.
+ */
+ case 'c': /* Date and time, using the locale's format. */
+ LEGAL_ALT(ALT_E);
+ if (!(bp = isc_tm_strptime(bp, "%x %X", tm)))
+ return (0);
+ break;
+
+ case 'D': /* The date as "%m/%d/%y". */
+ LEGAL_ALT(0);
+ if (!(bp = isc_tm_strptime(bp, "%m/%d/%y", tm)))
+ return (0);
+ break;
+
+ case 'R': /* The time as "%H:%M". */
+ LEGAL_ALT(0);
+ if (!(bp = isc_tm_strptime(bp, "%H:%M", tm)))
+ return (0);
+ break;
+
+ case 'r': /* The time in 12-hour clock representation. */
+ LEGAL_ALT(0);
+ if (!(bp = isc_tm_strptime(bp, "%I:%M:%S %p", tm)))
+ return (0);
+ break;
+
+ case 'T': /* The time as "%H:%M:%S". */
+ LEGAL_ALT(0);
+ if (!(bp = isc_tm_strptime(bp, "%H:%M:%S", tm)))
+ return (0);
+ break;
+
+ case 'X': /* The time, using the locale's format. */
+ LEGAL_ALT(ALT_E);
+ if (!(bp = isc_tm_strptime(bp, "%H:%M:%S", tm)))
+ return (0);
+ break;
+
+ case 'x': /* The date, using the locale's format. */
+ LEGAL_ALT(ALT_E);
+ if (!(bp = isc_tm_strptime(bp, "%m/%d/%y", tm)))
+ return (0);
+ break;
+
+ /*
+ * "Elementary" conversion rules.
+ */
+ case 'A': /* The day of week, using the locale's form. */
+ case 'a':
+ LEGAL_ALT(0);
+ for (i = 0; i < 7; i++) {
+ /* Full name. */
+ len = strlen(day[i]);
+ if (strncasecmp(day[i], bp, len) == 0)
+ break;
+
+ /* Abbreviated name. */
+ len = strlen(abday[i]);
+ if (strncasecmp(abday[i], bp, len) == 0)
+ break;
+ }
+
+ /* Nothing matched. */
+ if (i == 7)
+ return (0);
+
+ tm->tm_wday = i;
+ bp += len;
+ break;
+
+ case 'B': /* The month, using the locale's form. */
+ case 'b':
+ case 'h':
+ LEGAL_ALT(0);
+ for (i = 0; i < 12; i++) {
+ /* Full name. */
+ len = strlen(mon[i]);
+ if (strncasecmp(mon[i], bp, len) == 0)
+ break;
+
+ /* Abbreviated name. */
+ len = strlen(abmon[i]);
+ if (strncasecmp(abmon[i], bp, len) == 0)
+ break;
+ }
+
+ /* Nothing matched. */
+ if (i == 12)
+ return (0);
+
+ tm->tm_mon = i;
+ bp += len;
+ break;
+
+ case 'C': /* The century number. */
+ LEGAL_ALT(ALT_E);
+ if (!(conv_num(&bp, &i, 0, 99)))
+ return (0);
+
+ if (split_year) {
+ tm->tm_year = (tm->tm_year % 100) + (i * 100);
+ } else {
+ tm->tm_year = i * 100;
+ split_year = 1;
+ }
+ break;
+
+ case 'd': /* The day of month. */
+ case 'e':
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_mday, 1, 31)))
+ return (0);
+ break;
+
+ case 'k': /* The hour (24-hour clock representation). */
+ LEGAL_ALT(0);
+ /* FALLTHROUGH */
+ case 'H':
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_hour, 0, 23)))
+ return (0);
+ break;
+
+ case 'l': /* The hour (12-hour clock representation). */
+ LEGAL_ALT(0);
+ /* FALLTHROUGH */
+ case 'I':
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_hour, 1, 12)))
+ return (0);
+ if (tm->tm_hour == 12)
+ tm->tm_hour = 0;
+ break;
+
+ case 'j': /* The day of year. */
+ LEGAL_ALT(0);
+ if (!(conv_num(&bp, &i, 1, 366)))
+ return (0);
+ tm->tm_yday = i - 1;
+ break;
+
+ case 'M': /* The minute. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_min, 0, 59)))
+ return (0);
+ break;
+
+ case 'm': /* The month. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &i, 1, 12)))
+ return (0);
+ tm->tm_mon = i - 1;
+ break;
+
+ case 'p': /* The locale's equivalent of AM/PM. */
+ LEGAL_ALT(0);
+ /* AM? */
+ if (strcasecmp(am_pm[0], bp) == 0) {
+ if (tm->tm_hour > 11)
+ return (0);
+
+ bp += strlen(am_pm[0]);
+ break;
+ }
+ /* PM? */
+ else if (strcasecmp(am_pm[1], bp) == 0) {
+ if (tm->tm_hour > 11)
+ return (0);
+
+ tm->tm_hour += 12;
+ bp += strlen(am_pm[1]);
+ break;
+ }
+
+ /* Nothing matched. */
+ return (0);
+
+ case 'S': /* The seconds. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_sec, 0, 61)))
+ return (0);
+ break;
+
+ case 'U': /* The week of year, beginning on sunday. */
+ case 'W': /* The week of year, beginning on monday. */
+ LEGAL_ALT(ALT_O);
+ /*
+ * XXX This is bogus, as we can not assume any valid
+ * information present in the tm structure at this
+ * point to calculate a real value, so just check the
+ * range for now.
+ */
+ if (!(conv_num(&bp, &i, 0, 53)))
+ return (0);
+ break;
+
+ case 'w': /* The day of week, beginning on sunday. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_wday, 0, 6)))
+ return (0);
+ break;
+
+ case 'Y': /* The year. */
+ LEGAL_ALT(ALT_E);
+ if (!(conv_num(&bp, &i, 0, 9999)))
+ return (0);
+
+ tm->tm_year = i - TM_YEAR_BASE;
+ break;
+
+ case 'y': /* The year within 100 years of the epoch. */
+ LEGAL_ALT(ALT_E | ALT_O);
+ if (!(conv_num(&bp, &i, 0, 99)))
+ return (0);
+
+ if (split_year) {
+ tm->tm_year = ((tm->tm_year / 100) * 100) + i;
+ break;
+ }
+ split_year = 1;
+ if (i <= 68)
+ tm->tm_year = i + 2000 - TM_YEAR_BASE;
+ else
+ tm->tm_year = i + 1900 - TM_YEAR_BASE;
+ break;
+
+ /*
+ * Miscellaneous conversions.
+ */
+ case 'n': /* Any kind of white-space. */
+ case 't':
+ LEGAL_ALT(0);
+ while (isspace((unsigned char) *bp))
+ bp++;
+ break;
+
+
+ default: /* Unknown/unsupported conversion. */
+ return (0);
+ }
+
+
+ }
+
+ /* LINTED functional specification */
+ DE_CONST(bp, ret);
+ return (ret);
+}
diff --git a/lib/isc/unix/app.c b/lib/isc/unix/app.c
index 5393be942504..d97d7c6bbcc9 100644
--- a/lib/isc/unix/app.c
+++ b/lib/isc/unix/app.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -107,6 +107,11 @@ ISC_APPFUNC_SCOPE void isc__appctx_setsocketmgr(isc_appctx_t *ctx,
isc_socketmgr_t *socketmgr);
ISC_APPFUNC_SCOPE void isc__appctx_settimermgr(isc_appctx_t *ctx,
isc_timermgr_t *timermgr);
+ISC_APPFUNC_SCOPE isc_result_t isc__app_ctxonrun(isc_appctx_t *ctx,
+ isc_mem_t *mctx,
+ isc_task_t *task,
+ isc_taskaction_t action,
+ void *arg);
/*
* The application context of this module. This implementation actually
@@ -148,8 +153,8 @@ static struct {
* The following are defined just for avoiding unused static functions.
*/
#ifndef BIND9
- void *run, *shutdown, *start, *onrun, *reload, *finish,
- *block, *unblock;
+ void *run, *shutdown, *start, *onrun,
+ *reload, *finish, *block, *unblock;
#endif
} appmethods = {
{
@@ -161,7 +166,8 @@ static struct {
isc__app_ctxfinish,
isc__appctx_settaskmgr,
isc__appctx_setsocketmgr,
- isc__appctx_settimermgr
+ isc__appctx_settimermgr,
+ isc__app_ctxonrun
}
#ifndef BIND9
,
@@ -387,13 +393,22 @@ ISC_APPFUNC_SCOPE isc_result_t
isc__app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
void *arg)
{
+ return (isc__app_ctxonrun((isc_appctx_t *)&isc_g_appctx, mctx,
+ task, action, arg));
+}
+
+isc_result_t
+isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task,
+ isc_taskaction_t action, void *arg)
+{
+ isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
isc_event_t *event;
isc_task_t *cloned_task = NULL;
isc_result_t result;
- LOCK(&isc_g_appctx.lock);
+ LOCK(&ctx->lock);
- if (isc_g_appctx.running) {
+ if (ctx->running) {
result = ISC_R_ALREADYRUNNING;
goto unlock;
}
@@ -410,12 +425,12 @@ isc__app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
goto unlock;
}
- ISC_LIST_APPEND(isc_g_appctx.on_run, event, ev_link);
+ ISC_LIST_APPEND(ctx->on_run, event, ev_link);
result = ISC_R_SUCCESS;
unlock:
- UNLOCK(&isc_g_appctx.lock);
+ UNLOCK(&ctx->lock);
return (result);
}
diff --git a/lib/isc/unix/file.c b/lib/isc/unix/file.c
index 7bb25d725f07..1b7d563d875a 100644
--- a/lib/isc/unix/file.c
+++ b/lib/isc/unix/file.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -97,6 +93,33 @@ file_stats(const char *file, struct stat *stats) {
return (result);
}
+static isc_result_t
+fd_stats(int fd, struct stat *stats) {
+ isc_result_t result = ISC_R_SUCCESS;
+
+ REQUIRE(stats != NULL);
+
+ if (fstat(fd, stats) != 0)
+ result = isc__errno2result(errno);
+
+ return (result);
+}
+
+isc_result_t
+isc_file_getsizefd(int fd, off_t *size) {
+ isc_result_t result;
+ struct stat stats;
+
+ REQUIRE(size != NULL);
+
+ result = fd_stats(fd, &stats);
+
+ if (result == ISC_R_SUCCESS)
+ *size = stats.st_size;
+
+ return (result);
+}
+
isc_result_t
isc_file_mode(const char *file, mode_t *modep) {
isc_result_t result;
@@ -462,7 +485,7 @@ isc_file_progname(const char *filename, char *buf, size_t buflen) {
if (len > buflen)
return (ISC_R_NOSPACE);
- memcpy(buf, base, len);
+ memmove(buf, base, len);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/unix/ifiter_getifaddrs.c b/lib/isc/unix/ifiter_getifaddrs.c
index 637450aaf4f5..cf1c0c18fba8 100644
--- a/lib/isc/unix/ifiter_getifaddrs.c
+++ b/lib/isc/unix/ifiter_getifaddrs.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -159,7 +159,7 @@ internal_current(isc_interfaceiter_t *iter) {
namelen = sizeof(iter->current.name) - 1;
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, ifa->ifa_name, namelen);
+ memmove(iter->current.name, ifa->ifa_name, namelen);
iter->current.flags = 0;
diff --git a/lib/isc/unix/ifiter_ioctl.c b/lib/isc/unix/ifiter_ioctl.c
index 38c34fd61ab1..f0026c285b80 100644
--- a/lib/isc/unix/ifiter_ioctl.c
+++ b/lib/isc/unix/ifiter_ioctl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -398,7 +398,7 @@ isc_interfaceiter_create(isc_mem_t *mctx, isc_interfaceiter_t **iterp) {
static void
get_inaddr(isc_netaddr_t *dst, struct in_addr *src) {
dst->family = AF_INET;
- memcpy(&dst->type.in, src, sizeof(struct in_addr));
+ memmove(&dst->type.in, src, sizeof(struct in_addr));
}
static isc_result_t
@@ -454,7 +454,7 @@ internal_current4(isc_interfaceiter_t *iter) {
ifrp = (struct ifreq *)((char *) iter->ifc.ifc_req + iter->pos);
memset(&ifreq, 0, sizeof(ifreq));
- memcpy(&ifreq, ifrp, sizeof(ifreq));
+ memmove(&ifreq, ifrp, sizeof(ifreq));
family = ifreq.ifr_addr.sa_family;
#if defined(ISC_PLATFORM_HAVEIPV6)
@@ -469,7 +469,7 @@ internal_current4(isc_interfaceiter_t *iter) {
INSIST(sizeof(ifreq.ifr_name) <= sizeof(iter->current.name));
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, ifreq.ifr_name, sizeof(ifreq.ifr_name));
+ memmove(iter->current.name, ifreq.ifr_name, sizeof(ifreq.ifr_name));
get_addr(family, &iter->current.address,
(struct sockaddr *)&ifrp->ifr_addr, ifreq.ifr_name);
@@ -524,8 +524,8 @@ internal_current4(isc_interfaceiter_t *iter) {
#if !defined(ISC_PLATFORM_HAVEIF_LADDRREQ) && defined(SIOCGLIFADDR)
memset(&lifreq, 0, sizeof(lifreq));
- memcpy(lifreq.lifr_name, iter->current.name, sizeof(lifreq.lifr_name));
- memcpy(&lifreq.lifr_addr, &iter->current.address.type.in6,
+ memmove(lifreq.lifr_name, iter->current.name, sizeof(lifreq.lifr_name));
+ memmove(&lifreq.lifr_addr, &iter->current.address.type.in6,
sizeof(iter->current.address.type.in6));
if (ioctl(iter->socket, SIOCGLIFADDR, &lifreq) < 0) {
@@ -599,7 +599,7 @@ internal_current4(isc_interfaceiter_t *iter) {
* Get the network mask.
*/
memset(&ifreq, 0, sizeof(ifreq));
- memcpy(&ifreq, ifrp, sizeof(ifreq));
+ memmove(&ifreq, ifrp, sizeof(ifreq));
/*
* Ignore the HP/UX warning about "integer overflow during
* conversion. It comes from its own macro definition,
@@ -637,7 +637,7 @@ internal_current6(isc_interfaceiter_t *iter) {
ifrp = (struct LIFREQ *)((char *) iter->lifc.lifc_req + iter->pos6);
memset(&lifreq, 0, sizeof(lifreq));
- memcpy(&lifreq, ifrp, sizeof(lifreq));
+ memmove(&lifreq, ifrp, sizeof(lifreq));
family = lifreq.lifr_addr.ss_family;
#ifdef ISC_PLATFORM_HAVEIPV6
@@ -652,7 +652,7 @@ internal_current6(isc_interfaceiter_t *iter) {
INSIST(sizeof(lifreq.lifr_name) <= sizeof(iter->current.name));
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, lifreq.lifr_name, sizeof(lifreq.lifr_name));
+ memmove(iter->current.name, lifreq.lifr_name, sizeof(lifreq.lifr_name));
get_addr(family, &iter->current.address,
(struct sockaddr *)&lifreq.lifr_addr, lifreq.lifr_name);
@@ -739,7 +739,7 @@ internal_current6(isc_interfaceiter_t *iter) {
* Get the network mask. Netmask already zeroed.
*/
memset(&lifreq, 0, sizeof(lifreq));
- memcpy(&lifreq, ifrp, sizeof(lifreq));
+ memmove(&lifreq, ifrp, sizeof(lifreq));
#ifdef lifr_addrlen
/*
diff --git a/lib/isc/unix/ifiter_sysctl.c b/lib/isc/unix/ifiter_sysctl.c
index 9d5bf6d9e7c0..102ecc1fee28 100644
--- a/lib/isc/unix/ifiter_sysctl.c
+++ b/lib/isc/unix/ifiter_sysctl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -37,7 +37,7 @@
sizeof(__uint64_t))
#else
#define ROUNDUP(a) ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) \
- : sizeof(long))
+ : sizeof(long))
#endif
#define IFITER_MAGIC ISC_MAGIC('I', 'F', 'I', 'S')
@@ -58,9 +58,9 @@ struct isc_interfaceiter {
static int mib[6] = {
CTL_NET,
PF_ROUTE,
- 0,
+ 0,
0, /* Any address family. */
- NET_RT_IFLIST,
+ NET_RT_IFLIST,
0 /* Flags. */
};
@@ -171,7 +171,7 @@ internal_current(isc_interfaceiter_t *iter) {
namelen = sizeof(iter->current.name) - 1;
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, sdl->sdl_data, namelen);
+ memmove(iter->current.name, sdl->sdl_data, namelen);
iter->current.flags = 0;
diff --git a/lib/isc/unix/include/isc/Makefile.in b/lib/isc/unix/include/isc/Makefile.in
index d3b508425225..6acad0067a77 100644
--- a/lib/isc/unix/include/isc/Makefile.in
+++ b/lib/isc/unix/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -21,7 +21,7 @@ top_srcdir = @top_srcdir@
@BIND9_VERSION@
-HEADERS = dir.h int.h net.h netdb.h offset.h stdtime.h \
+HEADERS = dir.h int.h net.h netdb.h offset.h stat.h stdtime.h \
syslog.h time.h
SUBDIRS =
diff --git a/lib/isc/unix/include/isc/time.h b/lib/isc/unix/include/isc/time.h
index d81d854a24e2..2a83f099305f 100644
--- a/lib/isc/unix/include/isc/time.h
+++ b/lib/isc/unix/include/isc/time.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -315,6 +315,16 @@ isc_time_formathttptimestamp(const isc_time_t *t, char *buf, unsigned int len);
*
*/
+isc_result_t
+isc_time_parsehttptimestamp(char *input, isc_time_t *t);
+/*%<
+ * Parse the time in 'input' into the isc_time_t pointed to by 't',
+ * expecting a format like "Mon, 30 Aug 2000 04:06:47 GMT"
+ *
+ * Requires:
+ *\li 'buf' and 't' are not NULL.
+ */
+
void
isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len);
/*%<
diff --git a/lib/isc/unix/interfaceiter.c b/lib/isc/unix/interfaceiter.c
index af2b06d093a6..7272f718230f 100644
--- a/lib/isc/unix/interfaceiter.c
+++ b/lib/isc/unix/interfaceiter.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -79,14 +79,14 @@ get_addr(unsigned int family, isc_netaddr_t *dst, struct sockaddr *src,
dst->family = family;
switch (family) {
case AF_INET:
- memcpy(&dst->type.in,
- &((struct sockaddr_in *) src)->sin_addr,
- sizeof(struct in_addr));
+ memmove(&dst->type.in,
+ &((struct sockaddr_in *) src)->sin_addr,
+ sizeof(struct in_addr));
break;
case AF_INET6:
sa6 = (struct sockaddr_in6 *)src;
- memcpy(&dst->type.in6, &sa6->sin6_addr,
- sizeof(struct in6_addr));
+ memmove(&dst->type.in6, &sa6->sin6_addr,
+ sizeof(struct in6_addr));
#ifdef ISC_PLATFORM_HAVESCOPEID
if (sa6->sin6_scope_id != 0)
isc_netaddr_setzone(dst, sa6->sin6_scope_id);
@@ -105,8 +105,8 @@ get_addr(unsigned int family, isc_netaddr_t *dst, struct sockaddr *src,
if (IN6_IS_ADDR_LINKLOCAL(&sa6->sin6_addr)) {
isc_uint16_t zone16;
- memcpy(&zone16, &sa6->sin6_addr.s6_addr[2],
- sizeof(zone16));
+ memmove(&zone16, &sa6->sin6_addr.s6_addr[2],
+ sizeof(zone16));
zone16 = ntohs(zone16);
if (zone16 != 0) {
/* the zone ID is embedded */
@@ -252,7 +252,7 @@ isc_interfaceiter_current(isc_interfaceiter_t *iter,
isc_interface_t *ifdata)
{
REQUIRE(iter->result == ISC_R_SUCCESS);
- memcpy(ifdata, &iter->current, sizeof(*ifdata));
+ memmove(ifdata, &iter->current, sizeof(*ifdata));
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c
index 7bd12aaa31ed..d1ac96f53514 100644
--- a/lib/isc/unix/socket.c
+++ b/lib/isc/unix/socket.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -505,6 +505,11 @@ isc__socket_sendtov(isc_socket_t *sock, isc_bufferlist_t *buflist,
isc_task_t *task, isc_taskaction_t action, const void *arg,
isc_sockaddr_t *address, struct in6_pktinfo *pktinfo);
ISC_SOCKETFUNC_SCOPE isc_result_t
+isc__socket_sendtov2(isc_socket_t *sock, isc_bufferlist_t *buflist,
+ isc_task_t *task, isc_taskaction_t action, const void *arg,
+ isc_sockaddr_t *address, struct in6_pktinfo *pktinfo,
+ unsigned int flags);
+ISC_SOCKETFUNC_SCOPE isc_result_t
isc__socket_sendto2(isc_socket_t *sock, isc_region_t *region,
isc_task_t *task,
isc_sockaddr_t *address, struct in6_pktinfo *pktinfo,
@@ -563,8 +568,8 @@ static struct {
* The following are defined just for avoiding unused static functions.
*/
#ifndef BIND9
- void *recvv, *send, *sendv, *sendto2, *cleanunix, *permunix, *filter,
- *listen, *accept, *getpeername, *isbound;
+ void *recvv, *send, *sendv, *sendto2, *sendtov, *cleanunix, *permunix,
+ *filter, *listen, *accept, *getpeername, *isbound;
#endif
} socketmethods = {
{
@@ -588,6 +593,7 @@ static struct {
,
(void *)isc__socket_recvv, (void *)isc__socket_send,
(void *)isc__socket_sendv, (void *)isc__socket_sendto2,
+ (void *)isc__socket_sendtov,
(void *)isc__socket_cleanunix, (void *)isc__socket_permunix,
(void *)isc__socket_filter, (void *)isc__socket_listen,
(void *)isc__socket_accept, (void *)isc__socket_getpeername,
@@ -1255,8 +1261,8 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
&& cmsgp->cmsg_type == IPV6_PKTINFO) {
pktinfop = (struct in6_pktinfo *)CMSG_DATA(cmsgp);
- memcpy(&dev->pktinfo, pktinfop,
- sizeof(struct in6_pktinfo));
+ memmove(&dev->pktinfo, pktinfop,
+ sizeof(struct in6_pktinfo));
dev->attributes |= ISC_SOCKEVENTATTR_PKTINFO;
socket_log(sock, NULL, TRACE,
isc_msgcat, ISC_MSGSET_SOCKET,
@@ -1274,7 +1280,7 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
&& cmsgp->cmsg_type == SCM_TIMESTAMP) {
struct timeval tv;
timevalp = CMSG_DATA(cmsgp);
- memcpy(&tv, timevalp, sizeof(tv));
+ memmove(&tv, timevalp, sizeof(tv));
dev->timestamp.seconds = tv.tv_sec;
dev->timestamp.nanoseconds = tv.tv_usec * 1000;
dev->attributes |= ISC_SOCKEVENTATTR_TIMESTAMP;
@@ -1400,7 +1406,7 @@ build_msghdr_send(isc__socket_t *sock, isc_socketevent_t *dev,
cmsgp->cmsg_type = IPV6_PKTINFO;
cmsgp->cmsg_len = cmsg_len(sizeof(struct in6_pktinfo));
pktinfop = (struct in6_pktinfo *)CMSG_DATA(cmsgp);
- memcpy(pktinfop, &dev->pktinfo, sizeof(struct in6_pktinfo));
+ memmove(pktinfop, &dev->pktinfo, sizeof(struct in6_pktinfo));
#if defined(IPV6_USE_MIN_MTU)
/*
* Set IPV6_USE_MIN_MTU as a per packet option as FreeBSD
@@ -1415,7 +1421,7 @@ build_msghdr_send(isc__socket_t *sock, isc_socketevent_t *dev,
cmsgp->cmsg_level = IPPROTO_IPV6;
cmsgp->cmsg_type = IPV6_USE_MIN_MTU;
cmsgp->cmsg_len = cmsg_len(sizeof(use_min_mtu));
- memcpy(CMSG_DATA(cmsgp), &use_min_mtu, sizeof(use_min_mtu));
+ memmove(CMSG_DATA(cmsgp), &use_min_mtu, sizeof(use_min_mtu));
#endif
}
#endif /* USE_CMSG && ISC_PLATFORM_HAVEIPV6 */
@@ -1700,6 +1706,10 @@ 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);
+ /* Should never get this one but it was seen. */
+#ifdef ENOPROTOOPT
+ SOFT_OR_HARD(ENOPROTOOPT, ISC_R_HOSTUNREACH);
+#endif
/*
* HPUX returns EPROTO and EINVAL on receiving some ICMP/ICMPv6
* errors.
@@ -3853,10 +3863,10 @@ watcher(void *uap) {
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);
+ memmove(manager->read_fds_copy, manager->read_fds,
+ manager->fd_bufsize);
+ memmove(manager->write_fds_copy, manager->write_fds,
+ manager->fd_bufsize);
maxfd = manager->maxfd + 1;
UNLOCK(&manager->lock);
@@ -4787,15 +4797,25 @@ ISC_SOCKETFUNC_SCOPE isc_result_t
isc__socket_sendv(isc_socket_t *sock, isc_bufferlist_t *buflist,
isc_task_t *task, isc_taskaction_t action, const void *arg)
{
- return (isc__socket_sendtov(sock, buflist, task, action, arg, NULL,
- NULL));
+ return (isc__socket_sendtov2(sock, buflist, task, action, arg, NULL,
+ NULL, 0));
}
ISC_SOCKETFUNC_SCOPE isc_result_t
-isc__socket_sendtov(isc_socket_t *sock0, isc_bufferlist_t *buflist,
+isc__socket_sendtov(isc_socket_t *sock, isc_bufferlist_t *buflist,
isc_task_t *task, isc_taskaction_t action, const void *arg,
isc_sockaddr_t *address, struct in6_pktinfo *pktinfo)
{
+ return (isc__socket_sendtov2(sock, buflist, task, action, arg, address,
+ pktinfo, 0));
+}
+
+ISC_SOCKETFUNC_SCOPE isc_result_t
+isc__socket_sendtov2(isc_socket_t *sock0, isc_bufferlist_t *buflist,
+ isc_task_t *task, isc_taskaction_t action, const void *arg,
+ isc_sockaddr_t *address, struct in6_pktinfo *pktinfo,
+ unsigned int flags)
+{
isc__socket_t *sock = (isc__socket_t *)sock0;
isc_socketevent_t *dev;
isc__socketmgr_t *manager;
@@ -4828,7 +4848,7 @@ isc__socket_sendtov(isc_socket_t *sock0, isc_bufferlist_t *buflist,
buffer = ISC_LIST_HEAD(*buflist);
}
- return (socket_send(sock, dev, task, address, pktinfo, 0));
+ return (socket_send(sock, dev, task, address, pktinfo, flags));
}
ISC_SOCKETFUNC_SCOPE isc_result_t
@@ -5829,9 +5849,9 @@ isc__socketmgr_waitevents(isc_socketmgr_t *manager0, struct timeval *tvp,
swait_private.nevents = ioctl(manager->devpoll_fd, DP_POLL, &dvp);
n = swait_private.nevents;
#elif defined(USE_SELECT)
- memcpy(manager->read_fds_copy, manager->read_fds, manager->fd_bufsize);
- memcpy(manager->write_fds_copy, manager->write_fds,
- manager->fd_bufsize);
+ memmove(manager->read_fds_copy, manager->read_fds, manager->fd_bufsize);
+ memmove(manager->write_fds_copy, manager->write_fds,
+ manager->fd_bufsize);
swait_private.readset = manager->read_fds_copy;
swait_private.writeset = manager->write_fds_copy;
diff --git a/lib/isc/unix/stdio.c b/lib/isc/unix/stdio.c
index 360c8c644afc..90e3b2ab3079 100644
--- a/lib/isc/unix/stdio.c
+++ b/lib/isc/unix/stdio.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -24,6 +24,7 @@
#include <isc/stdio.h>
#include <isc/stat.h>
+#include <isc/util.h>
#include "errno2result.h"
@@ -50,10 +51,10 @@ isc_stdio_close(FILE *f) {
}
isc_result_t
-isc_stdio_seek(FILE *f, long offset, int whence) {
+isc_stdio_seek(FILE *f, off_t offset, int whence) {
int r;
- r = fseek(f, offset, whence);
+ r = fseeko(f, offset, whence);
if (r == 0)
return (ISC_R_SUCCESS);
else
@@ -61,6 +62,20 @@ isc_stdio_seek(FILE *f, long offset, int whence) {
}
isc_result_t
+isc_stdio_tell(FILE *f, off_t *offsetp) {
+ off_t r;
+
+ REQUIRE(offsetp != NULL);
+
+ r = ftello(f);
+ if (r >= 0) {
+ *offsetp = r;
+ return (ISC_R_SUCCESS);
+ } else
+ return (isc__errno2result(errno));
+}
+
+isc_result_t
isc_stdio_read(void *ptr, size_t size, size_t nmemb, FILE *f, size_t *nret) {
isc_result_t result = ISC_R_SUCCESS;
size_t r;
diff --git a/lib/isc/unix/time.c b/lib/isc/unix/time.c
index e820afb1eaa0..890b9192ba5a 100644
--- a/lib/isc/unix/time.c
+++ b/lib/isc/unix/time.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -23,6 +23,7 @@
#include <errno.h>
#include <limits.h>
+#include <stdlib.h>
#include <syslog.h>
#include <time.h>
@@ -33,6 +34,7 @@
#include <isc/strerror.h>
#include <isc/string.h>
#include <isc/time.h>
+#include <isc/tm.h>
#include <isc/util.h>
#define NS_PER_S 1000000000 /*%< Nanoseconds per second. */
@@ -407,6 +409,24 @@ isc_time_formathttptimestamp(const isc_time_t *t, char *buf, unsigned int len) {
INSIST(flen < len);
}
+isc_result_t
+isc_time_parsehttptimestamp(char *buf, isc_time_t *t) {
+ struct tm t_tm;
+ time_t when;
+ char *p;
+
+ REQUIRE(buf != NULL);
+ REQUIRE(t != NULL);
+ p = isc_tm_strptime(buf, "%a, %d %b %Y %H:%M:%S", &t_tm);
+ if (p == NULL)
+ return (ISC_R_UNEXPECTED);
+ when = isc_tm_timegm(&t_tm);
+ if (when == -1)
+ return (ISC_R_UNEXPECTED);
+ isc_time_set(t, when, 0);
+ return (ISC_R_SUCCESS);
+}
+
void
isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len) {
time_t now;
diff --git a/lib/isccc/api b/lib/isccc/api
index 47724c51e39f..864bdc90941c 100644
--- a/lib/isccc/api
+++ b/lib/isccc/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 3
+LIBREVISION = 6
LIBAGE = 0
diff --git a/lib/isccc/base64.c b/lib/isccc/base64.c
index 78b34edf4f92..bf8487e2d6ba 100644
--- a/lib/isccc/base64.c
+++ b/lib/isccc/base64.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -53,8 +53,9 @@ isccc_base64_encode(isccc_region_t *source, int wordlength,
isc_result_t result;
sr.base = source->rstart;
- sr.length = source->rend - source->rstart;
- isc_buffer_init(&tb, target->rstart, target->rend - target->rstart);
+ sr.length = (unsigned int)(source->rend - source->rstart);
+ isc_buffer_init(&tb, target->rstart,
+ (unsigned int)(target->rend - target->rstart));
result = isc_base64_totext(&sr, wordlength, wordbreak, &tb);
if (result != ISC_R_SUCCESS)
@@ -69,7 +70,8 @@ isccc_base64_decode(const char *cstr, isccc_region_t *target) {
isc_buffer_t b;
isc_result_t result;
- isc_buffer_init(&b, target->rstart, target->rend - target->rstart);
+ isc_buffer_init(&b, target->rstart,
+ (unsigned int)(target->rend - target->rstart));
result = isc_base64_decodestring(cstr, &b);
if (result != ISC_R_SUCCESS)
return (result);
diff --git a/lib/isccc/cc.c b/lib/isccc/cc.c
index 07f8157b0aa6..69e7f7cee0b7 100644
--- a/lib/isccc/cc.c
+++ b/lib/isccc/cc.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2007, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2007, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -42,6 +42,7 @@
#include <isc/assertions.h>
#include <isc/hmacmd5.h>
#include <isc/print.h>
+#include <isc/safe.h>
#include <isc/stdlib.h>
#include <isccc/alist.h>
@@ -86,7 +87,7 @@ list_towire(isccc_sexpr_t *alist, isccc_region_t *target);
static isc_result_t
value_towire(isccc_sexpr_t *elt, isccc_region_t *target)
{
- size_t len;
+ unsigned int len;
unsigned char *lenp;
isccc_region_t *vr;
isc_result_t result;
@@ -116,7 +117,7 @@ value_towire(isccc_sexpr_t *elt, isccc_region_t *target)
result = table_towire(elt, target);
if (result != ISC_R_SUCCESS)
return (result);
- len = (size_t)(target->rstart - lenp);
+ len = (unsigned int)(target->rstart - lenp);
/*
* 'len' is 4 bytes too big, since it counts
* the placeholder length too. Adjust and
@@ -140,7 +141,7 @@ value_towire(isccc_sexpr_t *elt, isccc_region_t *target)
result = list_towire(elt, target);
if (result != ISC_R_SUCCESS)
return (result);
- len = (size_t)(target->rstart - lenp);
+ len = (unsigned int)(target->rstart - lenp);
/*
* 'len' is 4 bytes too big, since it counts
* the placeholder length. Adjust and emit.
@@ -264,7 +265,8 @@ isccc_cc_towire(isccc_sexpr_t *alist, isccc_region_t *target,
if (result != ISC_R_SUCCESS)
return (result);
if (secret != NULL)
- return (sign(signed_rstart, (target->rstart - signed_rstart),
+ return (sign(signed_rstart,
+ (unsigned int)(target->rstart - signed_rstart),
hmd5_rstart, secret));
return (ISC_R_SUCCESS);
}
@@ -311,7 +313,8 @@ verify(isccc_sexpr_t *alist, unsigned char *data, unsigned int length,
/*
* Verify.
*/
- if (strcmp((char *)digestb64, isccc_sexpr_tostring(hmd5)) != 0)
+ if (!isc_safe_memcmp((unsigned char *) isccc_sexpr_tostring(hmd5),
+ digestb64, HMD5_LENGTH))
return (ISCCC_R_BADAUTH);
return (ISC_R_SUCCESS);
@@ -402,6 +405,7 @@ table_fromwire(isccc_region_t *source, isccc_region_t *secret,
if (secret != NULL) {
if (checksum_rstart != NULL)
result = verify(alist, checksum_rstart,
+ (unsigned int)
(source->rend - checksum_rstart),
secret);
else
diff --git a/lib/isccc/include/isccc/util.h b/lib/isccc/include/isccc/util.h
index 2e36b6e32dc0..4b8c7ad93f90 100644
--- a/lib/isccc/include/isccc/util.h
+++ b/lib/isccc/include/isccc/util.h
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -52,37 +52,37 @@
#define GET16(v, w) \
do { \
v = (unsigned int)w[0] << 8; \
- v |= (unsigned int)w[1]; \
+ v |= (unsigned int)w[1]; \
w += 2; \
} while (0)
#define GET24(v, w) \
do { \
- v = (unsigned int)w[0] << 16; \
- v |= (unsigned int)w[1] << 8; \
- v |= (unsigned int)w[2]; \
+ v = (unsigned int)w[0] << 16; \
+ v |= (unsigned int)w[1] << 8; \
+ v |= (unsigned int)w[2]; \
w += 3; \
} while (0)
#define GET32(v, w) \
do { \
v = (unsigned int)w[0] << 24; \
- v |= (unsigned int)w[1] << 16; \
- v |= (unsigned int)w[2] << 8; \
- v |= (unsigned int)w[3]; \
+ v |= (unsigned int)w[1] << 16; \
+ v |= (unsigned int)w[2] << 8; \
+ v |= (unsigned int)w[3]; \
w += 4; \
} while (0)
#define GET64(v, w) \
do { \
v = (isc_uint64_t)w[0] << 56; \
- v |= (isc_uint64_t)w[1] << 48; \
- v |= (isc_uint64_t)w[2] << 40; \
- v |= (isc_uint64_t)w[3] << 32; \
- v |= (isc_uint64_t)w[4] << 24; \
- v |= (isc_uint64_t)w[5] << 16; \
- v |= (isc_uint64_t)w[6] << 8; \
- v |= (isc_uint64_t)w[7]; \
+ v |= (isc_uint64_t)w[1] << 48; \
+ v |= (isc_uint64_t)w[2] << 40; \
+ v |= (isc_uint64_t)w[3] << 32; \
+ v |= (isc_uint64_t)w[4] << 24; \
+ v |= (isc_uint64_t)w[5] << 16; \
+ v |= (isc_uint64_t)w[6] << 8; \
+ v |= (isc_uint64_t)w[7]; \
w += 8; \
} while (0)
@@ -91,7 +91,7 @@
GET8(v, w); \
if (v == 0) \
d = ISCCC_TRUE; \
- else { \
+ else { \
d = ISCCC_FALSE; \
if (v == 255) \
GET16(v, w); \
@@ -101,7 +101,7 @@
#define GETC32(v, w) \
do { \
GET24(v, w); \
- if (v == 0xffffffu) \
+ if (v == 0xffffffu) \
GET32(v, w); \
} while (0)
@@ -109,7 +109,7 @@
#define GET_MEM(v, c, w) \
do { \
- memcpy(v, w, c); \
+ memmove(v, w, c); \
w += c; \
} while (0)
@@ -193,7 +193,7 @@
#define PUT_MEM(s, c, w) \
do { \
- memcpy(w, s, c); \
+ memmove(w, s, c); \
w += c; \
} while (0)
diff --git a/lib/isccc/sexpr.c b/lib/isccc/sexpr.c
index e96536dfce5d..df11a9303175 100644
--- a/lib/isccc/sexpr.c
+++ b/lib/isccc/sexpr.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -112,7 +112,7 @@ isccc_sexpr_frombinary(const isccc_region_t *region)
}
sexpr->value.as_region.rend = sexpr->value.as_region.rstart +
region_size;
- memcpy(sexpr->value.as_region.rstart, region->rstart, region_size);
+ memmove(sexpr->value.as_region.rstart, region->rstart, region_size);
/*
* NUL terminate.
*/
@@ -311,7 +311,7 @@ isccc_sexpr_tostring(isccc_sexpr_t *sexpr)
REQUIRE(sexpr != NULL &&
(sexpr->type == ISCCC_SEXPRTYPE_STRING ||
sexpr->type == ISCCC_SEXPRTYPE_BINARY));
-
+
if (sexpr->type == ISCCC_SEXPRTYPE_BINARY)
return ((char *)sexpr->value.as_region.rstart);
return (sexpr->value.as_string);
diff --git a/lib/isccfg/api b/lib/isccfg/api
index 864bdc90941c..7e580435abb9 100644
--- a/lib/isccfg/api
+++ b/lib/isccfg/api
@@ -4,6 +4,6 @@
# 9.8: 80-89, 120-129
# 9.9: 90-109
# 9.9-sub: 130-139
-LIBINTERFACE = 90
-LIBREVISION = 6
-LIBAGE = 0
+LIBINTERFACE = 91
+LIBREVISION = 0
+LIBAGE = 1
diff --git a/lib/isccfg/include/isccfg/cfg.h b/lib/isccfg/include/isccfg/cfg.h
index b21a3d86babc..a99c7637bb85 100644
--- a/lib/isccfg/include/isccfg/cfg.h
+++ b/lib/isccfg/include/isccfg/cfg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2010, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -380,10 +380,20 @@ void
cfg_print(const cfg_obj_t *obj,
void (*f)(void *closure, const char *text, int textlen),
void *closure);
+void
+cfg_printx(const cfg_obj_t *obj, unsigned int flags,
+ void (*f)(void *closure, const char *text, int textlen),
+ void *closure);
+
+#define CFG_PRINTER_XKEY 0x1 /* '?' out shared keys. */
+
/*%<
* Print the configuration object 'obj' by repeatedly calling the
* function 'f', passing 'closure' and a region of text starting
* at 'text' and comprising 'textlen' characters.
+ *
+ * If CFG_PRINTER_XKEY the contents of shared keys will be obscured
+ * by replacing them with question marks ('?')
*/
void
diff --git a/lib/isccfg/include/isccfg/grammar.h b/lib/isccfg/include/isccfg/grammar.h
index 2d7080c24c40..ee76ff29ce7d 100644
--- a/lib/isccfg/include/isccfg/grammar.h
+++ b/lib/isccfg/include/isccfg/grammar.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2011, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -86,6 +86,7 @@ struct cfg_printer {
void (*f)(void *closure, const char *text, int textlen);
void *closure;
int indent;
+ int flags;
};
/*% A clause definition. */
@@ -266,6 +267,7 @@ LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_uint64;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_qstring;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_astring;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_ustring;
+LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_sstring;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_sockaddr;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_netaddr;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_netaddr4;
@@ -314,6 +316,9 @@ isc_result_t
cfg_parse_astring(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret);
isc_result_t
+cfg_parse_sstring(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret);
+
+isc_result_t
cfg_parse_rawaddr(cfg_parser_t *pctx, unsigned int flags, isc_netaddr_t *na);
void
diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c
index 431af746338b..f11e2938e861 100644
--- a/lib/isccfg/namedconf.c
+++ b/lib/isccfg/namedconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -370,7 +370,7 @@ parse_updatepolicy(cfg_parser_t *pctx, const cfg_type_t *type,
isc_mem_put(pctx->mctx, obj, sizeof(*obj));
return (ISC_R_NOMEMORY);
}
- memcpy(obj->value.string.base, "local", 5);
+ memmove(obj->value.string.base, "local", 5);
obj->value.string.base[5] = '\0';
*ret = obj;
return (ISC_R_SUCCESS);
@@ -1269,6 +1269,39 @@ static cfg_type_t cfg_type_rpz = {
rpz_fields
};
+#ifdef USE_RRL
+/*
+ * rate-limit
+ */
+static cfg_clausedef_t rrl_clauses[] = {
+ { "responses-per-second", &cfg_type_uint32, 0 },
+ { "referrals-per-second", &cfg_type_uint32, 0 },
+ { "nodata-per-second", &cfg_type_uint32, 0 },
+ { "nxdomains-per-second", &cfg_type_uint32, 0 },
+ { "errors-per-second", &cfg_type_uint32, 0 },
+ { "all-per-second", &cfg_type_uint32, 0 },
+ { "slip", &cfg_type_uint32, 0 },
+ { "window", &cfg_type_uint32, 0 },
+ { "log-only", &cfg_type_boolean, 0 },
+ { "qps-scale", &cfg_type_uint32, 0 },
+ { "ipv4-prefix-length", &cfg_type_uint32, 0 },
+ { "ipv6-prefix-length", &cfg_type_uint32, 0 },
+ { "exempt-clients", &cfg_type_bracketed_aml, 0 },
+ { "max-table-size", &cfg_type_uint32, 0 },
+ { "min-table-size", &cfg_type_uint32, 0 },
+ { NULL, NULL, 0 }
+};
+
+static cfg_clausedef_t *rrl_clausesets[] = {
+ rrl_clauses,
+ NULL
+};
+
+static cfg_type_t cfg_type_rrl = {
+ "rate-limit", cfg_parse_map, cfg_print_map, cfg_doc_map,
+ &cfg_rep_map, rrl_clausesets
+};
+#endif /* USE_RRL */
/*%
* dnssec-lookaside
@@ -1401,7 +1434,6 @@ view_clauses[] = {
{ "queryport-pool-updateinterval", &cfg_type_uint32,
CFG_CLAUSEFLAG_OBSOLETE },
{ "recursion", &cfg_type_boolean, 0 },
- { "request-ixfr", &cfg_type_boolean, 0 },
{ "request-nsid", &cfg_type_boolean, 0 },
{ "resolver-query-timeout", &cfg_type_uint32, 0 },
{ "rfc2308-type1", &cfg_type_boolean, CFG_CLAUSEFLAG_NYI },
@@ -1423,6 +1455,9 @@ view_clauses[] = {
CFG_CLAUSEFLAG_NOTCONFIGURED },
#endif
{ "response-policy", &cfg_type_rpz, 0 },
+#ifdef USE_RRL
+ { "rate-limit", &cfg_type_rrl, 0 },
+#endif /* USE_RRL */
{ NULL, NULL, 0 }
};
@@ -1674,7 +1709,7 @@ static cfg_type_t cfg_type_dynamically_loadable_zones_opts = {
static cfg_clausedef_t
key_clauses[] = {
{ "algorithm", &cfg_type_astring, 0 },
- { "secret", &cfg_type_astring, 0 },
+ { "secret", &cfg_type_sstring, 0 },
{ NULL, NULL, 0 }
};
diff --git a/lib/isccfg/parser.c b/lib/isccfg/parser.c
index de0fa31ee228..1708344e0607 100644
--- a/lib/isccfg/parser.c
+++ b/lib/isccfg/parser.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -183,14 +183,22 @@ cfg_print(const cfg_obj_t *obj,
void (*f)(void *closure, const char *text, int textlen),
void *closure)
{
+ cfg_printx(obj, 0, f, closure);
+}
+
+void
+cfg_printx(const cfg_obj_t *obj, unsigned int flags,
+ void (*f)(void *closure, const char *text, int textlen),
+ void *closure)
+{
cfg_printer_t pctx;
pctx.f = f;
pctx.closure = closure;
pctx.indent = 0;
+ pctx.flags = flags;
obj->type->print(&pctx, obj);
}
-
/* Tuples. */
isc_result_t
@@ -702,7 +710,7 @@ create_string(cfg_parser_t *pctx, const char *contents, const cfg_type_t *type,
isc_mem_put(pctx->mctx, obj, sizeof(*obj));
return (ISC_R_NOMEMORY);
}
- memcpy(obj->value.string.base, contents, len);
+ memmove(obj->value.string.base, contents, len);
obj->value.string.base[len] = '\0';
*ret = obj;
@@ -762,6 +770,22 @@ cfg_parse_astring(cfg_parser_t *pctx, const cfg_type_t *type,
return (result);
}
+isc_result_t
+cfg_parse_sstring(cfg_parser_t *pctx, const cfg_type_t *type,
+ cfg_obj_t **ret)
+{
+ isc_result_t result;
+ UNUSED(type);
+
+ CHECK(cfg_getstringtoken(pctx));
+ return (create_string(pctx,
+ TOKEN_STRING(pctx),
+ &cfg_type_sstring,
+ ret));
+ cleanup:
+ return (result);
+}
+
isc_boolean_t
cfg_is_enum(const char *s, const char *const *enums) {
const char * const *p;
@@ -819,6 +843,18 @@ print_qstring(cfg_printer_t *pctx, const cfg_obj_t *obj) {
}
static void
+print_sstring(cfg_printer_t *pctx, const cfg_obj_t *obj) {
+ cfg_print_chars(pctx, "\"", 1);
+ if ((pctx->flags & CFG_PRINTER_XKEY) != 0) {
+ unsigned int len = obj->value.string.length;
+ while (len-- > 0)
+ cfg_print_chars(pctx, "?", 1);
+ } else
+ cfg_print_ustring(pctx, obj);
+ cfg_print_chars(pctx, "\"", 1);
+}
+
+static void
free_string(cfg_parser_t *pctx, cfg_obj_t *obj) {
isc_mem_put(pctx->mctx, obj->value.string.base,
obj->value.string.length + 1);
@@ -855,6 +891,15 @@ cfg_type_t cfg_type_astring = {
};
/*
+ * Any string (quoted or unquoted); printed with quotes.
+ * If CFG_PRINTER_XKEY is set when printing the string will be '?' out.
+ */
+cfg_type_t cfg_type_sstring = {
+ "string", cfg_parse_sstring, print_sstring, cfg_doc_terminal,
+ &cfg_rep_string, NULL
+};
+
+/*
* Booleans
*/
@@ -1631,7 +1676,7 @@ parse_token(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
goto cleanup;
}
obj->value.string.length = r.length;
- memcpy(obj->value.string.base, r.base, r.length);
+ memmove(obj->value.string.base, r.base, r.length);
obj->value.string.base[r.length] = '\0';
*ret = obj;
return (result);
@@ -2480,5 +2525,6 @@ cfg_print_grammar(const cfg_type_t *type,
pctx.f = f;
pctx.closure = closure;
pctx.indent = 0;
+ pctx.flags = 0;
cfg_doc_obj(&pctx, type);
}
diff --git a/lib/lwres/api b/lib/lwres/api
index 95bd2046233e..a27437f4335b 100644
--- a/lib/lwres/api
+++ b/lib/lwres/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 4
+LIBREVISION = 7
LIBAGE = 0
diff --git a/lib/lwres/context.c b/lib/lwres/context.c
index 047707ffde46..0dc5199b03e3 100644
--- a/lib/lwres/context.c
+++ b/lib/lwres/context.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2012-2014 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
@@ -181,7 +181,11 @@ lwres_context_create(lwres_context_t **contextp, void *arg,
ctx->sock = -1;
ctx->timeout = LWRES_DEFAULT_TIMEOUT;
+#ifndef WIN32
ctx->serial = time(NULL); /* XXXMLG or BEW */
+#else
+ ctx->serial = _time32(NULL);
+#endif
ctx->use_ipv4 = 1;
ctx->use_ipv6 = 1;
@@ -286,7 +290,11 @@ lwres_free(void *arg, void *mem, size_t len) {
static lwres_result_t
context_connect(lwres_context_t *ctx) {
+#ifndef WIN32
int s;
+#else
+ SOCKET s;
+#endif
int ret;
struct sockaddr_in sin;
struct sockaddr_in6 sin6;
@@ -295,8 +303,8 @@ context_connect(lwres_context_t *ctx) {
int domain;
if (ctx->confdata.lwnext != 0) {
- memcpy(&ctx->address, &ctx->confdata.lwservers[0],
- sizeof(lwres_addr_t));
+ memmove(&ctx->address, &ctx->confdata.lwservers[0],
+ sizeof(lwres_addr_t));
LWRES_LINK_INIT(&ctx->address, link);
} else {
/* The default is the IPv4 loopback address 127.0.0.1. */
@@ -310,16 +318,16 @@ context_connect(lwres_context_t *ctx) {
}
if (ctx->address.family == LWRES_ADDRTYPE_V4) {
- memcpy(&sin.sin_addr, ctx->address.address,
- sizeof(sin.sin_addr));
+ memmove(&sin.sin_addr, ctx->address.address,
+ sizeof(sin.sin_addr));
sin.sin_port = htons(lwres_udp_port);
sin.sin_family = AF_INET;
sa = (struct sockaddr *)&sin;
salen = sizeof(sin);
domain = PF_INET;
} else if (ctx->address.family == LWRES_ADDRTYPE_V6) {
- memcpy(&sin6.sin6_addr, ctx->address.address,
- sizeof(sin6.sin6_addr));
+ memmove(&sin6.sin6_addr, ctx->address.address,
+ sizeof(sin6.sin6_addr));
sin6.sin6_port = htons(lwres_udp_port);
sin6.sin6_family = AF_INET6;
sa = (struct sockaddr *)&sin6;
@@ -332,12 +340,16 @@ context_connect(lwres_context_t *ctx) {
InitSockets();
#endif
s = socket(domain, SOCK_DGRAM, IPPROTO_UDP);
+#ifndef WIN32
if (s < 0) {
-#ifdef WIN32
+ return (LWRES_R_IOERROR);
+ }
+#else
+ if (s == INVALID_SOCKET) {
DestroySockets();
-#endif
return (LWRES_R_IOERROR);
}
+#endif
ret = connect(s, sa, salen);
if (ret != 0) {
@@ -357,7 +369,7 @@ context_connect(lwres_context_t *ctx) {
return (LWRES_R_IOERROR);
}
- ctx->sock = s;
+ ctx->sock = (int)s;
return (LWRES_R_SUCCESS);
}
diff --git a/lib/lwres/getaddrinfo.c b/lib/lwres/getaddrinfo.c
index 7d5f2fb04c47..1ebafd85a678 100644
--- a/lib/lwres/getaddrinfo.c
+++ b/lib/lwres/getaddrinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* This code is derived from software contributed to ISC by
@@ -392,7 +392,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
* Convert to a V4 mapped address.
*/
struct in6_addr *a6 = (struct in6_addr *)abuf;
- memcpy(&a6->s6_addr[12], &a6->s6_addr[0], 4);
+ memmove(&a6->s6_addr[12], &a6->s6_addr[0], 4);
memset(&a6->s6_addr[10], 0xff, 2);
memset(&a6->s6_addr[0], 0, 10);
goto inet6_addr;
@@ -427,7 +427,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
ai_list = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy((char *)ai->ai_addr + addroff, abuf, addrsize);
+ memmove((char *)ai->ai_addr + addroff, abuf, addrsize);
if (flags & AI_CANONNAME) {
#if defined(LWRES_HAVE_SIN6_SCOPE_ID)
if (ai->ai_family == AF_INET6)
@@ -579,7 +579,7 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
} else {
lwres = lwres_getaddrsbyname(lwrctx, hostname,
LWRES_ADDRTYPE_V4, &by);
@@ -597,8 +597,8 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy(&SIN(ai->ai_addr)->sin_addr,
- addr->address, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr,
+ addr->address, 4);
if (flags & AI_CANONNAME) {
ai->ai_canonname = strdup(by->realname);
if (ai->ai_canonname == NULL)
@@ -643,7 +643,7 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN6(ai->ai_addr)->sin6_port = port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
} else {
lwres = lwres_getaddrsbyname(lwrctx, hostname,
LWRES_ADDRTYPE_V6, &by);
@@ -661,8 +661,8 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN6(ai->ai_addr)->sin6_port = port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr,
- addr->address, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr,
+ addr->address, 16);
if (flags & AI_CANONNAME) {
ai->ai_canonname = strdup(by->realname);
if (ai->ai_canonname == NULL)
diff --git a/lib/lwres/gethost.c b/lib/lwres/gethost.c
index 1a1efd465305..e36fc188e5c3 100644
--- a/lib/lwres/gethost.c
+++ b/lib/lwres/gethost.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -24,7 +24,7 @@
* lookups by means of the lightweight resolver. They are similar to the
* standard gethostent(3) functions provided by most operating systems.
* They use a struct hostent which is usually defined in <namedb.h>.
- *
+ *
* \code
* struct hostent {
* char *h_name; // official name of host
@@ -35,36 +35,36 @@
* };
* #define h_addr h_addr_list[0] // address, for backward compatibility
* \endcode
- *
+ *
* The members of this structure are:
- *
+ *
* \li h_name:
* The official (canonical) name of the host.
- *
+ *
* \li h_aliases:
* A NULL-terminated array of alternate names (nicknames) for the
* host.
- *
+ *
* \li h_addrtype:
* The type of address being returned -- PF_INET or PF_INET6.
- *
+ *
* \li h_length:
* The length of the address in bytes.
- *
+ *
* \li h_addr_list:
* A NULL terminated array of network addresses for the host. Host
* addresses are returned in network byte order.
- *
+ *
* For backward compatibility with very old software, h_addr is the first
* address in h_addr_list.
- *
+ *
* lwres_gethostent(), lwres_sethostent(), lwres_endhostent(),
* lwres_gethostent_r(), lwres_sethostent_r() and lwres_endhostent_r()
* provide iteration over the known host entries on systems that provide
* such functionality through facilities like /etc/hosts or NIS. The
* lightweight resolver does not currently implement these functions; it
* only provides them as stub functions that always return failure.
- *
+ *
* lwres_gethostbyname() and lwres_gethostbyname2() look up the hostname
* name. lwres_gethostbyname() always looks for an IPv4 address while
* lwres_gethostbyname2() looks for an address of protocol family af:
@@ -72,7 +72,7 @@
* Successful calls of the functions return a struct hostent for the name
* that was looked up. NULL is returned if the lookups by
* lwres_gethostbyname() or lwres_gethostbyname2() fail.
- *
+ *
* Reverse lookups of addresses are performed by lwres_gethostbyaddr().
* addr is an address of length len bytes and protocol family type --
* PF_INET or PF_INET6. lwres_gethostbyname_r() is a thread-safe function
@@ -83,7 +83,7 @@
* h_addr_list elements of the struct hostent returned in resbuf.
* Successful calls to lwres_gethostbyname_r() return resbuf, which is a
* pointer to the struct hostent it created.
- *
+ *
* lwres_gethostbyaddr_r() is a thread-safe function that performs a
* reverse lookup of address addr which is len bytes long and is of
* protocol family type -- PF_INET or PF_INET6. If an error occurs, the
@@ -95,35 +95,35 @@
* struct hostent returned in resbuf. Successful calls to
* lwres_gethostbyaddr_r() return resbuf, which is a pointer to the
* struct hostent it created.
- *
+ *
* \section gethost_return Return Values
- *
+ *
* The functions lwres_gethostbyname(), lwres_gethostbyname2(),
* lwres_gethostbyaddr(), and lwres_gethostent() return NULL to indicate
* an error. In this case the global variable lwres_h_errno will contain
* one of the following error codes defined in \link netdb.h <lwres/netdb.h>:\endlink
- *
+ *
* \li #HOST_NOT_FOUND:
* The host or address was not found.
- *
+ *
* \li #TRY_AGAIN:
* A recoverable error occurred, e.g., a timeout. Retrying the
* lookup may succeed.
- *
+ *
* \li #NO_RECOVERY:
* A non-recoverable error occurred.
- *
+ *
* \li #NO_DATA:
* The name exists, but has no address information associated with
* it (or vice versa in the case of a reverse lookup). The code
* NO_ADDRESS is accepted as a synonym for NO_DATA for backwards
* compatibility.
- *
+ *
* lwres_hstrerror() translates these error codes to suitable error
* messages.
- *
+ *
* lwres_gethostent() and lwres_gethostent_r() always return NULL.
- *
+ *
* Successful calls to lwres_gethostbyname_r() and
* lwres_gethostbyaddr_r() return resbuf, a pointer to the struct hostent
* that was initialised by these functions. They return NULL if the
@@ -131,19 +131,19 @@
* names referenced by the h_name, h_aliases, and h_addr_list elements of
* the struct hostent. If buf was too small, both lwres_gethostbyname_r()
* and lwres_gethostbyaddr_r() set the global variable errno to ERANGE.
- *
+ *
* \section gethost_see See Also
- *
+ *
* gethostent(), \link getipnode.c getipnode\endlink, lwres_hstrerror()
- *
+ *
* \section gethost_bugs Bugs
- *
+ *
* lwres_gethostbyname(), lwres_gethostbyname2(), lwres_gethostbyaddr()
* and lwres_endhostent() are not thread safe; they return pointers to
* static data and provide error codes through a global variable.
* Thread-safe versions for name and address lookup are provided by
* lwres_gethostbyname_r(), and lwres_gethostbyaddr_r() respectively.
- *
+ *
* The resolver daemon does not currently support any non-DNS name
* services such as /etc/hosts or NIS, consequently the above functions
* don't, either.
@@ -161,7 +161,7 @@
#define LWRES_ALIGNBYTES (sizeof(char *) - 1)
#define LWRES_ALIGN(p) \
- (((unsigned long)(p) + LWRES_ALIGNBYTES) &~ LWRES_ALIGNBYTES)
+ (((uintptr_t)(p) + LWRES_ALIGNBYTES) &~ LWRES_ALIGNBYTES)
static struct hostent *he = NULL;
static int copytobuf(struct hostent *, struct hostent *, char *, int);
@@ -294,69 +294,69 @@ lwres_endhostent_r(void) {
static int
copytobuf(struct hostent *he, struct hostent *hptr, char *buf, int buflen) {
- char *cp;
- char **ptr;
- int i, n;
- int nptr, len;
+ char *cp;
+ char **ptr;
+ int i, n;
+ int nptr, len;
- /*
+ /*
* Find out the amount of space required to store the answer.
*/
- nptr = 2; /* NULL ptrs */
- len = (char *)LWRES_ALIGN(buf) - buf;
- for (i = 0; he->h_addr_list[i]; i++, nptr++) {
- len += he->h_length;
- }
- for (i = 0; he->h_aliases[i]; i++, nptr++) {
- len += strlen(he->h_aliases[i]) + 1;
- }
- len += strlen(he->h_name) + 1;
- len += nptr * sizeof(char*);
-
- if (len > buflen) {
- return (-1);
- }
-
- /*
+ nptr = 2; /* NULL ptrs */
+ len = (int)((char *)LWRES_ALIGN(buf) - buf);
+ for (i = 0; he->h_addr_list[i]; i++, nptr++) {
+ len += he->h_length;
+ }
+ for (i = 0; he->h_aliases[i]; i++, nptr++) {
+ len += strlen(he->h_aliases[i]) + 1;
+ }
+ len += strlen(he->h_name) + 1;
+ len += nptr * sizeof(char*);
+
+ if (len > buflen) {
+ return (-1);
+ }
+
+ /*
* Copy address size and type.
*/
- hptr->h_addrtype = he->h_addrtype;
- n = hptr->h_length = he->h_length;
+ hptr->h_addrtype = he->h_addrtype;
+ n = hptr->h_length = he->h_length;
- ptr = (char **)LWRES_ALIGN(buf);
- cp = (char *)LWRES_ALIGN(buf) + nptr * sizeof(char *);
+ ptr = (char **)LWRES_ALIGN(buf);
+ cp = (char *)LWRES_ALIGN(buf) + nptr * sizeof(char *);
- /*
+ /*
* Copy address list.
*/
- hptr->h_addr_list = ptr;
- for (i = 0; he->h_addr_list[i]; i++, ptr++) {
- memcpy(cp, he->h_addr_list[i], n);
- hptr->h_addr_list[i] = cp;
- cp += n;
- }
- hptr->h_addr_list[i] = NULL;
- ptr++;
-
- /*
+ hptr->h_addr_list = ptr;
+ for (i = 0; he->h_addr_list[i]; i++, ptr++) {
+ memmove(cp, he->h_addr_list[i], n);
+ hptr->h_addr_list[i] = cp;
+ cp += n;
+ }
+ hptr->h_addr_list[i] = NULL;
+ ptr++;
+
+ /*
* Copy official name.
*/
- n = strlen(he->h_name) + 1;
- strcpy(cp, he->h_name);
- hptr->h_name = cp;
- cp += n;
+ n = strlen(he->h_name) + 1;
+ strcpy(cp, he->h_name);
+ hptr->h_name = cp;
+ cp += n;
- /*
+ /*
* Copy aliases.
*/
- hptr->h_aliases = ptr;
- for (i = 0; he->h_aliases[i]; i++) {
- n = strlen(he->h_aliases[i]) + 1;
- strcpy(cp, he->h_aliases[i]);
- hptr->h_aliases[i] = cp;
- cp += n;
- }
- hptr->h_aliases[i] = NULL;
-
- return (0);
+ hptr->h_aliases = ptr;
+ for (i = 0; he->h_aliases[i]; i++) {
+ n = strlen(he->h_aliases[i]) + 1;
+ strcpy(cp, he->h_aliases[i]);
+ hptr->h_aliases[i] = cp;
+ cp += n;
+ }
+ hptr->h_aliases[i] = NULL;
+
+ return (0);
}
diff --git a/lib/lwres/getipnode.c b/lib/lwres/getipnode.c
index 300376ef139b..85c396dfdfc2 100644
--- a/lib/lwres/getipnode.c
+++ b/lib/lwres/getipnode.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -420,7 +420,7 @@ lwres_getipnodebyaddr(const void *src, size_t len, int af, int *error_num) {
/*
* Restore original address.
*/
- memcpy(he2->h_addr, src, len);
+ memmove(he2->h_addr, src, len);
return (he2);
}
@@ -595,7 +595,7 @@ scan_interfaces6(int *have_v4, int *have_v6) {
for (cp = buf;
(*have_v4 == 0 || *have_v6 == 0) && cp < cplim;
cp += cpsize) {
- memcpy(&lifreq, cp, sizeof(lifreq));
+ memmove(&lifreq, cp, sizeof(lifreq));
#ifdef LWRES_PLATFORM_HAVESALEN
#ifdef FIX_ZERO_SA_LEN
if (lifreq.lifr_addr.sa_len == 0)
@@ -620,10 +620,10 @@ scan_interfaces6(int *have_v4, int *have_v6) {
switch (lifreq.lifr_addr.ss_family) {
case AF_INET:
if (*have_v4 == 0) {
- memcpy(&in4,
- &((struct sockaddr_in *)
- &lifreq.lifr_addr)->sin_addr,
- sizeof(in4));
+ memmove(&in4,
+ &((struct sockaddr_in *)
+ &lifreq.lifr_addr)->sin_addr,
+ sizeof(in4));
if (in4.s_addr == INADDR_ANY)
break;
n = ioctl(s, SIOCGLIFFLAGS, (char *)&lifreq);
@@ -636,10 +636,10 @@ scan_interfaces6(int *have_v4, int *have_v6) {
break;
case AF_INET6:
if (*have_v6 == 0) {
- memcpy(&in6,
- &((struct sockaddr_in6 *)
- &lifreq.lifr_addr)->sin6_addr,
- sizeof(in6));
+ memmove(&in6,
+ &((struct sockaddr_in6 *)
+ &lifreq.lifr_addr)->sin6_addr,
+ sizeof(in6));
if (memcmp(&in6, &in6addr_any,
sizeof(in6)) == 0)
break;
@@ -760,7 +760,7 @@ scan_interfaces(int *have_v4, int *have_v6) {
for (cp = buf;
(*have_v4 == 0 || *have_v6 == 0) && cp < cplim;
cp += cpsize) {
- memcpy(&u.ifreq, cp, sizeof(u.ifreq));
+ memmove(&u.ifreq, cp, sizeof(u.ifreq));
#ifdef LWRES_PLATFORM_HAVESALEN
#ifdef FIX_ZERO_SA_LEN
if (u.ifreq.ifr_addr.sa_len == 0)
@@ -775,7 +775,7 @@ scan_interfaces(int *have_v4, int *have_v6) {
cpsize = sizeof(u.ifreq.ifr_name) + u.ifreq.ifr_addr.sa_len;
#endif /* HAVE_MINIMUM_IFREQ */
if (cpsize > sizeof(u.ifreq) && cpsize <= sizeof(u))
- memcpy(&u.ifreq, cp, cpsize);
+ memmove(&u.ifreq, cp, cpsize);
#elif defined SIOCGIFCONF_ADDR
cpsize = sizeof(u.ifreq);
#else
@@ -787,10 +787,10 @@ scan_interfaces(int *have_v4, int *have_v6) {
switch (u.ifreq.ifr_addr.sa_family) {
case AF_INET:
if (*have_v4 == 0) {
- memcpy(&in4,
- &((struct sockaddr_in *)
- &u.ifreq.ifr_addr)->sin_addr,
- sizeof(in4));
+ memmove(&in4,
+ &((struct sockaddr_in *)
+ &u.ifreq.ifr_addr)->sin_addr,
+ sizeof(in4));
if (in4.s_addr == INADDR_ANY)
break;
n = ioctl(s, SIOCGIFFLAGS, (char *)&u.ifreq);
@@ -803,10 +803,10 @@ scan_interfaces(int *have_v4, int *have_v6) {
break;
case AF_INET6:
if (*have_v6 == 0) {
- memcpy(&in6,
- &((struct sockaddr_in6 *)
- &u.ifreq.ifr_addr)->sin6_addr,
- sizeof(in6));
+ memmove(&in6,
+ &((struct sockaddr_in6 *)
+ &u.ifreq.ifr_addr)->sin6_addr,
+ sizeof(in6));
if (memcmp(&in6, &in6addr_any,
sizeof(in6)) == 0)
break;
@@ -908,13 +908,13 @@ copyandmerge(struct hostent *he1, struct hostent *he2, int af, int *error_num)
* Convert to mapped if required.
*/
if (af == AF_INET6 && he1->h_addrtype == AF_INET) {
- memcpy(*npp, in6addr_mapped,
- sizeof(in6addr_mapped));
- memcpy(*npp + sizeof(in6addr_mapped), *cpp,
- INADDRSZ);
+ memmove(*npp, in6addr_mapped,
+ sizeof(in6addr_mapped));
+ memmove(*npp + sizeof(in6addr_mapped), *cpp,
+ INADDRSZ);
} else {
- memcpy(*npp, *cpp,
- (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
+ memmove(*npp, *cpp,
+ (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
}
cpp++;
npp++;
@@ -931,13 +931,13 @@ copyandmerge(struct hostent *he1, struct hostent *he2, int af, int *error_num)
* Convert to mapped if required.
*/
if (af == AF_INET6 && he2->h_addrtype == AF_INET) {
- memcpy(*npp, in6addr_mapped,
- sizeof(in6addr_mapped));
- memcpy(*npp + sizeof(in6addr_mapped), *cpp,
- INADDRSZ);
+ memmove(*npp, in6addr_mapped,
+ sizeof(in6addr_mapped));
+ memmove(*npp + sizeof(in6addr_mapped), *cpp,
+ INADDRSZ);
} else {
- memcpy(*npp, *cpp,
- (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
+ memmove(*npp, *cpp,
+ (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
}
cpp++;
npp++;
@@ -1060,7 +1060,7 @@ hostfromaddr(lwres_gnbaresponse_t *addr, int af, const void *src) {
he->h_addr_list[0] = malloc(he->h_length);
if (he->h_addr_list[0] == NULL)
goto cleanup;
- memcpy(he->h_addr_list[0], src, he->h_length);
+ memmove(he->h_addr_list[0], src, he->h_length);
he->h_addr_list[1] = NULL;
return (he);
@@ -1140,7 +1140,7 @@ hostfromname(lwres_gabnresponse_t *name, int af) {
he->h_addr_list[i] = malloc(he->h_length);
if (he->h_addr_list[i] == NULL)
goto cleanup;
- memcpy(he->h_addr_list[i], addr->address, he->h_length);
+ memmove(he->h_addr_list[i], addr->address, he->h_length);
addr = LWRES_LIST_NEXT(addr, link);
i++;
}
diff --git a/lib/lwres/getrrset.c b/lib/lwres/getrrset.c
index 16af741d2e43..cd37abcd0bea 100644
--- a/lib/lwres/getrrset.c
+++ b/lib/lwres/getrrset.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -228,8 +228,8 @@ lwres_getrrsetbyname(const char *hostname, unsigned int rdclass,
result = ERRSET_NOMEMORY;
goto fail;
}
- memcpy(rrset->rri_rdatas[i].rdi_data, response->rdatas[i],
- rrset->rri_rdatas[i].rdi_length);
+ memmove(rrset->rri_rdatas[i].rdi_data, response->rdatas[i],
+ rrset->rri_rdatas[i].rdi_length);
}
rrset->rri_nsigs = response->nsigs;
rrset->rri_sigs = sane_calloc(rrset->rri_nsigs,
@@ -246,8 +246,8 @@ lwres_getrrsetbyname(const char *hostname, unsigned int rdclass,
result = ERRSET_NOMEMORY;
goto fail;
}
- memcpy(rrset->rri_sigs[i].rdi_data, response->sigs[i],
- rrset->rri_sigs[i].rdi_length);
+ memmove(rrset->rri_sigs[i].rdi_data, response->sigs[i],
+ rrset->rri_sigs[i].rdi_length);
}
lwres_grbnresponse_free(lwrctx, &response);
diff --git a/lib/lwres/herror.c b/lib/lwres/herror.c
index 49de797e42f6..0fe6097d07c1 100644
--- a/lib/lwres/herror.c
+++ b/lib/lwres/herror.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
diff --git a/lib/lwres/lwbuffer.c b/lib/lwres/lwbuffer.c
index 49aaeb7bc912..787bc3c9f5e2 100644
--- a/lib/lwres/lwbuffer.c
+++ b/lib/lwres/lwbuffer.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -23,7 +23,7 @@
* These functions provide bounds checked access to a region of memory
* where data is being read or written. They are based on, and similar
* to, the isc_buffer_ functions in the ISC library.
- *
+ *
* A buffer is a region of memory, together with a set of related
* subregions. The used region and the available region are disjoint, and
* their union is the buffer's region. The used region extends from the
@@ -31,7 +31,7 @@
* region extends from one byte greater than the last used byte to the
* end of the buffer's region. The size of the used region can be changed
* using various buffer commands. Initially, the used region is empty.
- *
+ *
* The used region is further subdivided into two disjoint regions: the
* consumed region and the remaining region. The union of these two
* regions is the used region. The consumed region extends from the
@@ -39,14 +39,14 @@
* any). The remaining region the current pointer to the end of the used
* region. The size of the consumed region can be changed using various
* buffer commands. Initially, the consumed region is empty.
- *
+ *
* The active region is an (optional) subregion of the remaining region.
* It extends from the current offset to an offset in the remaining
* region. Initially, the active region is empty. If the current offset
* advances beyond the chosen offset, the active region will also be
* empty.
- *
- *
+ *
+ *
* \verbatim
* /------------entire length---------------\\
* /----- used region -----\\/-- available --\\
@@ -54,54 +54,54 @@
* | consumed | remaining | |
* +----------------------------------------+
* a b c d e
- *
+ *
* a == base of buffer.
* b == current pointer. Can be anywhere between a and d.
* c == active pointer. Meaningful between b and d.
* d == used pointer.
* e == length of buffer.
- *
+ *
* a-e == entire length of buffer.
* a-d == used region.
* a-b == consumed region.
* b-d == remaining region.
* b-c == optional active region.
* \endverbatim
- *
+ *
* lwres_buffer_init() initializes the lwres_buffer_t *b and assocates it
* with the memory region of size length bytes starting at location base.
- *
+ *
* lwres_buffer_invalidate() marks the buffer *b as invalid. Invalidating
* a buffer after use is not required, but makes it possible to catch its
* possible accidental use.
- *
+ *
* The functions lwres_buffer_add() and lwres_buffer_subtract()
* respectively increase and decrease the used space in buffer *b by n
* bytes. lwres_buffer_add() checks for buffer overflow and
* lwres_buffer_subtract() checks for underflow. These functions do not
* allocate or deallocate memory. They just change the value of used.
- *
+ *
* A buffer is re-initialised by lwres_buffer_clear(). The function sets
* used , current and active to zero.
- *
+ *
* lwres_buffer_first() makes the consumed region of buffer *p empty by
* setting current to zero (the start of the buffer).
- *
+ *
* lwres_buffer_forward() increases the consumed region of buffer *b by n
* bytes, checking for overflow. Similarly, lwres_buffer_back() decreases
* buffer b's consumed region by n bytes and checks for underflow.
- *
+ *
* lwres_buffer_getuint8() reads an unsigned 8-bit integer from *b and
* returns it. lwres_buffer_putuint8() writes the unsigned 8-bit integer
* val to buffer *b.
- *
+ *
* lwres_buffer_getuint16() and lwres_buffer_getuint32() are identical to
* lwres_buffer_putuint8() except that they respectively read an unsigned
* 16-bit or 32-bit integer in network byte order from b. Similarly,
* lwres_buffer_putuint16() and lwres_buffer_putuint32() writes the
* unsigned 16-bit or 32-bit integer val to buffer b, in network byte
* order.
- *
+ *
* Arbitrary amounts of data are read or written from a lightweight
* resolver buffer with lwres_buffer_getmem() and lwres_buffer_putmem()
* respectively. lwres_buffer_putmem() copies length bytes of memory at
@@ -339,7 +339,7 @@ lwres_buffer_putmem(lwres_buffer_t *b, const unsigned char *base,
REQUIRE(b->used + length <= b->length);
cp = (unsigned char *)b->base + b->used;
- memcpy(cp, base, length);
+ memmove(cp, base, length);
b->used += length;
}
@@ -357,5 +357,5 @@ lwres_buffer_getmem(lwres_buffer_t *b, unsigned char *base,
cp += b->current;
b->current += length;
- memcpy(base, cp, length);
+ memmove(base, cp, length);
}
diff --git a/lib/lwres/lwconfig.c b/lib/lwres/lwconfig.c
index e9a867100f29..62630238e121 100644
--- a/lib/lwres/lwconfig.c
+++ b/lib/lwres/lwconfig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -455,16 +455,16 @@ lwres_create_addr(const char *buffer, lwres_addr_t *addr, int convert_zero) {
unsigned char zeroaddress[] = {0, 0, 0, 0};
unsigned char loopaddress[] = {127, 0, 0, 1};
if (memcmp(&v4, zeroaddress, 4) == 0)
- memcpy(&v4, loopaddress, 4);
+ memmove(&v4, loopaddress, 4);
}
addr->family = LWRES_ADDRTYPE_V4;
addr->length = NS_INADDRSZ;
- memcpy((void *)addr->address, &v4, NS_INADDRSZ);
+ memmove((void *)addr->address, &v4, NS_INADDRSZ);
} else if (lwres_net_pton(AF_INET6, buffer, &v6) == 1) {
addr->family = LWRES_ADDRTYPE_V6;
addr->length = NS_IN6ADDRSZ;
- memcpy((void *)addr->address, &v6, NS_IN6ADDRSZ);
+ memmove((void *)addr->address, &v6, NS_IN6ADDRSZ);
} else {
return (LWRES_R_FAILURE); /* Unrecognised format. */
}
diff --git a/lib/lwres/lwinetaton.c b/lib/lwres/lwinetaton.c
index 5a0d85a365d6..8c7ca7cccf3c 100644
--- a/lib/lwres/lwinetaton.c
+++ b/lib/lwres/lwinetaton.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1996-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -96,7 +92,8 @@ static char rcsid[] = "$Id: lwinetaton.c,v 1.16 2007/06/19 23:47:22 tbox Exp $";
int
lwres_net_aton(const char *cp, struct in_addr *addr) {
lwres_uint32_t val;
- int base, n;
+ int base;
+ ptrdiff_t n;
unsigned char c;
lwres_uint8_t parts[4];
lwres_uint8_t *pp = parts;
diff --git a/lib/lwres/lwinetpton.c b/lib/lwres/lwinetpton.c
index e0ea85df3573..efeb21b70e80 100644
--- a/lib/lwres/lwinetpton.c
+++ b/lib/lwres/lwinetpton.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1996-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -90,8 +90,9 @@ inet_pton4(const char *src, unsigned char *dst) {
const char *pch;
if ((pch = strchr(digits, ch)) != NULL) {
- unsigned int new = *tp * 10 + (pch - digits);
+ unsigned int new = *tp * 10;
+ new += (unsigned int)(pch - digits);
if (new > 255)
return (0);
*tp = new;
@@ -115,7 +116,7 @@ inet_pton4(const char *src, unsigned char *dst) {
}
if (octets < 4)
return (0);
- memcpy(dst, tmp, NS_INADDRSZ);
+ memmove(dst, tmp, NS_INADDRSZ);
return (1);
}
@@ -198,7 +199,7 @@ inet_pton6(const char *src, unsigned char *dst) {
* Since some memmove()'s erroneously fail to handle
* overlapping regions, we'll do the shift by hand.
*/
- const int n = tp - colonp;
+ const int n = (int)(tp - colonp);
int i;
for (i = 1; i <= n; i++) {
@@ -209,6 +210,6 @@ inet_pton6(const char *src, unsigned char *dst) {
}
if (tp != endp)
return (0);
- memcpy(dst, tmp, NS_IN6ADDRSZ);
+ memmove(dst, tmp, NS_IN6ADDRSZ);
return (1);
}
diff --git a/lib/lwres/lwres_gabn.c b/lib/lwres/lwres_gabn.c
index 3363e66b89b4..d770579cb416 100644
--- a/lib/lwres/lwres_gabn.c
+++ b/lib/lwres/lwres_gabn.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -40,23 +40,23 @@ typedef struct lwres_addr lwres_addr_t;
typedef LWRES_LIST(lwres_addr_t) lwres_addrlist_t;
typedef struct {
- lwres_uint32_t flags;
- lwres_uint32_t addrtypes;
- lwres_uint16_t namelen;
- char *name;
+ lwres_uint32_t flags;
+ lwres_uint32_t addrtypes;
+ lwres_uint16_t namelen;
+ char *name;
} lwres_gabnrequest_t;
typedef struct {
- lwres_uint32_t flags;
- lwres_uint16_t naliases;
- lwres_uint16_t naddrs;
- char *realname;
- char **aliases;
- lwres_uint16_t realnamelen;
- lwres_uint16_t *aliaslen;
- lwres_addrlist_t addrs;
- void *base;
- size_t baselen;
+ lwres_uint32_t flags;
+ lwres_uint16_t naliases;
+ lwres_uint16_t naddrs;
+ char *realname;
+ char **aliases;
+ lwres_uint16_t realnamelen;
+ lwres_uint16_t *aliaslen;
+ lwres_addrlist_t addrs;
+ void *base;
+ size_t baselen;
} lwres_gabnresponse_t;
\endcode
@@ -142,9 +142,9 @@ lwres_gabnrequest_render(lwres_context_t *ctx, lwres_gabnrequest_t *req,
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags &= ~LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_GETADDRSBYNAME;
@@ -223,9 +223,9 @@ lwres_gabnresponse_render(lwres_context_t *ctx, lwres_gabnresponse_t *req,
buf = CTXMALLOC(buflen);
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags |= LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_GETADDRSBYNAME;
diff --git a/lib/lwres/lwres_gnba.c b/lib/lwres/lwres_gnba.c
index d18ae153f23e..43d8ac53e245 100644
--- a/lib/lwres/lwres_gnba.c
+++ b/lib/lwres/lwres_gnba.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -29,7 +29,7 @@
structure. Another render function converts the getnamebyaddr
response structure -- lwres_gnbaresponse_t to the canonical format.
This is complemented by a parse function which converts a packet in
- canonical format to a getnamebyaddr response structure.
+ canonical format to a getnamebyaddr response structure.
These structures are defined in \link lwres.h <lwres/lwres.h.>\endlink They are shown
below.
@@ -38,19 +38,19 @@
#define LWRES_OPCODE_GETNAMEBYADDR 0x00010002U
typedef struct {
- lwres_uint32_t flags;
- lwres_addr_t addr;
+ lwres_uint32_t flags;
+ lwres_addr_t addr;
} lwres_gnbarequest_t;
typedef struct {
- lwres_uint32_t flags;
- lwres_uint16_t naliases;
- char *realname;
- char **aliases;
- lwres_uint16_t realnamelen;
- lwres_uint16_t *aliaslen;
- void *base;
- size_t baselen;
+ lwres_uint32_t flags;
+ lwres_uint16_t naliases;
+ char *realname;
+ char **aliases;
+ lwres_uint16_t realnamelen;
+ lwres_uint16_t *aliaslen;
+ void *base;
+ size_t baselen;
} lwres_gnbaresponse_t;
\endcode
@@ -66,14 +66,14 @@ typedef struct {
of packet pkt to a lwres_gnbarequest_t structure. Buffer b provides
space to be used for storing this structure. When the function
succeeds, the resulting lwres_gnbarequest_t is made available
- through *structp. lwres_gnbaresponse_parse() offers the same
-semantics as lwres_gnbarequest_parse() except it yields a
+ through *structp. lwres_gnbaresponse_parse() offers the same
+semantics as lwres_gnbarequest_parse() except it yields a
lwres_gnbaresponse_t structure.
lwres_gnbaresponse_free() and lwres_gnbarequest_free() release the
- memory in resolver context ctx that was allocated to the
- lwres_gnbaresponse_t or lwres_gnbarequest_t structures referenced
- via structp. Any memory associated with ancillary buffers and
+ memory in resolver context ctx that was allocated to the
+ lwres_gnbaresponse_t or lwres_gnbarequest_t structures referenced
+ via structp. Any memory associated with ancillary buffers and
strings for those structures is also discarded.
\section lwres_gbna_return Return Values
@@ -135,9 +135,9 @@ lwres_gnbarequest_render(lwres_context_t *ctx, lwres_gnbarequest_t *req,
buf = CTXMALLOC(buflen);
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags &= ~LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_GETNAMEBYADDR;
@@ -199,9 +199,9 @@ lwres_gnbaresponse_render(lwres_context_t *ctx, lwres_gnbaresponse_t *req,
buf = CTXMALLOC(buflen);
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags |= LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_GETNAMEBYADDR;
diff --git a/lib/lwres/lwres_grbn.c b/lib/lwres/lwres_grbn.c
index 72718bad0c5d..a8ff2342bd7e 100644
--- a/lib/lwres/lwres_grbn.c
+++ b/lib/lwres/lwres_grbn.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -61,9 +61,9 @@ lwres_grbnrequest_render(lwres_context_t *ctx, lwres_grbnrequest_t *req,
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags &= ~LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_GETRDATABYNAME;
@@ -139,9 +139,9 @@ lwres_grbnresponse_render(lwres_context_t *ctx, lwres_grbnresponse_t *req,
buf = CTXMALLOC(buflen);
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags |= LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_GETRDATABYNAME;
diff --git a/lib/lwres/lwres_noop.c b/lib/lwres/lwres_noop.c
index 369fe4e18f71..10b40ee950a4 100644
--- a/lib/lwres/lwres_noop.c
+++ b/lib/lwres/lwres_noop.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -22,11 +22,11 @@
/**
* These are low-level routines for creating and parsing lightweight
* resolver no-op request and response messages.
- *
+ *
* The no-op message is analogous to a ping packet: a packet is sent to
* the resolver daemon and is simply echoed back. The opcode is intended
* to allow a client to determine if the server is operational or not.
- *
+ *
* There are four main functions for the no-op opcode. One render
* function converts a no-op request structure -- lwres_nooprequest_t --
* to the lighweight resolver's canonical format. It is complemented by a
@@ -35,27 +35,27 @@
* response structure -- lwres_noopresponse_t to the canonical format.
* This is complemented by a parse function which converts a packet in
* canonical format to a no-op response structure.
- *
+ *
* These structures are defined in \link lwres.h <lwres/lwres.h.> \endlink They are shown below.
- *
+ *
* \code
* #define LWRES_OPCODE_NOOP 0x00000000U
- *
+ *
* typedef struct {
* lwres_uint16_t datalength;
* unsigned char *data;
* } lwres_nooprequest_t;
- *
+ *
* typedef struct {
* lwres_uint16_t datalength;
* unsigned char *data;
* } lwres_noopresponse_t;
* \endcode
- *
+ *
* Although the structures have different types, they are identical. This
* is because the no-op opcode simply echos whatever data was sent: the
* response is therefore identical to the request.
- *
+ *
* lwres_nooprequest_render() uses resolver context ctx to convert no-op
* request structure req to canonical format. The packet header structure
* pkt is initialised and transferred to buffer b. The contents of *req
@@ -63,7 +63,7 @@
* lwres_noopresponse_render() performs the same task, except it converts
* a no-op response structure lwres_noopresponse_t to the lightweight
* resolver's canonical format.
- *
+ *
* lwres_nooprequest_parse() uses context ctx to convert the contents of
* packet pkt to a lwres_nooprequest_t structure. Buffer b provides space
* to be used for storing this structure. When the function succeeds, the
@@ -71,14 +71,14 @@
* lwres_noopresponse_parse() offers the same semantics as
* lwres_nooprequest_parse() except it yields a lwres_noopresponse_t
* structure.
- *
+ *
* lwres_noopresponse_free() and lwres_nooprequest_free() release the
* memory in resolver context ctx that was allocated to the
* lwres_noopresponse_t or lwres_nooprequest_t structures referenced via
* structp.
- *
+ *
* \section lwres_noop_return Return Values
- *
+ *
* The no-op opcode functions lwres_nooprequest_render(),
* lwres_noopresponse_render() lwres_nooprequest_parse() and
* lwres_noopresponse_parse() all return #LWRES_R_SUCCESS on success. They
@@ -91,9 +91,9 @@
* received packet. These functions will return #LWRES_R_FAILURE if
* pktflags in the packet header structure #lwres_lwpacket_t indicate that
* the packet is not a response to an earlier query.
- *
+ *
* \section lwres_noop_see See Also
- *
+ *
* lwpacket.c
*/
@@ -132,9 +132,9 @@ lwres_nooprequest_render(lwres_context_t *ctx, lwres_nooprequest_t *req,
buf = CTXMALLOC(buflen);
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags &= ~LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_NOOP;
@@ -185,9 +185,9 @@ lwres_noopresponse_render(lwres_context_t *ctx, lwres_noopresponse_t *req,
buf = CTXMALLOC(buflen);
if (buf == NULL)
return (LWRES_R_NOMEMORY);
- lwres_buffer_init(b, buf, buflen);
+ lwres_buffer_init(b, buf, (unsigned int)buflen);
- pkt->length = buflen;
+ pkt->length = (lwres_uint32_t)buflen;
pkt->version = LWRES_LWPACKETVERSION_0;
pkt->pktflags |= LWRES_LWPACKETFLAG_RESPONSE;
pkt->opcode = LWRES_OPCODE_NOOP;
diff --git a/lib/lwres/lwresutil.c b/lib/lwres/lwresutil.c
index 3bf5660f3da5..0d1e5aaf878c 100644
--- a/lib/lwres/lwresutil.c
+++ b/lib/lwres/lwresutil.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,7 +27,7 @@
* given by *len. The buffer's current pointer is advanced to point at
* the character following the string length, the encoded string, and
* the trailing NULL character.
- *
+ *
* lwres_addr_parse() extracts an address from the buffer b. The
* buffer's current pointer b->current is presumed to point at an
* encoded address: the address preceded by a 32-bit protocol family
@@ -36,10 +36,10 @@
* the address that was copied. b->current is advanced to point at the
* next byte of available data in the buffer following the encoded
* address.
- *
+ *
* lwres_getaddrsbyname() and lwres_getnamebyaddr() use the
* lwres_gnbaresponse_t structure defined below:
- *
+ *
* \code
* typedef struct {
* lwres_uint32_t flags;
@@ -54,45 +54,45 @@
* size_t baselen;
* } lwres_gabnresponse_t;
* \endcode
- *
+ *
* The contents of this structure are not manipulated directly but
- * they are controlled through the \link lwres_gabn.c lwres_gabn*\endlink functions.
- *
+ * they are controlled through the \link lwres_gabn.c lwres_gabn*\endlink functions.
+ *
* The lightweight resolver uses lwres_getaddrsbyname() to perform
* foward lookups. Hostname name is looked up using the resolver
- * context ctx for memory allocation. addrtypes is a bitmask
+ * context ctx for memory allocation. addrtypes is a bitmask
* indicating which type of addresses are to be looked up. Current
* values for this bitmask are #LWRES_ADDRTYPE_V4 for IPv4 addresses
* and #LWRES_ADDRTYPE_V6 for IPv6 addresses. Results of the lookup are
* returned in *structp.
- *
- * lwres_getnamebyaddr() performs reverse lookups. Resolver context
+ *
+ * lwres_getnamebyaddr() performs reverse lookups. Resolver context
* ctx is used for memory allocation. The address type is indicated by
* addrtype: #LWRES_ADDRTYPE_V4 or #LWRES_ADDRTYPE_V6. The address to be
- * looked up is given by addr and its length is addrlen bytes. The
- * result of the function call is made available through *structp.
- *
+ * looked up is given by addr and its length is addrlen bytes. The
+ * result of the function call is made available through *structp.
+ *
* \section lwresutil_return Return Values
- *
+ *
* Successful calls to lwres_string_parse() and lwres_addr_parse()
- * return #LWRES_R_SUCCESS. Both functions return #LWRES_R_FAILURE if
- * the buffer is corrupt or #LWRES_R_UNEXPECTEDEND if the buffer has
+ * return #LWRES_R_SUCCESS. Both functions return #LWRES_R_FAILURE if
+ * the buffer is corrupt or #LWRES_R_UNEXPECTEDEND if the buffer has
* less space than expected for the components of the encoded string
* or address.
- *
+ *
* lwres_getaddrsbyname() returns #LWRES_R_SUCCESS on success and it
* returns #LWRES_R_NOTFOUND if the hostname name could not be found.
- *
+ *
* #LWRES_R_SUCCESS is returned by a successful call to
* lwres_getnamebyaddr().
- *
+ *
* Both lwres_getaddrsbyname() and lwres_getnamebyaddr() return
* #LWRES_R_NOMEMORY when memory allocation requests fail and
* #LWRES_R_UNEXPECTEDEND if the buffers used for sending queries and
- * receiving replies are too small.
- *
+ * receiving replies are too small.
+ *
* \section lwresutil_see See Also
- *
+ *
* lwbuffer.c, lwres_gabn.c
*/
@@ -390,7 +390,7 @@ lwres_getnamebyaddr(lwres_context_t *ctx, lwres_uint32_t addrtype,
request.flags = 0;
request.addr.family = addrtype;
request.addr.length = addrlen;
- memcpy(request.addr.address, addr, addrlen);
+ memmove(request.addr.address, addr, addrlen);
pkt.pktflags = 0;
pkt.serial = serial;
pkt.result = 0;
diff --git a/lib/lwres/strtoul.c b/lib/lwres/strtoul.c
index f16896c1dcb9..82d215f43c10 100644
--- a/lib/lwres/strtoul.c
+++ b/lib/lwres/strtoul.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,11 +27,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
diff --git a/make/mkdep.in b/make/mkdep.in
index 8c2201f462c0..2ba9495e820b 100644
--- a/make/mkdep.in
+++ b/make/mkdep.in
@@ -21,11 +21,7 @@
## 2. Redistributions in binary form must reproduce the above copyright
## notice, this list of conditions and the following disclaimer in the
## documentation and/or other materials provided with the distribution.
-## 3. All advertising materials mentioning features or use of this software
-## must display the following acknowledgement:
-## This product includes software developed by the University of
-## California, Berkeley and its contributors.
-## 4. Neither the name of the University nor the names of its contributors
+## 3. Neither the name of the University nor the names of its contributors
## may be used to endorse or promote products derived from this software
## without specific prior written permission.
## THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
diff --git a/version b/version
index 039f4a123eb6..75861930e80d 100644
--- a/version
+++ b/version
@@ -7,6 +7,7 @@ PRODUCT=BIND
DESCRIPTION="(Extended Support Version)"
MAJORVER=9
MINORVER=9
-PATCHVER=3
-RELEASETYPE=-P
-RELEASEVER=2
+PATCHVER=5
+RELEASETYPE=
+RELEASEVER=
+EXTENSIONS=