From 218ea97b9e01d8e16190789f89493723232ae1f0 Mon Sep 17 00:00:00 2001 From: Doug Barton Date: Sat, 12 Jul 2008 08:28:36 +0000 Subject: Vendor import of BIND 9.3.5-P1 --- CHANGES | 5 + bin/named/client.c | 10 +- bin/named/server.c | 34 +- doc/arm/Bv9ARM-book.xml | 12 +- doc/arm/Bv9ARM.ch06.html | 12 +- doc/arm/Bv9ARM.pdf | 1700 ++++++++++++++++++++-------------------- lib/dns/api | 6 +- lib/dns/dispatch.c | 707 ++++++----------- lib/dns/include/dns/dispatch.h | 13 +- lib/dns/resolver.c | 43 +- version | 6 +- 11 files changed, 1176 insertions(+), 1372 deletions(-) diff --git a/CHANGES b/CHANGES index d76e389248c5b..a44e20337bb5b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ + --- 9.3.5-P1 released --- + +2375. [security] Fully randomize UDP query ports to improve + forgery resilience. [RT #17949] + --- 9.3.5 released --- --- 9.3.5rc2 released --- diff --git a/bin/named/client.c b/bin/named/client.c index 6d4cc91a4e4ca..3215c6e637329 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.176.2.13.4.38 2007/08/28 07:19:08 tbox Exp $ */ +/* $Id: client.c,v 1.176.2.13.4.38.4.1 2008/05/22 21:11:13 each Exp $ */ #include @@ -1348,14 +1348,6 @@ client_request(isc_task_t *task, isc_event_t *event) { } } - /* - * Hash the incoming request here as it is after - * dns_dispatch_importrecv(). - */ - dns_dispatch_hash(&client->now, sizeof(client->now)); - dns_dispatch_hash(isc_buffer_base(buffer), - isc_buffer_usedlength(buffer)); - /* * It's a request. Parse it. */ diff --git a/bin/named/server.c b/bin/named/server.c index a01e5e79cfe3a..c705af0ddcb15 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: server.c,v 1.339.2.15.2.78 2008/01/17 23:45:27 tbox Exp $ */ +/* $Id: server.c,v 1.339.2.15.2.78.4.1 2008/05/22 21:11:14 each Exp $ */ #include @@ -485,6 +485,14 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, attrs |= DNS_DISPATCHATTR_IPV6; break; } + + if (isc_sockaddr_getport(&sa) != 0) { + INSIST(obj != NULL); + cfg_obj_log(obj, ns_g_lctx, ISC_LOG_INFO, + "using specific query-source port suppresses port " + "randomization and can be insecure."); + } + attrmask = 0; attrmask |= DNS_DISPATCHATTR_UDP; attrmask |= DNS_DISPATCHATTR_TCP; @@ -494,7 +502,7 @@ get_view_querysource_dispatch(const cfg_obj_t **maps, disp = NULL; result = dns_dispatch_getudp(ns_g_dispatchmgr, ns_g_socketmgr, ns_g_taskmgr, &sa, 4096, - 1000, 32768, 16411, 16433, + 1024, 32768, 16411, 16433, attrs, attrmask, &disp); if (result != ISC_R_SUCCESS) { isc_sockaddr_t any; @@ -1866,7 +1874,9 @@ scan_interfaces(ns_server_t *server, isc_boolean_t verbose) { } static isc_result_t -add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) { +add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr, + isc_boolean_t wcardport_ok) +{ ns_listenelt_t *lelt = NULL; dns_acl_t *src_acl = NULL; dns_aclelement_t aelt; @@ -1876,7 +1886,8 @@ add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) { REQUIRE(isc_sockaddr_pf(addr) == AF_INET6); isc_sockaddr_any6(&any_sa6); - if (!isc_sockaddr_equal(&any_sa6, addr)) { + if (!isc_sockaddr_equal(&any_sa6, addr) && + (wcardport_ok || isc_sockaddr_getport(addr) != 0)) { aelt.type = dns_aclelementtype_ipprefix; aelt.negative = ISC_FALSE; aelt.u.ip_prefix.prefixlen = 128; @@ -1935,7 +1946,16 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) { result = dns_dispatch_getlocaladdress(dispatch6, &addr); if (result != ISC_R_SUCCESS) goto fail; - result = add_listenelt(mctx, list, &addr); + + /* + * We always add non-wildcard address regardless of whether + * the port is 'any' (the fourth arg is TRUE): if the port is + * specific, we need to add it since it may conflict with a + * listening interface; if it's zero, we'll dynamically open + * query ports, and some of them may override an existing + * wildcard IPv6 port. + */ + result = add_listenelt(mctx, list, &addr, ISC_TRUE); if (result != ISC_R_SUCCESS) goto fail; } @@ -1965,12 +1985,12 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) { continue; addrp = dns_zone_getnotifysrc6(zone); - result = add_listenelt(mctx, list, addrp); + result = add_listenelt(mctx, list, addrp, ISC_FALSE); if (result != ISC_R_SUCCESS) goto fail; addrp = dns_zone_getxfrsource6(zone); - result = add_listenelt(mctx, list, addrp); + result = add_listenelt(mctx, list, addrp, ISC_FALSE); if (result != ISC_R_SUCCESS) goto fail; } diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index 67f8c8973624e..710cd36c1d1dc 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -18,7 +18,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + BIND 9 Administrator Reference Manual @@ -3732,7 +3732,15 @@ IPv6, there is a separate query-source-v6 option. If address is * (asterisk) or is omitted, a wildcard IP address (INADDR_ANY) will be used. If port is * or is omitted, -a random unprivileged port will be used. The avoid-v4-udp-ports +a random unprivileged port number is picked up and will be +used for each query. +It is generally strongly discouraged to +specify a particular port for the +query-source or +query-source-v6 options; +it implicitly disables the use of randomized port numbers +and leads to insecure operation. +The avoid-v4-udp-ports and avoid-v6-udp-ports options can be used to prevent named from selecting certain ports. The defaults are: query-source address * port *; diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html index dd8d8ca33f670..d59d9d198b61c 100644 --- a/doc/arm/Bv9ARM.ch06.html +++ b/doc/arm/Bv9ARM.ch06.html @@ -14,7 +14,7 @@ - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. --> - + @@ -1892,7 +1892,15 @@ IPv6, there is a separate query-source-v6 If address is * (asterisk) or is omitted, a wildcard IP address (INADDR_ANY) will be used. If port is * or is omitted, -a random unprivileged port will be used. The avoid-v4-udp-ports +a random unprivileged port number is picked up and will be +used for each query. +It is generally strongly discouraged to +specify a particular port for the +query-source or +query-source-v6 options; +it implicitly disables the use of randomized port numbers +and leads to insecure operation. +The avoid-v4-udp-ports and avoid-v6-udp-ports options can be used to prevent named from selecting certain ports. The defaults are:

query-source address * port *;
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
index 7c74c3935bc05..7b599bab06e60 100644
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -889,8 +889,8 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-xڍ=O1[IV|$P6^I큎5P!:1qQUendstream
+xڍ=O1[3l(pjR{HGzBeHl?TCt$M!:P}g\MTkM4B-1L~bp6à1A_8-%B
+.o^&i-N4^aޏ}s|sm[clf?]"]N0P(GY?I,ϱQA6_>:۷/kPendstream
 endobj
 594 0 obj <<
 /Type /Page
@@ -3225,22 +3225,19 @@ endobj
 /ProcSet [ /PDF /Text ]
 >> endobj
 977 0 obj <<
-/Length 2580      
+/Length 2662      
 /Filter /FlateDecode
 >>
 stream
-xڵY_s8ϧ=}S+S6M{٦lvnnvAZS[r-9}Rl%]zәAF8#kWNRŒ3>sDFi뇛o9r%2,;,֊?\^Oq&S7DqpvI7WD|{y}yuq9
-kA#~ѻϯ'xvyҵWp|9>Z?q5{pN6g(fR>V`g/Q+j5@XYhv}-	,g]M^Nrz\D(mST%xIqQWDi*|^,t wluYre[횚hqU1HV/k)D]V;fX?!3Fz;r^m}+ZE
u1x8̪
-N3ii84~xM8/;9܎0ģm,چ]^q,9
-[	D7dZ;(pڕCxacTr5Չ}Oį)U}%1L$C6SA։oN; i$$FLE(H$N&.f)5d☖(ܨe(2ڎlf|lu +#r	A2l
-mRܵ*r
-zqMVoP熷96!yUMMT^_XihO_E-a'xV1EDMK=N=zѷRYk]a &T+]M`'DlYU9$\y;pWpX~067kVY@fښpYq9@9X.$-ĸZ)58&"Go89Jd"ۜ(`Ksxe:eH.$mΟW0n:Ю+B
ֻ3бQEkY{A .heLaY qHM~n
-Uh	8r4ZyuuRHo).‘JEr.^-nW/|=iEwNIvuL >Ԇ(P}TTCQDЂ!`8`hVX`EEzF>71À5h5PQ8'
GG!N/QO(݄3[Z'MNHcqI~
-x'"Gʿ!໙89(78ccLn61N5$ot~U;[F BJfzB#z54v괝<RWK1oC1M4TgtjhS#!
3.ЩQ^@:yz{R]:sO~R8a'}u&n`/.z+Ԁ
˚qN*|ziYaW`aSa`cz[:9`-%##P3 DA	if`1uփg@5|-rsQ7(zŸ[TrG%ߖtGmkzȇe]p@P@ȘatiekfoHf{!v)K@Q7]A3=ٹ
CV*X@!H@(k`$E(XҺKSwSxy(˯*z{hx#@u(ڥ?PXB\,<'`cXxjtNy
Vk(|_Sp VXaa(ӓ&9puT՗endstream
+xڭ]۶~T]DŽI|vEL'ONK,Rwv߻(bAb]' &~bb
*Փ$pa&<ܻqu_|IXƓC2n̗L~q~swIç1Ļn$og~Lt>pK໛7w77Fz)Yvz7V+/3Z3yDBŌV*@6?^̺c32ce2@hR+ԮExuQUFG515EU45tz%A ._gl*[~]V.U&Xi],.t=U|O͆$
+AW'	O#EE@ǖAeCCb>>!=>`J%y
:+vXbA4ψzyBs4M8Ib?lu=dZbXk5,Yj7(OTzfb}"ڽI<_bRJLm4,Mn4Oq~'d
+~u@]
6Y,FY5/u`6a.gMN!i	1u#
eOi-4B_Qv)=',ˆEĴ'=jY?4^gN^VǙ<0wJF&ifLooQz[ԩwoA4V:U4KM_D-a')v:+Ali~,.NN=!-/h֮ĀDMVWn7tAӦe]=hZ=>_g->X~ζ7ǎYg>6hdɅ$V+7o+bt􆆊A+º		 p:sZt܉;VvU]sX/g#烷
,QK΁cO˼.h'LaYd ay@o6MF795DNU_9"Sܹt|!K_3#5J}{~_Br.	t_$޾zR;JQTR@7h\{`Aԙ%5Egy.h}	憾if5V`h9Nt1Q((R'R,!!E,}4"]v]%bWnIQl!J`Axf=gt`#WCcNY0mED160~fH*jR4;/!o!%ud? #;.cB ͛ SfH&
+\R4uI]O=#$3	7ǝ]{ϱU8Q2"m8JRD(1D2h*]L@>#6 [G"vO\:G.v0G^r/MfsèX6rE
&_4"7Y+-DZǶuAsK;J
/J
귎p"aF
+U&AD{%ExsڛSL;NӊXeOg/I7D"RUYXRkXhZ~Vk*jw",^Ӗ}kᓖQ?~|E48~3ù*BꌝG8VLT Ф#S u);
+BD(hh߇ l0op}a.iSI9'SKu9-amե.}]5~z0}\wѪ)kA2#wiu	 s`{`,JsyB|{Rw؍!mV64G&,&O6B/6)Tp1=߀C]!_aaA'PM[9'jm5~> endobj
 370 0 obj <<
-/D [976 0 R /XYZ 85.0394 419.653 null]
+/D [976 0 R /XYZ 85.0394 388.7711 null]
 >> endobj
 979 0 obj <<
-/D [976 0 R /XYZ 85.0394 393.5443 null]
+/D [976 0 R /XYZ 85.0394 358.9876 null]
 >> endobj
 975 0 obj <<
 /Font << /F62 638 0 R /F43 604 0 R /F42 601 0 R /F57 628 0 R /F84 802 0 R /F86 982 0 R >>
@@ -3264,30 +3261,18 @@ endobj
 /ProcSet [ /PDF /Text ]
 >> endobj
 985 0 obj <<
-/Length 3187      
+/Length 2975      
 /Filter /FlateDecode
 >>
 stream
-xZs6_35}l/k]Rbʒג7M(Kl7L 	? hI*R"sHJ\CwyVi5⛷^8R.nFcY!U(Z,a~wr%Q߽/W&*zW?\
8*ח_o2^_墀e!q6Y<9^ĉIlL/>\kp
-i%K`ώE$d14u".R%FZL!
-{HX!"1TE7_GOCLgZʼnJ9C<#گ⛫Zia=ђ¸~E6p
-L"RXkC[{`UreH"2o
-"J橫rO5E[2DtݮXFE_3žxQܼU?(R#+n	BmA:`
ۿgR@
Sjsf&5`\̨Td)e߶),R>orߍ%˜46yGĶ\o]5Tk
Ⱦ2uT>K݋)'a	uznmy	oCÌwhf7y?ќ,28~$Ǯ/`hmwm]׮چGwGi}a'hLؑ$0f69̴s])OV2.3c(0uOfS"n56ʱȢk'+Z~df8Ke#?c5$+	EO}'CW6p}'v:)?{vP=ETr$;
-MֲC]/:GQkܷ 2W<@[_Ul3mP>d)PMw۪XyU270mU]P?70}Ƀ4*y,tYa
[PF>9' fSmYmͼ>
Wq̘Ӕ:˥	3uh%ϯqXp={}U;TGlxУBA]9TAXs觍gf7dB%ƍ7|-d@˧sZ-NvfXPOZ7>~AS%kӂ*VYgI20B	[:mYW@`؃탧:utEyjfXnw=:_d"v|#Fɲ^z8Ao8:
.ܫm*8cT絛jv3#njh5S9[`|8*MCA24msO!60oEykj}Մ$n<~[TYU6Tg"T(-haʀM=tQm[ׇr:/?I3QMPqnj>ޓ	T@Ķy/楥mXA/>Q_YQEy氽<&O$x
l]Y{XeP}wTIʩ sƴ
-QÌ*xG͛*h,HO!DP7H0"*0
-OFCv'czX<3kw2*7YtfR#^\yS8s?ka6㪕KIK	ng^rYA\GvMPżun72aB9kִ(ڈ4F2
-գ]Esis8'qOAR#CQ~{׽Ma $bx࣏02,	f}Z|6J5pE#wO
y\aYQoE@[Anxjlogs<
ސEi98ښ|պ!%URղj0IvOSobBz	d95w1;uܬ;hŧNDyy3Y9ř=ِ3DҤ^Λk㣽v͟pN11pH1T$Dq:K/~! q+X)CKD4º|Ʉuq^ 
-xfҒ1(9	xb΅ҿyfEf8W`3'<A3<ŝIjIJ[|B5ϐ=I6K(Ŵav:塉]w&W;	odzˠDQhЀPo?P
gXf';Ԇg"ڊ5i8 p"VC|?f9ʀLƲk>qQefVZnHPk՗
-Gg߶4J} m[@S{P[
-|#_J@P3y溦| "gýCY1;นXcoLՂߡTׁp"t?'!˛n!MNc“0Rǽ~ל'P)еw\2I9E2%S(*NVUuspp8/ƞL
-sFTiAq/,YPGoXS]'jGc{W;Fg M	NOAsWp&/~_gX{&o!Ċ-B
-b4`BEN?endstream
+xZs6_R3~iܹ:D77wmh8HGbISrztn[[jږMK7^cf<ϘFU+jgBfcX/=CSTpvyD@B~Wx'C
+.aSTgРe@e6Ժ"Qa]R.DheDNoZXG?K0R}U
d
꧝6IaxUs۪XyY07ݏ0}vKԧC}pka滂'h,,1߶j峪We)8A^Q5l
65$h-w&~vʎSYKC`d>i!Ŷ$հ}.
wjN_IQ	=rUtcm90obDpfrL&rM7	chPR@'dZ-NLW@OHXej|_kؔTMJ$h8U
!gVlm`KV	y
+ܐg}ny{L.nÖf}WȊ]H1rlaP*DcLqɂj	ͻh]('I1Zݞ׃y&
PPgnjsPJ6:Tн;*y(*cX]H#weuhn&$!u] PetUSPd


Y{8آv9ڲ7k,HY$(V@R4:I$$LXkqM2DSvMCI!:>FO׽Z}=:dYpMB.R#p)qZJOaKDuz\gN>Rp:WNWe%}eZV#ű*} h}"*R)Ou<ʉDJ72J3<\!qVb9vϨqM2WV#G!edr:+}D>^ɀ-$lCJ(X
+gW5:$|=._2.>b#y&"6"!_y6hcN #Mp.O>Bq<	+G懖3:
:	~E4󛂒Ic02"	p;FYR4rA+>,`#~_Cŋݰj'<
>A箪8ƚuݵҗVIL;M{..\/.pcXGԱU6\х-Qބ*zh'v#"-s103;ڐ:zGt0	L>ԻigY
:*)RPׁ)K]|]a*@JH95^MJjZ&!oP&NaJ5N#7	$F9_!~Ӏ-;Nr8%>儖ZB{=I֕IGҊ-=7C	\ǾB؞MxkE'O'_34T,ԫwKlXk
hHz[OI"ÉXuw#?1D;+.YՄ_8Z=bblaV
+ۧNB0Hendstream
 endobj
 984 0 obj <<
 /Type /Page
@@ -3300,34 +3285,29 @@ endobj
 /D [984 0 R /XYZ 56.6929 794.5015 null]
 >> endobj
 374 0 obj <<
-/D [984 0 R /XYZ 56.6929 645.6366 null]
+/D [984 0 R /XYZ 56.6929 573.6377 null]
 >> endobj
 741 0 obj <<
-/D [984 0 R /XYZ 56.6929 622.1818 null]
+/D [984 0 R /XYZ 56.6929 551.8981 null]
 >> endobj
 983 0 obj <<
-/Font << /F62 638 0 R /F43 604 0 R /F84 802 0 R /F42 601 0 R >>
+/Font << /F62 638 0 R /F43 604 0 R /F84 802 0 R /F86 982 0 R /F42 601 0 R >>
 /XObject << /Im1 795 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
 989 0 obj <<
-/Length 3155      
+/Length 3506      
 /Filter /FlateDecode
 >>
 stream
-xڭ]s6ݿBo'D,>sr]JmN%R).ɍg81UדMa+pi>FL,7Lnk9'_\h65l
~7?̪gs4"pf]?۟o˙ăqolct2;=yxJii%eY_Q?uJLe&sm3f8Y40mn͔p&Q&G,dr+ܵ>>1Dø=ٽ^Jdtۇr6BM7şfF,}z5j0?4eQ뺪BS/݌iYw|2"'1H8Y4ʻbm>}I`k;8噓p*g2&M(@DZ"4kxZgIf_Q	yS<,WE{KO}Y/C.C^E`\Ws
/zb!U P[R'uSjꓡe&}nr(mP
cLjEbן+e|NHɌ+.oc*˸"%kA5H	/
B"BhBN*^X̡
-!"b-7w6-Ǿl6
-}?e W4>U 	rݾ-W'#VP7`	f\|
-B)3puA
-#V*[yݞ6uLE5BFrb3kYA ؈(XNwcd,EeD`4o*OM }9˚@Zvt%bܡYZPPgJ(Yã_c6;˭5 ٫p+?
-Xd89g{|Sm>4|#>Fπ3UGxta%;$/=)K6(J7[p\:PFS>ھ:
-QhIϴ4XFcT1;b.vGo1eVKm$ľMAaHL/!yc
yA|neyj"E=Tps_GƱ4׬sk+w
-4C| 0@OՊDhe0
6n>=*n}"Ը.]ՐE3H=+MGk<]z&{”׹oIڥVVJ;KyNmzƎRL-X{'6
E6]KMA®	aή"aOTxU\o&Z~iuG(uӥ'D	SK-a[PL0\~Gq@_fFC}dHR}ˌO	ILqb6|EP§P@$^Fa۾0sBa>k/	ZcuTi];wth,HYI,,㨚ebZۄ\VMZ&ǷWJqT@Z#[u-RXs#@2$u5<u?yݠ图x+ 
-1-\_´
-+I?]tJJe-B46,h6V/\y]:B.^i(𙾃-:-HrvDu==IK͉֫
-aV[6b!Y-~OC:ݎDIDyU~LF`j^endstream
+xڭ]s6ݿBo'D,?sMr9wn>Pes*Hub(ٙd,%X7'^MWf\O+6xę%Y17LV\Ɯ㓻wLh65L64yڪ4ngiߋ™ㆠ?緟;KI<W&K8OW,tXƽ͕2J4?{1i2a=r2}fkES(xEeCyluӔuD-ly{iޛzUT욈ݧ=s#rwQqb/EYTr:߷Q]	jmk%n8	2絘8ϼdٰXDZx"YE#!`\H|9ψ\-	⡈\t*M^fE&G^zG6_75A^nIx:hr^š_k
UbC\(arKi_tex*cDX69-tD^y/g,*fMZ	}GpHJ>p]\)lĘiE ˖;)zޖ.RmN'(~Q	-0t.dEy,#1'Îh-fQ{.䕐u#]Ȯ3+K6uF&|Eqj"Ez*|בq,M5R*,b)Ai@3<=!s2D&b"SGEݻOWŢ
I1q9HƑ7!/ՎւvU.dqמZ$VVJ[Hdmx@ئǠ7`GNmW~\N`V,|b
B+ls>~ʩ[>*4.Au0w"n'IH*Č;5&g[u ƒ70$^}d xP.,"|JH\n/7_PuNQ"r>Lxq)HB>oEѲ<ĵkK\ocuMI~S?:)L1l12]**k93&:vI& P(,{*ۇ*Rlf5Kl'>L#lލ 6:3>spXS.Ӄw8#l ɔ~.C:,$3w3{4'ႁ\ɈDtHT)h䐌.am((37qW	ԛCy_'zLy:X-b&5MiB=uvH\#!1:0D"!oѼX*Ú^'
+.cKȺl3@"n3cZb*/M$Z
0^%ug܎ٽ<
+^mHˉ6-s5҅L7DH_>cT4KAc2٦/.Wjjz›nXm -Eb;_LoN8Jw'`pʇ,
pw>3MJ+Ks95Hw UZ:^Ξ|CJgFz0ʃ H0"u
iJP"X%acs,403yetQ/I;I4ÂAH=	:YY-wȆSaȬH#i!D",Ŷ~[W)G[
Ⱦ/ږ,u!:!<_!~^Hlʩ,=0BJfI^h` Wo3`Idvx6#0>Ipo.x%a*/;S)Xd ɩ_H#CbK²_nAm96j/!<8bl8ީLq%)>TZf{BQvªQ1`XW%RԂtprh:/E֩	tX#Ƀ)r~	/u.Y	"\_` R
MqZ(k*j&$M\5alKscuKPz9G&Y|;pP鍨!Eݑ3YS
+\a!l?|a2RWV.%H-Fr]π!7En^!LXį\=;ڂ9;,2y̤6|rՌX7X9ASBaxQA쇊 ~+L1ǟI7T9.Mp量wC^X3F2LXIe,Je,㨌eRVaVю`te<>:5܏>'OG4୕>R:߇"՞17d(͠F0t3{IhCYYL@3J+LWpPB{*֬$f))1G+YA7,Yp\rX
+Q3b-:֭g_zv0N^h`3߱7'i!|@8r
+rՕ-2鈅d]Ϳn=W`1!?(DWcʻ?o%Yendstream
 endobj
 988 0 obj <<
 /Type /Page
@@ -3340,23 +3320,23 @@ endobj
 /D [988 0 R /XYZ 85.0394 794.5015 null]
 >> endobj
 987 0 obj <<
-/Font << /F62 638 0 R /F42 601 0 R /F43 604 0 R /F57 628 0 R /F84 802 0 R /F86 982 0 R >>
+/Font << /F62 638 0 R /F43 604 0 R /F42 601 0 R /F57 628 0 R /F84 802 0 R /F86 982 0 R >>
 /XObject << /Im1 795 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
 994 0 obj <<
-/Length 3150      
+/Length 2914      
 /Filter /FlateDecode
 >>
 stream
-xڭZs8_Ufj.E=u۴םݶdADWYZr_Aʒ-;Mg*~H?tČ?13Lf4pafhh>wV2Yigw^qv{bd'o>}|oׯ/S~r.
O}Z_˹pF$o5MHFL]]_}|suW^\F>[Le̞Ù29[_hJő=_:u~Z:fMgS܈o?E7-eVR8h^WY͝`&l'ÌT^fBR&Sl;t=eƌ	gFI
ܑ܊}82Y
-r(yL0L͠??ㇵm`CߒRŀ)4,u^ᛦʷ`&)˹Y5zE"TeUS65OHue}On|mtwx5o|cO,^^J|9k127_3`3QeƜKh{9FZV2NQOGR==>R M(Qc
~)cJ"&?Vs_J_-v5lNЗXR{
֕G1p2
-LR-{.`(خѲ|a@;_~fdR`er5j3" 5 5UKpo`K:L$9~88}@sG#ph: B!KCqhD?=SYU4qD8gZ4z>a-PBfN$s8֖5Q,x.85;D&#< C~(ڂ&*MĀ,|չs͚&MzZ{f[86ȱΆNfr)QȢMB&vWT\~sWl§2ivTv4cIWS=n-]ݕEh,+VTx9Ϸb}^S~ϧ=iSls
-r&&eEtr{,|w#]~hihPFM2Kyhh o(_55KJ+e^ycǼe9j*K1Ĕ$IhmT'_*^MRL>'FTc2	NUp^yqN)Ȕ8T'X#<"/;`״UD/ݗ+&Ï(h.G%N(SHxԟ.,MZW0Bu\UͮT01f|Wu*2"Fcyh=偬)(
%U)mv#c(v-7]v6P6?a"P2Jp]Y%x`R˞|8oTP^r&HJ1aБa,ʤ}(aeO?6XOBrXpАq^Ձ5R`~!x񆫱@0ˡ}3JR2C$i(e3
#/oR4'@W|<ׇ&8d(SnOu`3"yFZh0ok*&H,˶yh@h;!E"@ޏq⨰2Rk!隭᪁jx"2Ť0/DG	̰o#!UFI}M ֛{t$Ĥ#<X 
-Xє.e@uR",b9+8M>T1L	Rv\X7Puq}WKɽebҔoG/
)ݫg*YANb ]V^tRhz܇~_zqCy2ԡb*1ZK8jU&yyAvu>rBM6 X+O Y)}l&nZUA
FmZ!AC_{kx_U.)&kC
dVP3F5ɘ$;cҐtLP|Pn
-y?H4!wm1=c!MaԻ̔QC}:@j3<⍯͠lj5B$^}tJŲKix˄/\̕F*D]2gBou2pΗ|؈ip!`\<^%2;RKȊ˺+5gO˅ E?R;S{yHCIUs?r.|RJ:DJsL0١L,dG8h芿#9p:_./S}uHŒ8X6
\Ģʮ@6CNfAc_).)`C'54ujOBcnW^v-;iE.cRi+Dxh@ܜi5SxC4v({Y4ܿ@+hM
-DZmx[CjTí{wuuzh;Ť6DU8E8ӿ*'ΎG)u0sENc
#93arTx4Aa˚jU^qpm'xc'ԒZ|5kG	'g"#|Hٯ﬜e,nΉ2΁O|zwNn/?^ϥɻ4z?^_υ3"yןn/i]^'^_zsqg^\F7`ۿq2gfO™29[iJř_=tt*1)wUΟN$/0_Y͝`&lnm,޼Z̈́`1R&SlbWx0cjt3H|nErβL1L8<2,SD3OOz
g6R;0;rzB*rΜS+|T$e{>W6K$3L0W4(MU[Y5Eni`Y$]W=amaVۢ
O7yzgsPJY0yQ6=|z.3B
+8#
3Fi0,6g:F={q1	~`lHH4:2)|(?!dJ"&?Vs`J_-v
'+mQwcOp2
+|\>(Z6\XQ/,s h+bO4le.<)WG=߭6s":8BYcXE![l#bIg$o;hhM0ei6WI{v|}8V|5-UE}SSV}EF"'qBCXÿ=z*Tg!?nmNYDĺ]N`RߍtB
}(,YsaP~4X.*U3Jny	Vj?ˉ]x扨pAL9>(Ot&0@Db5_oA1&L_m	.Ue-L5W^8'qT
+,JpRO59#{!N%욶F}y/b2(\kW#N(S(xԟO[zm̯%,aBkޭ%*_Ta-_7RYBtVǜ*]M(4˜tG{ ?a4lVdx!p"BoCl8hUm&!X!1-1Lk8wS\Jx\5*Ԍ䦗	I47YhPQ'ɏ5!W߲[U>R#
+BXp6yh%2C8O#8$Č4̐0K5LI8t{&@Ih_p^G#		<9:?7cH@ڣ%L>ۚzH|#^elџ0w1 .fTH'(3RE/C1{,)TJd/_~9i;mmq9;reUd[3.
u'sTI9iHu:'T^TE{(7rKH4!wmǙvʎ冪6iR*2SrxF
K?ۗi41e~M
V#;!D]+xW)SߗZdͩoRMqI? :mHa˗'YH/4b
N}}*?aIHps&Rㅡ¿4pDkŝf^
*5%an.fw5ueN $,@P{AFSBXrYwŶTLqҸޠ4kPz'eL*}@t:"QL"WW|*
+Q+_ԡ':VbW/ǴjAծԾ.B]s^zj_mտ}{oIJYo*>SP	8DZS\ RNfjǜ7ԛl!nWsS?kPo&OΝH
ySEp?$UU'Tendstream
 endobj
 993 0 obj <<
 /Type /Page
@@ -3364,82 +3344,82 @@ endobj
 /Resources 992 0 R
 /MediaBox [0 0 595.2756 841.8898]
 /Parent 991 0 R
-/Annots [ 998 0 R 1000 0 R ]
+/Annots [ 998 0 R ]
 >> endobj
 998 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [361.118 468.8579 409.8647 480.9176]
+/Rect [361.118 436.2023 409.8647 448.2619]
 /Subtype /Link
 /A << /S /GoTo /D (configuration_file_elements) >>
 >> endobj
-1000 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [347.1258 85.4256 404.2417 97.4853]
-/Subtype /Link
-/A << /S /GoTo /D (journal) >>
->> endobj
 995 0 obj <<
 /D [993 0 R /XYZ 56.6929 794.5015 null]
 >> endobj
 378 0 obj <<
-/D [993 0 R /XYZ 56.6929 647.7963 null]
+/D [993 0 R /XYZ 56.6929 621.8163 null]
 >> endobj
 996 0 obj <<
-/D [993 0 R /XYZ 56.6929 624.4206 null]
+/D [993 0 R /XYZ 56.6929 597.0941 null]
 >> endobj
 382 0 obj <<
-/D [993 0 R /XYZ 56.6929 550.3829 null]
+/D [993 0 R /XYZ 56.6929 519.9904 null]
 >> endobj
 997 0 obj <<
-/D [993 0 R /XYZ 56.6929 524.5365 null]
+/D [993 0 R /XYZ 56.6929 492.7975 null]
 >> endobj
 386 0 obj <<
-/D [993 0 R /XYZ 56.6929 216.2206 null]
+/D [993 0 R /XYZ 56.6929 176.8325 null]
 >> endobj
 999 0 obj <<
-/D [993 0 R /XYZ 56.6929 192.8449 null]
+/D [993 0 R /XYZ 56.6929 152.1104 null]
 >> endobj
 992 0 obj <<
 /Font << /F62 638 0 R /F43 604 0 R /F84 802 0 R /F42 601 0 R /F57 628 0 R >>
 /XObject << /Im1 795 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
-1003 0 obj <<
-/Length 2948      
+1002 0 obj <<
+/Length 3192      
 /Filter /FlateDecode
 >>
 stream
-xڥZKs6WtUA3O֩zlD۬HE8~%gk4M|/Jt¸,Uz{O02(K}|:-q4M|5<_/bNJwq|pm;b|tsVq^|O{xIWW,Ϊ+tXʝUd2)#?	G9eʦJdzTYM[LՖF
-{+gVRhmweەv89.Bx%z-Hn~5_x$hH].˘(Z"@r{ؒx}خ=
4ht u/iBt
1Wa/ŮgZ&wMX,5(,SJx*0W!)kjG^Q8,t9חOt,uD{)j_|)ړT.5<
-ԌTH` 
-CHж0\uy]4N(lrص!ؿ^˪"jW}X |nz~9P
I˒`38ɰ
`o$қʌ 1?7gZB	UDX燶ɋ|LX;/Zr|=1Ve7OŶٿ]$VZq;7,![0)f-*ߙ%qGbd4L:
I.|6osVF*7Ś욷~SBCRES	>=,e#㞏v۴0}$u!ڣ?lK
-sy^jfIKN(̡Ӈ9=
-sç_b'缋_a@tqԧ42X"U6r:	f|a&.XR"X|\Q,4˔9i.K(0+fj
*Q!Kmsc(@}@'<$ Y8_<`hkwIH_ePTf>Y#O j'0A$ˉ1-KdPҐW>~BJaTEDR+I;l@TwɦɪυQ#xGP|aWں	r>k,I!PJBx)WBaaU]EOy!e{iH8oYRD
-vTsvWn^1uAwXk_q
-F*2zx1ԯΧ+Rn{j$u!]EX*EP9PG^֠Qr%T\BM,/';ɭ-x>Nž.*nRȀe#@L,4&+Py =!2[!+mސAC+HAYȹ0ܼ7|C)e2< !^YυmܽuAk^vl㋀ha{@Ɯ`hA!~LYDOl1]BڥR4\J -ϼ<@p!]/nRfSCz_{w=`\JR;q::ϱeeT8}
p ^TaФS%|eRtBHrؼxA5Jm@P]C١١͜.eV#4G#vB9cXGf^#Zͨ=Рfυ
so!(`1< doN_tCZ
uGv|opgJ,"SHBD)+}*Bhni/K(1MTjŧZPg,`/6G^C䕖|E^'Zm?9;ݔJGﰩQI!uʸ!$<e.b9cǾo5>|sWU%HZNlZqۤPyqCxCrܚ] >>]aQ%҆q79sX|$R}|p!eyvY(4´T9%:7
#	ӤK{m_H!$\]*sQlG[/'CJ²
KGaGw'U3	R|]7oF=77΍#޽@{Cz`IA1x#3U3`/\I"~awmtS΄M>	./.*ʰRe] uP/	LB@kMٮ\8`#RrCRj%vy3ކwߙram*2M =T(;O% 	&kvyWESǟg}SNb(w
-;x杜7:z)3w)1Q81nԸ˷	b&{<# ]5OMÞMqܩT:֙8grfe|@eO9-$KcX*8bgtj3RVРH;Jendstream
+xڥZKs6WtUAq2dJ=ds$E*"eF$(QrR)F@_2iEnT1[<7W,2OZ,ljЋHI1|9?>_/bNJۻwnڕ{~FȨn(QZEjN@6Ϙ0q|Kb3f]@YDU.]I©`!١yax#ǢSǪUd9lv9O\5a8a)A+KNnWo}فT)Ux/O^DpZƹ W'ffĹa)>C<Ga=/G6M9t蟋>Pn|{aT^M[`rk*E<Nž)kn-Dz
+vjp۽b"ü
;hRE)(=9WǞW"EF+ž{,$ZP&C*~꫚V/ ub]ZT=[h"O\TadU8]g@,sю,!Jz(K	2U
@Qu.O!Rdeo⠼+JU:zGr_jcԡǢL[8RBwT"5x'Lca:p[S2[V^ӛFREqzLjWvc6^*lk)î=IJF1fݾ8Pf6Z
+s_K1EGw]/-	MdWl@f<ΈϠNfxśJοb*niq^I߆#}Hx/ٴ=r`| ^VP}awNU1ׅ0\W~U8uf&x*S-(320{xm:7Ez+4}EuԷ-]@w;{W82xIse=n27Lv	?c\nb7Ix|ľmU_}%R'nqդPxVy8!n6D!7'[StG]FPtA?Į0*B:8W#Q21H|B$T
+iFi=2JNu76:Ӎց޵ʆI4e?CIԹ"$KUfÝؼ	47/Oje)i,J݂QŭvO*|(g_p;ů{Ƚ#޽Q678F;ђ8wct16lpcOJ&zc?Dn\³n:(^I><:L>z}A/N>**??).U	Yn?<MZ{rSu'ꨍ[ԽTPs/c̗ب5HZ׾3˜Td&@m=wzn	zG 6MR],4 	_guS+s퓿0gS*Vufŧ9{F@Of1GkՀ-{RF*.ۊmAijWW04?r&ʴ8M0ޘ1f&j<ÞE1IzCZ`\I6TP<#E^tzȼxyErsb*NunY+)ZG/o|u+Zċ
+d*Mn9)5+Woׂ%oL%cGCO-oəS-\D{ 6ֳj|i
	Lb+J$b8/S#l*EY3?7J̇W.ќendstream
 endobj
-1002 0 obj <<
+1001 0 obj <<
 /Type /Page
-/Contents 1003 0 R
-/Resources 1001 0 R
+/Contents 1002 0 R
+/Resources 1000 0 R
 /MediaBox [0 0 595.2756 841.8898]
 /Parent 991 0 R
+/Annots [ 1004 0 R ]
 >> endobj
 1004 0 obj <<
-/D [1002 0 R /XYZ 85.0394 794.5015 null]
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [375.4723 755.8266 432.5882 767.8862]
+/Subtype /Link
+/A << /S /GoTo /D (journal) >>
+>> endobj
+1003 0 obj <<
+/D [1001 0 R /XYZ 85.0394 794.5015 null]
 >> endobj
 390 0 obj <<
-/D [1002 0 R /XYZ 85.0394 449.5881 null]
+/D [1001 0 R /XYZ 85.0394 427.5127 null]
 >> endobj
 1005 0 obj <<
-/D [1002 0 R /XYZ 85.0394 421.8763 null]
+/D [1001 0 R /XYZ 85.0394 402.5515 null]
 >> endobj
-1001 0 obj <<
+1000 0 obj <<
 /Font << /F62 638 0 R /F42 601 0 R /F43 604 0 R /F57 628 0 R /F84 802 0 R >>
 /XObject << /Im1 795 0 R >>
 /ProcSet [ /PDF /Text ]
@@ -5335,7 +5315,7 @@ endobj
 stream
 xte\6 tݡ000 R"t	ȋ>??w^Z׺75
 rprtP(W琅CfL9g0]#5@xDDD0rp'/g+_.+ .[;9a@=0j@`YIPC@``w@:@p5\8d\@y{N!v
l0f[G3{$ӆ!NǬtypGOk8`4+s=]!.NPcG2'gn.@gk(wuuO=	' .`
'&cNcn[lnN
-{fXE0lɥ	w}L	`u?@#
ܿ,vNjxcߏs:B^F4;Wc!d`(B<W}SL70};A`?6x.EU
9UrA˂GP9pro:#
?de^7=*7tux^psr?Fr~sOo4
+{fXE0lɥ	w}L	`u?@#
ܿ,vNjxcߏs:B^F4;Wc!d`(B<W}SL70};A`?6x.9}SrA˂GP9pro:#
?de^7=*7tux^psr?Fr~sOo4
 0a֏Oo?x=	a.Ab9Y
/z{xœ*2#Dj,8Ey;on
Aߋ(X>.3vmsW`gϨ"
 rn蚗ߡRw9_ҹ_8=e4%v>oFk(?`Lٽ`4&9[~;26cL|r)Sjl(
 b7Vh9,IRe߷R%=
t(%LǏ)>1٥^2O	%>pjÕr{2wBx(S|Duޡ{:ґ2G9C{ɕ<|?K@F),w? ah%ٱo^{6@-%~jwXjz1i%u3^g`d+K[De]Y?>Hj,kѸh8v_
[J֮9m=?\k>ଇ*ѳ,Y
W7}C#ZR$`bGοa9gS%\/hC|?s؅g)m}vk.b&O
 +uqf`a,I㯽/ݛ'P6ߢH?ٹ9mHr7:pMRY# 'WKC|-mW躖nᲶ03=j-,nebi;Hl<)L.Yڷ)wL=(L|)='-@.Y[a-Zypx9>穾*|,4	=	a{ZwLVqCo,H;_7Gg[GxdD*~JS/
*FjQjw	]_-q;,1t2ߥƐ{:֧o$c-Nߍ	tz"t'>(hSM]ۅ0
SPKDdOjn|KHtޑ+㢟S'@6iC,g3BpΡφn;ɦc
_7T,Q1TiHBWL8	,.u2)=Oڴ,
Aqr^T!12)N\)Rb6Cb5ޛ;mHL^Ȭݸ	{>m@zN׻B]@)p[j6덶BSHQר.ثN`Gz^n)?892x%3ZJ]\^SXAr}[(0@elmiEW9QѲCۯA=g>MF{Q=*k+ki@ħW:x<"}<=ѥ䃏DKXx(
{jdqXPvπiA;@y*oLOxOc	-@YUʳ;BiM.\r;UR')眄	@i/_	Ar0FxYjCĞjbnU?uW#,MߥJBQlX-ebtx]s<:XQw-N;N?VlvG,%9'bη9|1.!]D=RԌݬIg=h_5r/	tv;0endstream
+*s"}Y
;҉{Y]pݯXo}UZ: h)8fEDsqTM:ùɸX!l΄,17bg&fܽY'jeAt
]wV^%RtΏl阦jϸ3m>YjCĞjbnU?uW#,MߥJBQlX-ebtx]s<:XQw-N;N?VlvG,%9'bη9|1.!]D=RԌݬIg=h_5r/	tv;0endstream
 endobj
 1195 0 obj <<
 /Type /Font
@@ -5367,14 +5347,14 @@ endobj
 /FirstChar 67
 /LastChar 85
 /Widths 1348 0 R
-/BaseFont /FJYMCJ+URWPalladioL-Bold-Slant_167
+/BaseFont /UCTAZU+URWPalladioL-Bold-Slant_167
 /FontDescriptor 1193 0 R
 >> endobj
 1193 0 obj <<
 /Ascent 708
 /CapHeight 672
 /Descent -266
-/FontName /FJYMCJ+URWPalladioL-Bold-Slant_167
+/FontName /UCTAZU+URWPalladioL-Bold-Slant_167
 /ItalicAngle -9
 /StemV 123
 /XHeight 471
@@ -5394,13 +5374,15 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-xRkTSWRIzX%2yj	@X0iaQ*P SjXKP*4@)00H&odupgQ`#֤&)-ߥ2a<d)P@Z`RCFV,?_
--1:Ɓ`NߊNJ	QT
Lʷ8!A0J5P)4t%S:XH$8JF(2À{*&$l6$)iZ31 M\P@!x
-zI,&@:TNW6`iI-#ݛ LodGb|;ODaҠw
-!=a=XobJ;&W\y̞|dkm~^?xOQG9os9T2
REF/P92%_IoK[2ے3&xPiq?1#@`0M#^!
-uXej=?yL7nʥkM&˞DF	ѿ.p%	)gny_mPZ[03$T-ip]7I8ԻE]x㋎}v$8rgQЖi};^b=iq޲}PT6#r_Zc8v瞊~PE+|ӳ6چ+	)L<>lK+'ƍܳl%8Pqo\cE3 ?/}u'T,njO؇;fi@?VE2Ϊ(#[]h?A+n4mr"n~/}ZM%U%1U|<5cBTTzZfƝcOJ^7oWD5s2R˙2M|o|UA9/tS>'/_65nF@٪۷_wlϏu۽SJ5-+;RV^1׶1uCeBFecibǏc4xiTvòvp4Zsne+^psN"5%*WL'	~{!KĞ5T-/_jC4Uͭq^+kNۋyS/_'Z!mzڲ&B`!k{]yyҠF
~A
ԉs8yYbݬ]jqKҵ/G#w_ZX"X͛g4+p~.OPj`N`ZF7endstream
+xRkTSWRIzX%2yj	 b,{CnIH@TeYF?S1珘4	Gt d9$NӚQ!h|z
+9Dd@PXG*f1Q ҙ\pK
gfNo.`M$קa:c0<{/ع"*8)`rSmtyc̅#[;o;ec\Ǜ~?yqґoXO=-1dmfG7z~٬ᤔ>qϲؚggwׯWQGf޺I^~אP)%̚p?_xUc?s}mIh˥v7L/:@'s }%LZ&zl	|ahi:{.0#)-
Č.8V風]
m[5BkCTKzC׿Ѵ.u%;g>M~#a~bF,/azjG\=Bخ{@N˘n쇶,H|T}oI탢sQҏFn=&hxı9T/^-6\{L8GJe	g[P7dq~痔'ȺC5ݛ>rю
@!40#т;fc?"r?[:+
luw
jԹ 7 y,u^5dïNVƲ򬽫Nxkƪlz͌;3Ǟ[^7VoWF=w2R˙RMlo|e^5/lS.'/_66mDB٪:_wlϏwؽ[J5./y);B]X2qkۄ\KbUDZ`,@~;eai};8T9%s[f-ܹg˲d_8/Ȋ=b*L'
y{!Kĝ5VHtnuk
+Hֺlx/p5'%ǩˈO-wVZ	1>
+k]
GZǵ}M.|QYP]#1FD{9|V@,|n&|]j
p삸5ZQ;/-,zr1CNͳl|yZ7'
+(԰'0Oߌendstream
 endobj
 1166 0 obj <<
 /Type /Font
@@ -5409,14 +5391,14 @@ endobj
 /FirstChar 60
 /LastChar 62
 /Widths 1350 0 R
-/BaseFont /FQSFCW+CMMI10
+/BaseFont /MAGIUQ+CMMI10
 /FontDescriptor 1164 0 R
 >> endobj
 1164 0 obj <<
 /Ascent 694
 /CapHeight 683
 /Descent -194
-/FontName /FQSFCW+CMMI10
+/FontName /MAGIUQ+CMMI10
 /ItalicAngle -14.04
 /StemV 72
 /XHeight 431
@@ -5436,7 +5418,7 @@ endobj
 /Length1 1608
 /Length2 6751
 /Length3 532
-/Length 7596      
+/Length 7597      
 /Filter /FlateDecode
 >>
 stream
@@ -5445,30 +5427,32 @@ x
 RRRD;
 fgpr;`I4p‘NP|0P-<pi4(0p@CH#7XJh5nAP!>Co04e`37-!'&&vfDc`	jO5wm4&@dB`-D10a~ײ 0

 3>
-jgh

O	4O?90h(V(|SmC	^--qvG3 ;}CD-sS?SY?'@yw]vpn^4@rapDS_fJ)r07(l737A@(8@1ŌaC" g~#ނ Su#-޿nT;>t1nO~_DH	DM?@ٺ
i!/o0j0{O@kf;P77-PL43:$$ahu
>iot9V-A$.I>(
wr\Yis$@w3ظ۲s|]%M6Y5zu*q`'/K/Ճ;ԍUXe[~pvvw}j9ݶJϛM.K"^ܤM0$5̈́Kd~zQ`AXY.֠=5ϭ|K4dC?O;\IXf=$-p6\R
G	hQ?XU>>rWC#9.P%լǤޘ?3C%M(w<:rə\a:]cRd#_Pxu
-VJyӥ:s&bWILM)9cF>(Їv;)s,7NCmRY믕omO*b(='%Z[e7'LQ`Rn}3pTFBOl(|tFV̤E1I|:wPԠhEBkMJJ8aP˧۪EiK`)녣{6F|	8eϊ.0[_M7Bq@ޱGˣZRw>2Mơ$(L֖Q.Q"NB63,OjPg\%=ǯ'(\)k,*=^uDXܐyp:@C%>HwsvDQhЎΏ
-i ˯m}&q>?\K>gpz	te9|_hXP8	"H>I,yVF2GzJ3
-m3&R5`/ScFoΞq.|X-0d,SA+HNӌ3U
-k8XOfLrٌmX?O.+%`N]m/(]H8R#ZJx}ʲ~宓wpuQ?1ZUxNFIJw-21n8d-c<,v޸$V\`-h\,,+5pƧu=eFZ^L&]=uQ4Ѵ7)E,Eٓ=(8꾸S:X~йPgqFN38?e*=yUbYjY&
-M((7ukݝ|~'ŅKcԸ"UE,cArjc7F
p!b^vň731n lЇxez4 #l7bX/$v>;YŰ+К@|#xe+njg5m^.EV[RZ
-0
${Dl5u.
lQ"1WO6i$הHV}^+۵R|W̞.lRTו^_Q1j&/peG&h
ݥNjW&t'o:ɫL8tİ4lTI/\2<*;7:Uz &mĻx`T)5-()[fUƙZHuuU4Kk!b"-8Io+K?S]m7w,x8j&j_!4|&x#o'XLr<=;)hxbeS"G}Zh#rVe%-HL荒;=ׅw{fՊsk5W"X洗-KPv{ZtIz縦Vc%W>z̏R6V'$ྚO9IKXbw9
O9-q.|J5$e"hlwN"i6CN ~QZ{8S\%LܽB{혪{^
S6w
-KV\Jrn.3`E'[\.E
J$ܲzK 4 m;2\uʘ&SlQKK;|cfѯlg/Mʪ:E"5Š_<۹Z`/y"ϳZ>'7q'AQ5beVYƯx	Hr2'~lF4R\?sDN$e[(UQ ݞWp5E'7xD"Q]AjN?}\ۻۨX $*D\JY悝KVb=UgLn4]>uzj핫^=s6YvM:G!U:-J_.NJ?wrJxvQI
-"Ч`|W#o2СacϝzS9X(sє3֣~	푙r&-mQr
-&fԋR/\|Ea)EԫY۝sUĵ*}p'8*u.gvƽ3yiwɖ4v/((Ѭg泠3Bݿ"a:E6>sOB:=.%	CʿtY(ee&35n:wSkm<"xɕ
-E?yx` j$d}V]`[?z_.Cvxk7V6uUerIqݔ9?=ό-{m4<¡q*q:/S+{}P~T$k#w+kŪW6LT~n=͎X.
͇UY0ՂUQn7]f%#n]Ye/SUt7M{ݞiz') n1*&RR_H߽'8QEg#bLzk#&6MvB?@#˄![>=woo&4)1L6햘nj}	c2[',|3ٖQSF9N!b|XH.f0
-4QDS~+y١_0EOmU%HDs9Ÿ=:(4kO8	ҫk؟o/=O+H-;!gV_PlԠqcGk[f/GwW~?H2{,6v]jK(kRfeݛBX
-ʓ_cgaJ0˛J2lbO>^>@K:[I0,)q!1?::xsICA 3&p$Y@LKT	~prMzگ%6ce~*JžuY[FvW|/aaiYuK[g[9_0}Mm-<\K1mkFᦺ1{f}j،eq($*.w[,/;tr.N콠پE[~;anu+y㩉kDQxK~椽걾L_~b̧π(%"mֺmRs,cfz1~u7zuًls`>o'zoMk4҆+Sؕ%6bF?a%+5Bht72Zy7's	+jsWEPY)<]pzlW%Mj$'SfiOdW1K}C	݇AL3	5,oFץ#A_*ъV~$FbfQD}J		¥_K"!q]KқݕAQ=C
Gͩ&:)|+)eeG쭱GGxp"
icYF}Y#WK_i(-k1"-51kJpto_b;xO1^߇dd(wr8;zYo4%?k3)KS,aB)7rWc[U8
-N?$LvZޚ2[3ZQiq2a#k̔SwLg]|=Gd9B8TN.R}߈1A8:zձFAq|I@Xs:;Bf
-AQlj8	)ayᛶ8@ܼoXNVU`7^r1vx|e@ՇI!ԪC)
V3kZDBcnҮ3ׯ݈S~\|,g_18^DH(}d)Գ[3*ڀJ|3Lmx<ʪY/
-Fȅ5*.5wZ~&s`pIBl\"]X\-B{2I+.MSҟ|{٣>׾
-,NBhM
-{ԱP$^N2	
;7),!Sjfaeq0`$ΘLfXcW~v\jDngn
-rECo4`hQ#S2I쯈g?
-TKsr&gы[9ҽX.Wދ5/_ΉWj!Y@noz"Kɍhfċ[K[#VFKis#g\Dޓ=b;шbyw TSE;r?W)zL#Wt=}r]L;tF\8
#.:$Vb"Z_?`8A:Z`~endstream
+jgh

O	4O?90h(V(|SmC	^--qvG3 ;}CD-sS?SY?'@yw]vpn^4@rapDS_fJ)r07(l737A@(8@1ŌaC" g~#ނzx2QctCEBiPVF<"~!&$7eZcP07Z,˿!H=awB(ߴϒCnP0$,萘)}5[i>˷$U4HjP}brUgْdbn˺;Qw_*4i4so\g\\C#<"(ܾl.YTNxVDS7WaQeoms~yv*=oz4!.)GtzsBW69Β6.EaexsZ<;C'/ѐYIV~Rj]	;(\.Mod?s
cx6YX%grGLwWpV/:I|C
}(X)QgfkbO+r՛̋m_%-#3
7G7b62L@̱:

82ԷIfVN"4	L?ժ*Nsa GP<Db=5yyGDv'>Jlad/<Z EYmGc$}]v,[3hoߜj0GIѺEQª=Sj
+a?"=;Y1a\'E2_rBebPy<55J+qD*ᄑC-n]y,%ԧ$=+::Br䣠sirdxarCV
] Iܕ١P5P%>E/?ghl5xާ%
+Rrd
aAf|GA;R:?+C݂.v ܯFp-mP$Еh~)cEC'  $]Z)͌j(H;KDldv`͠HSJcuTfL)>9{r`'-M07BP*dg9O9)*pĹa(_O\"U#;ҿN3vl|T)D<c=-g2e3cD>:atDt"]Hh)G)VږN9EĈjiTyf^9eF"T ᐭT]yp6[qy3q4֥9J{`zdX}A-`-4Pffq[j5{1v)GH:3s+oS,_	givN8ߑղ`S.L5&oga`~B0?r偞ӽ&ε's,rf4s'c`l)¯DޤD7LeOWtGDCN`y
+|
+8T>A*^3fhC9d\Qdס߈b`MK`5{dHd/ăBk
+౗\
״m,zi=[mIjk)<4wo1qt-4EC.,^=ڤH\S"MZ]y'oK=Z_1{xJQN_W{IٶGlrJdtÕ]};u]bDҝNT'2}mӴ߾Q%pUN`xx$KޔTě:㽞1P״PާngɏV3gj"A`[8ԑZT."ˋ&q.a_ZxcNugвHnfië~)8QV@c1q&ንMiYD#^3U\3wvU+KO=\b-v^,B}Ikѹ&IW0Zt^FG1?>H[]j?`QfiXWowbWX!Ý|mqXZ$[+ڗҰۥDN}fVςPSu־[jHχQt\~LwBMR0g3\l턹Mԭ}z&kDy-2m|1>nXmXaJY}Lzzb:׽ߔ
f/eTg0)nb6yv`SpJrNQ`WΗRڈQl|P֐V hOߜ%]Ae\tfE^6@LE>_.	SYo%NOw21'4J:pOgv"]޿@~I5Z^f򰭄;53YQdž9~n~r׬<*l7Ku;rΡ5r^fֻsڹOV,iN6r$tsX*;]]݁㦇c}ڪve4sr0@ԢDes4/L)aI/F,(xs9,*O71
+GoJEQEANo_ux3H3I%\4r~٫4H~.ΡP]4G9lTO{RޫU7ҔȰ"ߢ|ؼS;Qܨ]bg^dcҍ`&4>/MFĊ|T3[*g7f_iu`~|²VUZ_ wy;:D+[YEa(b$&P[wc~
+V.Lu-bHovWWp.Z㫞'q&<Șhx3y{ȭx>ty5
 (ήm#UxG6Iwx?쬚;q$z>wcyŎr+gd`mvߣR+kHsm}A{}ɩ\&sY	t@bWdIjSTq욾}})ƁldzKbJ(߲)m
+ж>BŐ#5Z%o]E`Vvҗ$ovej
6e4jk-0́n_͎2;b?5F57ʻ輧uUE0~N6?dFdeG\-]?^j~Ӗsb0࿃&owRԶBcĈD^8K)ҽ}=;,'ǔ{}!EIgdTfx=-ͫW&P^Y4XzhjG
+I/.^v#NqJKY}{!4RN_Bo	TΨ~{Y_MNA"yZŻƈ!}vwRC%fB@GQc(Za}61޻[Ud5{
+v
+ͶD=-zݸY,S-Ӻ@6WptLZJ:]eb\*(R;13W4
+*RBwx:&ˬ3$K6/RZHN)-JZ
+ *ƍ98c2a]]Uram9&*F/b3fr*ݾ90%azcDzN$粿"G'[DLUf(p^R
+/QəE/nJ6cL\y/Ԙ0|:'_dAeUO鹊,&7/~.Co-GnCJRX)-yύ,9pyO:fMPF#ߡPMYȁRB\o3\)pue2A0.>sE>rN7hkvCd؛RZXj[#OPkhzNddendstream
 endobj
 982 0 obj <<
 /Type /Font
@@ -5477,14 +5461,14 @@ endobj
 /FirstChar 36
 /LastChar 121
 /Widths 1351 0 R
-/BaseFont /TSWFRI+NimbusSanL-Bold
+/BaseFont /DOHFNV+NimbusSanL-Bold
 /FontDescriptor 980 0 R
 >> endobj
 980 0 obj <<
 /Ascent 722
 /CapHeight 722
 /Descent -217
-/FontName /TSWFRI+NimbusSanL-Bold
+/FontName /DOHFNV+NimbusSanL-Bold
 /ItalicAngle 0
 /StemV 141
 /XHeight 532
@@ -5508,7 +5492,7 @@ x
 B!	Aܝ`	A$MW8{Ϲ\{ͽΨ(v<J`H=.pa('3(Q;@B@))sv((	rO)ڸ;C]Pzp
 х"]6P~e٣\Fܼ|F$%%dP$q?:dP@ق 0ԟr\(\JPncH[(J~J.gx> endobj
 800 0 obj <<
 /Ascent 712
 /CapHeight 712
 /Descent -213
-/FontName /XOQSPH+NimbusSanL-Regu
+/FontName /PNUUAQ+NimbusSanL-Regu
 /ItalicAngle 0
 /StemV 85
 /XHeight 523
@@ -5576,33 +5560,30 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-xWgP붦HޅAW$$^)*Ez
-"]tH"3__wnfYYYߚ	aQG1"²]Z(`P RAA(
-@df0@Dddd*
-114/ן
uckG#q0@EO	@0!!{
-!`ЂX.%4@#! (
	 AwHFcP4c= P8;!$
-pbX2}HU_U<1@̯h( 챖`WI1,
p4eh$腍%CpCCep8Q``u:T=yFGP$apb_âGD!!
kfxI8"0ؐ;;s"$KVwt.c[xg]0wC3";bۡwJ" "*(5#v	ApV
:	
3v/;VߙiR;c/$at~(+#<>"Q)i0@ZJ_DM#YAA=‚"߿NF!fc_0
ªC 'H.)=3SENղ]7YXk2?(Sj{Q*X7,{kbv:O[*d'6oG>AfOܯqG>gV0)TP$JR!{.6+n{D9Z
-HMZ&TԻگ|ùHU	w^~wTS~l|ms^T
2^2';,i8c;;t)t%2Iv9ޜ|qANzLbʦ9i,v*:ԜfՁ@8sffO9ݢԟ#AW%J'WN_*Tˮ̛?ΞU7V)rHg3_ߪ<nv*g4HI*rV!4|8Y],# [uZe{08Uݏ%#,Z߭8dII5h{&Hꄋe4N|l19!S)C{fk`y-DFZ!ʆq[Q'66Z*t,"N)ts"R:g䡴G*h t*$3n$ʘu&0Js_h1z+:~誧%=KmKub͊1S4Rm\m{geɼ77K3'y-1؇u.{֫z$QN<dhkT~ew&E>IݬRtǡr}/ҵ@1ϹQˇLbRAnȚ55M =IYyg|/F8JmMwT=SXأՋC2X.䷆܌BBlʛzO<_z]i~:/9|U1a!b.>$<xwYuBgj.T}V
-s'e
-jT+7"O	mlA2*Z 4,^>fi
i6\@e[VY
-~sΩ䘤;Kfb>x|509
-y%\֯5e՛E%X؞tᐧYQuV24ehJia6[G;0}H3d6r93:`H h~%`ӵa8"NKwEw|2{Jڜ9ښ|J9mjcpM!׷hr'ntk>a;:|K*M/x[#<g{ʓ:* %)Z) TlƣVJdkBEQ#}YOkG#]ybz2)8N&$euXV"x.Wf_h{M[LNӫ%0Jj7Ӽ^KJs|Zi1U|	Tѧ'
ybXXEs4QaL8何/+@\bZRQ,+KP`E,]״8Бl {9;KJEkV$5sȹeYZ/[ގQ7Nj!iD[|oy`前x}.MZsVgc>v&ΏIw	u!eI\)tSs<u_"|nqVn4X77%M|ќ% l^0ELIGxWv)]T\}(i2[|,wE5zƄA@ٹ/$>yVuumœs2ry7
˳$tFmBp钄a?"\d?)K㈵9)nC]KpP݅qNIOuWC2tX!+5Iv|e7C}hW"]xN2R̮%dmղU}O.Q	ws 3	s}f_,[<7W(yFٽJ)ţ%|TA"c
cZR<^N畋x{gcG$(S~GB
w8ae%m3-b?Q㩗2WxosL],[Mbh@F&1=gr49|1+-`|qfH+6HM5!w|zz_L}'DLeAl2E4[>}+[K7>(`cWߔz d^ByyȔ?UG'D0|Q~^qVAA	
c3&".R[qicѭ?}x	=].LWV fn!;&_~JSWDER|;&z7Z^}S>AYW9/
-
-.h+GUMd$Y@Hx|yGV3O}>;l^Tu?U!CިoM]_D	\-qXj4ʪ[Jzxd}'u mQh.G$ZI
-ٮ+}`KTQhQDn@Uvj
@T|z_j.jY$]~}vVx_Ux5T{歚3(do3tAٞrw̶t/u-Ό׾>#]v%Qvu'
-<V4a$4.x8
BSPxJQ73
)O{F^j[PߜudcŵuF	?6E6k}͏Sf)hhZίFIŁ#a,k1t*qʒBp%v2fN=hS W	Gd.cZ*HBC	N\cq
-&e}S
-Y/;8Mr,Nys<d{$ƈ
7g0\
j+Tp&{[\9"`rv_7툗xab].xEz\]S$oZzq
-_mgUc\Nɷ%bsG]!e1JE"ˡȍBknT|f<\ʋ.x#ϛqsƆI)_T;ʯrؼ|9R&rYG
-.lo&64ǟYd>ʐ82r37tOS^K{=;#r耦Ӓ7^4Q
)LXr7*vM3z/6_|O\yYև$
-AlJ&$)=W…U}IJ^U'=&7B?ޣ,|
~(q٠%_x0%B/KODߑ@w"I丝/-ĀꨝMgU0;4=vqXp;{s~ǹ[}r[5s.ѓĐ.S-OM)*o.)GcC.pp]|<{Orteqe
q0yf,~J)<+8tsb6Xֈie f&h[
-+ |H5OvqÒHG`!o?1[E; Ѣ^qj8e_PDF>MXeqJ@K]~-w^$C}jkz	tc??Q54[f+N؋XZ\%5/R=KWW>iͳ6њ:1
QVj7'ثNPfV-mǼteLԵXK['Zw=ɿn@FԧyY\0R(pY:JPƐRv7*׍=@t瘚?:Kj	맛w(~JV>8J,bx.WN)ɵN%0BEɺz0Ɛg5(}b^:-Q"λ~-B.A1eײQq-c@/lf>9nr&BU>KNG?W"DQVϩuibZnϒ_.Ay{L
K*.)Rv]3tm^sr%>A*Rp}]-_^%G7#˱6T5
s9//'GDI{hQY
-(ۼ6gbNeVw.e6*6ZѴ'rp~6}XGJ	}5eZ9 3&58	VGh}ujGzz-1JR(j,'T8Bfsse Hdo/D0|SRW<7n6FH\ی/ړj'kZ>_kL/nZH]iڠs@3vug0q̡\b]7~1#WʺL;_%t.
-rS	mDrώpÜ@xk![`
6=z=9-]=uX$vI0F|~A\%xEK(}YRnb}*DNNJpcK@626QG#KvR}b:ک"dFॣv*Z
-|Kbu{nu…0>S֫-{rQ_3.MWbkBv:e4T,,a"ڞyGd	#i&JlOrG?ގq6\5 M*Ϲᧅ⛷VbdX4-l䐚NDx
W|
-4v_yFR@64'mwwX^ʩM<##r@*׈gkdU͘xOYO
F@V2޺7t(:?ŷj}<'"0KyqWd{baS3ec%sZ$(3[䚽!  \(gB:endstream
+xWgP붦tw! E@z/4^B {ޑ{Q  ҥIW4)>uuf&}Ups
+*8FPTHDuuEk#U0-
+$ܪ(EՀA@11,	7@DA0|wezp
C !ph0=1h@sŖ< p4`@` UZ˥h$źA<@/	A9Ch3أp
+\!~'D!XK@c `#O+6;%rUoKE1@(
@<0bB`(	zbccɐ(4\P_ @A4X_N?UD"aHDŰ1All{(DװhQ??17wn>l@0!v$:6$Ne#GFߩ`:@gd-<3_?|P)LPc%v1ApV
:
3r/;Vߙ=~l/voK=`<1FqţxJŤe2"iQ7_gm X~:=:CƎ?.~ W
+7[x@@$ӟ `ǴtLCN;5vQda|
+D_ZlEePݰ[ω-/Wam)0DEj<9M4M}VB?j
VHCHi9{_kh?>
eϩ:ý|~)P+"r>r;,}ⴎ
(8WӥؕJ,pcaeJ>U3NU,=&*?u
+R~]%動`+^M8~d`VC/l<˨oSZ>#nc``Yeq*.TOo-6/R$^!8ro8&yԺmc@چu:;PX5j!%#QZ߭gIK55fQ>fc43	BۥcJ)T|!܉Ju=37H
+<}I-ې^ze츍ר"SskkO2ÍM-d]9QN5Lm/0Ufr5;.*iݽ	LR655ܒߠ;YIORSbƯijL.Զ@۞~'1qvCYo+M-ЎI}g`Ofpăji9I̲{6_^IVH[u3ET=ݱfH#wϓlncn⑇lf`+fkQiS>Ps{RNAy˻o[Δh!et6a7"7P&&ƞSϗ_Wlݴ
+I
_ծ"i<_Hǣ˭NvVxnmhm/U쟕wo媚"T"K)ICZ5[Lʄ1VD}
+^ˇ,M!7<&Ruby9+oИ9U3z82Lߚ7FoTXX|a5flsHkxsvCT+WtN*UWf&,;[]M-fu
+ƣ)wCpLX/'zFCf"Sb)_qZkwm6HE#|6̑2nR.@fDJ^xj\E$7<	ݚOُ-2tH^m>zkjoR}]G| #Xe%臈ϸjYJl
*8h-jh	6OLO&&&ߥ.c]$T:s0yi	dzv5$+]k_xRj5çJј/!j#zdo`YB(wƪLIz~aMHMT.
+Sqqzrnh^x뒚:
:[8~sAjeN9,+TK%Tur}7pp1$/~px듏ѫVZK4:0W5hu2ownx{_QR10ԅRG"%}P%_F㩪UpY|9¦3d9TZ̏{k+֟78%5BfuS}#g6\Q_OЏx@R@*;yjNf\T-
+,Y:'`ǍxQΰ s?Y|xFֳr%Z8Ai7	Up]6a5]@ݧx%(]D.rJz#<6UϗoY}H/s"cX[}@QӋt[8IO6]aW^=G3*+RJI|8mjX$I'gъcmH@blEGly+EfjoPd{720CUf˦RtSγ'6`RINq̽6ƏgQnpfXaKdaW[~3Oz}|iL#"z존9,ѹ+xd`H+Խ6HMA56L}zz_L}'@LeAl2G֐4[9f㾕+㥙}^ۻ?$hm[הr(lVBqyD EGqV0|Q^^QVAA	5ө3fVbn2	Yicᙃ-_}x1<]]nLgVFn!&O~-JSWHIZ|;&v'JA}S>AYW9/.QcEgFn*BV,YUiLongsԼAu#˙gaޟ7^/9jjVI}o7&6?=M}a(%a0vu%
+4r?Ke7bC%Qx\pX);"Ow#;9O#oRb@?=yϜƬ#-WrHر	Y+_~
opGC
+nTh~5KBL	c%[ˍT/K+հ3>xZ!r!%"s`7x`^Daq{7RA!8q)4mIIp,tcJ\_4	h˭3?U)->ܠBQs:(P۲,!(S
QԃToG|$%&?q73!4*&%|ҋSpvb؄hl;&]7*-OQbS)GG_El<^sUO1#R^yv 3Lid^pKՄaDva.6tVpas# $L;.,<`.d_V䑾t#~ZffR@4,矌eyHE *5d`ٴˠba'm=H0ĺ$k"kҗҺsE-\oUїTʟ}ˬqhǻT]%2TJ_;mA76pSȝe^ے{P$ix"yln#ʓvinp,#!pjbEjO%{#׿|UN!ƀ.{ꈰf[,rk.^&MD'ilkZͪҏ*&eeS<^=sMt]U;aL'r<j}P\ġݹSFC58UZ:P>Tymçț>0}9;#}kTr2‰-UK;iS_:N}A2/"޵Z=Kd?"WL`:%.-s|Fܯ%SvVz:RIQ~lIֈCfnDtқ$3i/MAp r:9ґkaO"	V3e\mzqHrw_ʄ:\
+&U˰hɞw2R-聕SNX_'W;R׸IXud"})OnVQnj*J(EhkV;6NX5+̶G0!^sD2ЩR֩_ޝ1I8E{8LYኳSvb?VV+W:l(A͋OkvD"7x&ZSf48A^S*ڇ8e,uV7TUK[ka{fѯ=kݱt~	W_g[5i^l`##v?8=q	+ 5a#Ս
+hqPh2"e=HΚZƝ#%&RO€;hǹc)g,>}1bCnDCJuѩ#HR n-c-*|nF)\J?zN&'!j,7N h2tUQq-#@/6lz>)NrƭT?KM
+D=oE.9 6.ğS3U,{^nIb(5KqGQ13;+ [J߹{Mo-t}53	Prc
+	5uVҔ]pH2VKB>J["gx%{oh罶W #ӠO*sm|W1Ri!9wjrd2'3`	m 0d)8;.zu陀w>ꡟKi+A&b3*?;s୅
(ZL6(V!?h"xNȥ6Sb,K/|@w#6%&p
+?V,Yr&εZ_>~B]w3DkN!/
'SqB L+\OD	@W,'VKNq[=EU~546Y͋9|-㘙GiTp
YnI=Oy$IQ{2#\Zf*lr_Fqv\u` mϹg7WY}	=5):-
+|6Q$2۽Cmz)e&lx
Wv_zD:QD67'n+v3J:,?R&CQΑ|=_zS0{D5Vfjۄڃg# KY/mZ>X}}O橲8#]=x1(홟3LU3dјNR^+E=J.!f'o~H0g ʉendstream
 endobj
 715 0 obj <<
 /Type /Font
@@ -5611,14 +5592,14 @@ endobj
 /FirstChar 46
 /LastChar 122
 /Widths 1353 0 R
-/BaseFont /KQTSTM+NimbusMonL-BoldObli
+/BaseFont /NXYYRQ+NimbusMonL-BoldObli
 /FontDescriptor 713 0 R
 >> endobj
 713 0 obj <<
 /Ascent 624
 /CapHeight 552
 /Descent -126
-/FontName /KQTSTM+NimbusMonL-BoldObli
+/FontName /NXYYRQ+NimbusMonL-BoldObli
 /ItalicAngle -12
 /StemV 103
 /XHeight 439
@@ -5639,7 +5620,7 @@ endobj
 >>
 stream
 xweP-{3'?kV(/9-\_r[PVvn`@?D{f^0tt{,V(o]_Rg*DH?"Nܿk^wj70XeZ2-P3`3g]A`wG_ᷮf/"`";+_fh
-rX_]9_s/All4m@vE:XFUOEKVm?/	+?y$$=,<N^//dC3`x_'H;X8Z
W3˗a7l=@Y^pMHs%2f4hT;vmW>Ԅ6NS܀aSS7.~@ htF:fr`Y⵿j®-8A@|.1Sv,2;:mdS6Vw8LyLO|ձmR0x`\y9_{O/lqR>R,[5^_irIlqOߙ&ʔDa}SUW~e5zx.woۉ4{#UpO@6i0:ۦG0h3\iNw{,uZ!lppIdp'$߿)O28*!|EgY.YyFmڙ@.At˺X[Y"˦e +ٚUw3&4||
8Q-BkO߷uyr2I6P\1Z|la?(ad!~,F.4sOKsH
]h\]TE~2E2$Ot:
ۈC QĖO$"$:,a8}s*vКbL]9v¦=
+rX_]9_s/All4m@vE:XF_FKAUm?/	+?y$$=,<N^//dC3`x_'H;X8Z
W3˗a7l=@Y^pMHs%2f4hT;vmW>Ԅ6NS܀aSS7.~@ htF:fr`Y⵿j®-8A@|.1Sv,2;:mdS6Vw8LyLO|ձmR0x`\y9_{O/lqR>R,[5^_irIlqOߙ&ʔDa}SUW~e5zx.woۉ4{#UpO@6i0:ۦG0h3\iNw{,uZ!lppIdp'$߿)O28*!|EgY.YyFmڙ@.At˺X[Y"˦e +ٚUw3&4||
8Q-BkO߷uyr2I6P\1Z|la?(ad!~,F.4sOKsH
]h\]TE~2E2$Ot:
ۈC QĖO$"$:,a8}s*vКbL]9v¦=
 ٝA`ay\@Y~K㛖%!
 B(ֆػ
,b*w3m$
 @}){wxˋD#^2jp[qR}Lӥ%'!*=wv*,TˆX8%	De)eZ=58@H,թcS-ό^z2gt_^)q;AQ3pv8%n.$'MWD A~XiZ`+p솭Ydu:}'F4ɯ2k~erBA|t#]v=~gWFAp)jK}*34W`/兓Dz/|8/m'*~V|sfbr]هI:SgԤ-D8fvR@ab&%dY7Gˣ ~%Hj7ޛ׵i%SbrfZotóZ	F`\hV4B>nN:I-xYP1׹GЧ8/ҕwWq!Pi(eylY1j!EoL]L$jaU\\
V@d@B OUY!Tm	I`%sxI1́VǑxzjyLBg)T0i !IvF*}TL	nipk
37s}R6
i$4`We'+:c8vd }zZ49Qpw^: [ݙ=,
=iX%_t!y|ؘھx @41}a-|3diVn@!'û]_1&yB:7U]Ym"jqLTsUǪEkKo;`5UaqF^`9*Ȍ	;.}1ǃtM;
qI2C~eY%{*bruRsX(.H":Κ%(Z%wڇ|[~X*QY?~Шw_pO}jNױRVv3xSq׾˂b_<1E}PV-FP6QimcÂ;1X_6Mq9c&pxyYe!jZvs@#0涨lToS D\jR͊n;y:Waž^ &3}:%E򱹩OݠC腭JQ}yd&.Gp]I46~m ],D']FtL͚E
}"6{jr2'Cڶ$']A23tSp|VW#Vt=,MS/9?-7It3sHK='CtzC0hTp!Gx32{xHNSWU/QuO}*ڥ&v]ɚU^M%f+SϪs]̙
4"	?'%9}q]]k8xEkeEJ4Bۜ!¿E,~TS`$螺)Xw}gmZπwe6@MS7nDAُgu{\zoiC&RVdAW"MX]2P.YY.oiUkZl!9(1dawɾ Q19Dv2@&*AOXfήfv(xbmendstream
+U%۸T?xhKd:ңw-D6	>QuO}*ڥ&v]ɚU^M%f+SϪs]̙
4"	?'%9}q]]k8xEkeEJ4Bۜ!¿E,~TS`$螺)Xw}gmZπwe6@MS7nDAُgu{\zoiC&RVdAW"MX]2P.YY.oiUkZl!9(1dawɾ Q19Dv2@&*AOXfήfv(bYendstream
 endobj
 707 0 obj <<
 /Type /Font
@@ -5669,14 +5650,14 @@ endobj
 /FirstChar 40
 /LastChar 122
 /Widths 1354 0 R
-/BaseFont /PYOUGV+NimbusMonL-ReguObli
+/BaseFont /ZFUKPF+NimbusMonL-ReguObli
 /FontDescriptor 705 0 R
 >> endobj
 705 0 obj <<
 /Ascent 625
 /CapHeight 557
 /Descent -147
-/FontName /PYOUGV+NimbusMonL-ReguObli
+/FontName /ZFUKPF+NimbusMonL-ReguObli
 /ItalicAngle -12
 /StemV 43
 /XHeight 426
@@ -5698,7 +5679,7 @@ endobj
 stream
 xUT]%kቻ;NZ;;Ztyω#N8YXQ^L΅hdccd
 W55Ñ8D\xfQ3 btP堦O?.cGF:-~;ؚٹT13X́6fE-)y	@jl4MͨN[LLl͙/3`ffnbDp0s:;}NFv.{bڙظS_
-rpaKhltpͪ(*ouX؛47qgKE]v3wrL6Fs%spWgV@p20r21svK>l<m/lfc7@;8FEovSW~9AT"Ll<fp.STfA[j_]mll; 璱߼l6'aoEi\Bl\LŁf@K^ˮfgjd3	gfb/%dfg_+ӿgPRUzeo'E?iٛ>aa{w=3dapr?rF.N@w_37gvT\LM\}73s73[eolR72%3>PڨZT_c]i^4|q(Ms4ևeCٛjvUCJ_EI{Ȩ_qu$~7_E0sDO$!	9E#p
d!mn,9D(\<m
+rpaKhltpͪ(*ouX؛47qgKE]v3wrL6Fs%spWgV@p20r21svK>l<m/lfc7@;8FEovSW~9AT"Ll<fp.STfA[j_]mll; 璱߼l6'aoEi\Bl\LŁf@K^ˮfgjd3	gfb/%dfg_+ӿgQWUzeo'E?iٛ>aa{w=3dapr?rF.N@w_37gvT\LM\}73s73[eolR72%3>PڨZT_c]i^4|q(Ms4ևeCٛjvUCJ_EI{Ȩ_qu$~7_E0sDO$!	9E#p
d!mn,9D(\<m
 V^Nc_iܐ槕Qъ+PYZ#6SS7C0DX>OƶalJҊuwh7n-	}[w gנۭIZR
 Yu#1t,CMMWMӖ$I]}}(+X{H=s]Ԑ<b57UCt# @
KCF50#OXgFC'",6#VE4 T	X}׹F;yhȱx!:<?-py>sdaEG2iħ_,:I
 .^!Oz(~@ʨJ	()Iɒ![7O0	(/#?tsswgWW;
@@ -5770,7 +5751,7 @@ Pпܠ
 jDG@=0V23q8@RSxQk>֘Iۻn@+7	#xA&#A
kI!]iA!5JNwO	vґ**,פQ*=^P툘fU{R	ap"[k=_6g]sV/h_4J#gBą:y~髩W-uu^N[pa*'+ZXක}J~NZ_?}ixAZ6uaDAEkd'2؇
 V2u="
}RpG0|v#ij3T(3Z]6$H.2r".Q}[(~a|g7Li	GzBy,%.cG3*ٺr.SZi"8׊[oitB!NMa3_#֑3?z25Q%TbS\	`D"һK$ WP-$"ta5.i"2a Eg|O-,'Ƥp|̔7r!v0By\qXkʀX;my(~a{|ob֭x=` 罦(h
85]CUu4]}+7 ډ-O}KHEr
b۟wO0touZRtq.8Mƽ78m
[lC)پX<7rLIQRоR>OzMЃ: PkwSRnB<9Ų|<{_+>zZLS6vI
 ?0
-ttq?p?'Lľ\m>endstream
+ttq?p?'Lľ\m6endstream
 endobj
 638 0 obj <<
 /Type /Font
@@ -5779,14 +5760,14 @@ endobj
 /FirstChar 40
 /LastChar 90
 /Widths 1355 0 R
-/BaseFont /IKWPAS+URWPalladioL-Roma-Slant_167
+/BaseFont /DCPNPJ+URWPalladioL-Roma-Slant_167
 /FontDescriptor 636 0 R
 >> endobj
 636 0 obj <<
 /Ascent 715
 /CapHeight 680
 /Descent -282
-/FontName /IKWPAS+URWPalladioL-Roma-Slant_167
+/FontName /DCPNPJ+URWPalladioL-Roma-Slant_167
 /ItalicAngle -9
 /StemV 84
 /XHeight 469
@@ -5811,7 +5792,7 @@ x
 k䀣u9lŌ
)@h`eQD=Aj5e
::0ߝN s[W
/F lQZ
 jI5$hd
bl
2ȁLN@#)Ҝb	;N@m@w?.z=r;:큳dkbbv3wa컝#7w1t0r'`g7埒lu8ݝe쭍<f
'28͍MNNabӝTodoov@N@k3F8ֿ9M613(ҶfvM]
 tW$Ll=@38&;)g*3 -߉_5_y.
-F6
csbl@76ۚFhlb03ۣlM [_-F3ZLli:ǿ]@[<$$#)B_oE}_by;CD``prX|7ky#gG;@o,*/0&vL&.Y[5@;ne΄/2=+ù;ohBLb(ľjq]_z6O[]c$/?2#=XTݩ2B
v.@&2ČShy-HmNf	%e7(v6GG2B{$_8&0?IǏTC_{r`)\!)rժ"h3&Nͻ8Y6|.o	U픆H\ά={fzw(;Inj1$.]dc!-HFǀ;=|.ہEe	PxNV?WƐx5VBu%GNe/GƬv^8	%11KPqA?Q!6$qs/A{Oзx~XvYaWtM=#&@Ы2
+~YqWRc67H70_F?ڊ?B65
+F6
csbl@76ۚFhlb03ۣlM [_-F3ZLli:ǿ]@[<$.*I_oE}_by;CD``prX|7ky#gG;@o,*/0&vL&.Y[5@;ne΄/2=+ù;ohBLb(ľjq]_z6O[]c$/?2#=XTݩ2B
v.@&2ČShy-HmNf	%e7(v6GG2B{$_8&0?IǏTC_{r`)\!)rժ"h3&Nͻ8Y6|.o	U픆H\ά={fzw(;Inj1$.]dc!-HFǀ;=|.ہEe	PxNV?WƐx5VBu%GNe/GƬv^8	%11KPqA?Q!6$qs/A{Oзx~XvYaWtM=#&@Ы2
+~YqWRc67H70_F?ڊ?B65
 ݡ$6; SF9Lq#7AOyk0\)ڊP_+WX4qW%3A	pǂyNјhFHQv;0p]t~xd,x6m$baaQZCE{͸V>$zytgC ~^Z΢'4v̢Q(E$9>RvJr!VQ-
]k#L)N[
 Y'L
 Ml%:Tid!|=})HzQ)k{UT•h-yX3IIB#
@@ -5856,7 +5837,7 @@ S
 --T?שּׁ~Ig.s#IR1d0sl)w܏C5ZDA|aK]Q)эۥf-6wnԑZeKQ!ql;`j"Fd(%Х:K֐j?0GL/smt7@F.v\`_@+߭'9/Q;*~\݂"@w>9sKepuqz-/yCOVunLȘm]aFPՅ7wź%=mUŧԆYne[BcڣABNRֵ`0֬x\e &ix>*>:_/P-B57#CkymKO=[-9o${QUߛQiy	 `P{EԦ+o}CC=qub@T``ݼ8ԕzӓnOJO5)!?ax}q,cHbǭ7?[~Qfd;i	|PjPJn9w|+ԘKdK^s|S@?݊e֍C70c55ir:XJ&d8݉:ͨ]W"&3K/ͽ15#bf7$#ב_ffś-={q/ sTD_PHVŨ{ 
4Ӡ}Kbٓ'+Ӭ;=AZq<_6VsL{?$\Y
1XHB8D)ńAb 7ȂF8h[ws|H{6kgKEU?omHl8bƩD8p]z#y\J@yŃeYIi1=N0Vn#Φ{qpXdutD뚽&4N8&\ufO_b8b0pkwȍJ$k'o	gȽN|:Հ2,X@@<; aQ*m'
 h;f&tYPX(ї*R͋MI.riAۏeBapX,&LFqOi/z-JَX!|{/l2L$yrtA3MT˹#_C%3(BNfMݱd[0ien,2>Q~ElчdK
 	X	SMkh_v.ZXY~dZqz3=p*Sᣍ.rY8xzm:fkl3Vyݪ"|pAq+K5X3SK8Xgy6VOn|@a\1-$jY6IQ.!"	#k@n.MV5ҞpɾT	L$*jsKkU3P"ǂ\e,ѶUeATI#DRfD4;"_u+E8崕.aMeəmbB_S,5L(lO,V"eŗ~,gq8Z}/'laSqt^HNwtaESlf~,Ni`ύgC@2|>6.W>ؓM+
$g;GޗE׮ڧqkERc{ZZd;_Pt/QOIg%E:)7zztZ
-9Nө޶Gn,:5=x=ZQGc]q_'(DZJI'_:HjDl,q`G\@ܪXQ> endobj
 629 0 obj <<
 /Ascent 624
 /CapHeight 552
 /Descent -126
-/FontName /IQJBXB+NimbusMonL-Bold
+/FontName /EGSTMX+NimbusMonL-Bold
 /ItalicAngle 0
 /StemV 101
 /XHeight 439
@@ -5894,7 +5875,7 @@ endobj
 stream
 xڬcf%Y'UiVڶm?i۶]iҶmۨU_sckƌ؛XAN(fgLD1rqSYɅv"@.: 403899vfJU%u*0;,lm!7*gs WДP˩ā@GCk1@h9ٚXS_,A'!hlwh`tprp9:큳v"dh7/3oVt67t'_7o?%	tw'`bdom7_0{Gpq5/G5/__u
=_QڔoNc翹,lI[S;&.
 tW($Ml=&@S89;)w* -?5b.r6
csX:
m,=3Po8Ά!hkWFz-,܁&
-SC뿝]hma迚	cbd?ghk/*"4y+J*RdL!!;wH7!!ۿ`k-kh[2#ӿ
+SC뿝]hma迚	cbd?ghk/ʒBBB4y+J*RdL!!;wH7!!ۿ`k-kh[2#ӿ
 tFYQv65;^:
:4[[3LLwe/mP)*K0x	olX:8=ڋeMѓ
 !+@N;A1\=zQfBQޤ^;tG?TdOH?0;QAjο'y깅;ģɉ%v@ǯZAބw~IGNKi#`n.ϓ$(zXu3?#49B.ӄ?7kE4	]O8vCUkSMڇ02YZuHH7R$jD"$m|/K|ZT7蝳91u@vyVhx+20%3t%7!AZ|{ڏGP
_X"'y
o)8[̗3	!,	h!k> endobj
 626 0 obj <<
 /Ascent 625
 /CapHeight 557
 /Descent -147
-/FontName /YTDMMS+NimbusMonL-Regu
+/FontName /SIBBBC+NimbusMonL-Regu
 /ItalicAngle 0
 /StemV 41
 /XHeight 426
@@ -6004,7 +5985,7 @@ endobj
 stream
 xڬzSx]eTlcv%ضضmۨmbb6ӧ}}.~5ǜcbxɉM쌀bvL\U%uCkkC;zIgCk_3,9#VPD3''',9@@?-<daf
 :T@5 ,))'SmPp10XmS;Gc;[Zsb%08-ݍ@t{g.&njz)99;;Z;fUwvLzҿ4QgC['3\F@-UV@p:Xg:'_v_5X8;M`Y4v"ikj`f?0WDϞ[h
-(g7%Me>$oE?qF!=ZZ 1?nhcaW4s6tm*Bo;D`jhwVښ-l58LLS10gl&2xF
uY^_U<쁀D]-asx3s0Y;%㿈s-khfb`bbt?;F&_`cGǿm?@;veΘ;2=+ù+ohBD|(WJq]_z6g{MCgǟS})^LkʞTe)u_!EA /3h--v&	E%PS0WOdiqȍ EgIOG{n hs㾑sB PD;kV68mNv䴓[{[^j
'E3%K$c^55`wz]{Fx9].n1[EmQBϕ[ض3MvV\*2mjVpz/]6r
wRI%Popc75'hW7JUϳ`K$s<7:^X}?G;Dc|yGCK?e!AʐcVnPW6HQ9+hh8Sf0gh7F(͡7ؽaZ/yI1ʮkZRNNNnT7%'7i"
+(g7%Me>$oE?qF!=ZZ 1?nhcaW4s6tm*Bo;D`jhwVښ-l58LLS10gl&2xF-a5AQ^_U<쁀D]-asx3s0Y;%㿈s-khfb`bbt?;F&_`cGǿm?@;veΘ;2=+ù+ohBD|(WJq]_z6g{MCgǟS})^LkʞTe)u_!EA /3h--v&	E%PS0WOdiqȍ EgIOG{n hs㾑sB PD;kV68mNv䴓[{[^j
'E3%K$c^55`wz]{Fx9].n1[EmQBϕ[ض3MvV\*2mjVpz/]6r
wRI%Popc75'hW7JUϳ`K$s<7:^X}?G;Dc|yGCK?e!AʐcVnPW6HQ9+hh8Sf0gh7F(͡7ؽaZ/yI1ʮkZRNNNnT7%'7i"
 HkxΙsTܺF$_2҆j%vkʜ%d` ;Sd/]SKa
#&[K^+UTdakfUXu5JCL8KR<öwm.L˂&wLCa!~6]ekZ77?,0a%
 
 \P3ة%Qsy1*3W;7 KymZh\H|_D!)?or$q0>Ob{m㔿/H,ۻMEr2g(wӤ,DJ.pW?W؃'HMcՋ~[5
ji "bN`əeԓ먄lyw~J!A=Ð8 N1&8#v:Q0
RۤT(t„$bwF߮
7)ZX;dQCsNڑ!jC#X_
 mK1:՘z_#*s,bo&]Ҭ{xZ\.q5]_~wX~U"bg%̗bٶ¾V3a$!L;ENL[(z
:\odnjPn{:}*PDvw*[@9pR͋E(oh~hk充Dۖ[o֙ziUɉ-k^M,fxGS6>+5Xەfm׮v*p	,W{+"Vŗi6,YSlHٶ;:Jbc2'
dnJz]^kSvƤ>fQ̒飺N%AiOo/vٟHMpd.8yиZJGj]WH:YMqmuO#/3KiEp3䇁O@05!ь
8;*UbSq2,#h=Mx'ROB!<q	873B$:zOE:P%kĴ{@
-i> endobj
 620 0 obj <<
 /Ascent 722
 /CapHeight 693
 /Descent -261
-/FontName /XDWPTM+URWPalladioL-Ital
+/FontName /ZCVAEP+URWPalladioL-Ital
 /ItalicAngle -9.5
 /StemV 78
 /XHeight 482
@@ -6119,19 +6100,18 @@ endobj
 /Length1 862
 /Length2 1251
 /Length3 532
-/Length 1861      
+/Length 1860      
 /Filter /FlateDecode
 >>
 stream
 xUkTgnJ+ŀ
-2@	,KɄLP.(`PrRZ/b 7	Vzҟ̟yL>'6 B1$4 H@"gf@b $	@*@Q4pF"Q^0WX8(0cABsaփŃőDWoX0Ac 8'đ1[ْT0SfFH
sp$Ɯ7Ll"= bC?I0
-#la6O"X2rae'rIa6'fqK8,dŷduuz3%	}a0@~^w5ʓd"bB}bτ,-(NVQh	ٰcQ%MAPXAk,>Zx]&)D`
-`>3l^;!ePqG#h b?5߄,	B[sx`X
-p!)$:"sRݫWcPzKGW
-Y'u_N^VTOm"#dk^Y2N|45|m{6lйƹn퍖',M7x>rqڸ;Y1xK4
>p"
-+*Q}z&Tg>ҙXoi癩e|婅k2_-O$em4v3j{h}CQ0yzőZGS^47>/Bjr<
-~~|FS˵@]w{3_jythQ%Wfec$MG|W@
.ry2-JhguIrrr<䗣șKbVr|qO%Q8ʨ!SvsN/VEkt)m]en52tUKoiAv)$Kלِwl7\mÚfz
ڎOeӜ3L~:jm}-#:}cLڥ)Sww|89F\kuRy,#;(qVp!
'`W7H_endstream
+2@	&X4;*(RLP
+A@0PTZ)`bY#BAn\uإ?wٙ?>3Yyl$vEDHiAD2!	$0
A.  ;(dg a(˓V.-F,HC,z $ga08||) ̖"`T0E6"Dl#y ^0ajysW@	/'o0L*Qaèh^2Rr)|]#mK_ʗl/8@/Ⰸ
+ߢ}>n6oHzA|d_d߫k}e@H&{}.aE\B "q	**
|sL"	9p0V (K&Y`*@
+2)B,Xs۾p}``+T,ļE1,@q؏=@=oBEadlb9|ld0,Y.[T;?|DyZn㳏Ryq%%#E'P,St/^M-,ό6}	Um,GQGgݲgjKl9q|@zkz.hcDMlݘ^xk<<r"Jaz=!{ngZciy2tjqo´wSFӋ52Q$P2v7>j!K]qiƨ-_*7j퍥1/ʠ]O¿>~g%u
+ݮ:Pǽ:Zwy
(	?4fugwɣ8zF}XK\_k7
F1w:X~usejqqZQfG'@=~8;9L5^q8JZrEv*3@i&9gtg2ҽ=jnM|(V6)~Oqpfdx)T>F7##6kkLq3m%QME8#1d3Z}
+e1:;4XV:'?|po?!T!4/gendstream
 endobj
 612 0 obj <<
 /Type /Font
@@ -6140,14 +6120,14 @@ endobj
 /FirstChar 13
 /LastChar 110
 /Widths 1360 0 R
-/BaseFont /FHPWHM+CMSY10
+/BaseFont /AKTMYL+CMSY10
 /FontDescriptor 610 0 R
 >> endobj
 610 0 obj <<
 /Ascent 750
 /CapHeight 683
 /Descent -194
-/FontName /FHPWHM+CMSY10
+/FontName /AKTMYL+CMSY10
 /ItalicAngle -14.035
 /StemV 85
 /XHeight 431
@@ -6171,7 +6151,7 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-xڬc]%\].۶m۶m۶mvm}ܹ̯G8;v>'z2@NXƉ*oeodn+E`kkf"&t0w2w2
zvvv(b/9%%Y	NGsSc+[;kcNfs+c(LTF jlcos627H8LlVS#_,~G>6c7Cc\T;cksGǿsG8m!nb/!;ۿ}l
	O'3}r;ulMF:Sҿ0N6'c7rf`/
gGsb@p06w02vtWz};;+w?9;9[@3i7
?GE@Ov#g; _F6V#c(Z[)dw*O"?qF%{;9cRomnA#6堣Do+;XVO3s+ѿiedd(o_흔RH?(nOjz5+@`gb?dNnͿe[JsZmimWߢsQ76v36ZckdT;<)d8خQƶ7-lR6i}@p͊7*Ǜq0V6\5zQjTNpwR^Aw܏ȥדajC,jBR]9IP-X6eNObNPXH?l^
+xڬc]%\].۶m۶m۶mvm}ܹ̯G8;v>'z2@NXƉ*oeodn+E`kkf"&t0w2w2
zvvv(b/9%%Y	NGsSc+[;kcNfs+c(LTF jlcos627H8LlVS#_,~G>6c7Cc\T;cksGǿsG8m!nb/!;ۿ}l
	O'3}r;ulMF:Sҿ0N6'c7rf`/
gGsb@p06w02vtWz};;+w?9;9[@3i7
?GE@Ov#g; _F6V#c(Z[)dw*O"?qF%{;9cRomnA#6堣Do+;XVO3s+ѿiD$de)o_흔RH?(nOjz5+@`gb?dNnͿe[JsZmimWߢsQ76v36ZckdT;<)d8خQƶ7-lR6i}@p͊7*Ǜq0V6\5zQjTNpwR^Aw܏ȥדajC,jBR]9IP-X6eNObNPXH?l^
 V^MVO	Y'ߑ+1.L/}j^NI-YЛ'6M7o1m'=Uf1Kw;9<~
 |#W"*>w5 zѷ_?F#hzݕ뾬	Daܔ֖x3	4v_P?2քγ;,f'+@VyɁv(މ7Gf q}-W)/^ek*(|Ɛ)dP>,UD"w("ZQDxy.Մ0.'6h¬N&2SW]*N=׵!ƒY N503fEp%Zjk\}ʀ}}͒Ps}#U7HkF!+xp|m-Z
@@ -6282,7 +6262,7 @@ D
 eI?1kNU~^sҤO2N#,>UQ?c"x	KmA|X鰭DSZM*,^X䢨xp{M܎	]2bh7k<.`Lˆlv w§;wxS(N51K|RJ7䠆!+[u;r+K0&-_RK߸^&6b]Ad24:ӿ}bRߩ;a^}kD"<}]H04(8\/Kc\SY]/v 9xD>b^Ve;YQo[w5]v:YV3kҘqY6D=ןvi_X&wxk?jc@:ػ%q5%)M7e0!0rWbo )mJHyI*r"
$XP[@(<sx`!"L4fL}j!%޿}s(3ǩmЃ"k	 #ڡ
ɑkge8ێGN _A]+V4}:5d?x,q+QlQ?:Opi%vE`aB
 i^jm3O3Ҥ/v+ECD+ō23W-CR*ݤ9d<[9xui$EyZ
 t0=&A_39M䮩gF@1Bz*.
-4:ogt2+,d@w/-kl*!|3c7lS/	-^rendstream
+4:ogt2+,d@w/-kl*!|3c7lS/	-'endstream
 endobj
 604 0 obj <<
 /Type /Font
@@ -6291,14 +6271,14 @@ endobj
 /FirstChar 2
 /LastChar 216
 /Widths 1361 0 R
-/BaseFont /QLANNN+URWPalladioL-Roma
+/BaseFont /PFLJOO+URWPalladioL-Roma
 /FontDescriptor 602 0 R
 >> endobj
 602 0 obj <<
 /Ascent 715
 /CapHeight 680
 /Descent -282
-/FontName /QLANNN+URWPalladioL-Roma
+/FontName /PFLJOO+URWPalladioL-Roma
 /ItalicAngle 0
 /StemV 84
 /XHeight 469
@@ -6319,7 +6299,7 @@ endobj
 >>
 stream
 xڬzce߳eٶm˶m۶mWuٶm6.4f>ͼ'+WʽވCFL'hbod*foBD
PURW01415	;XۉrMM"ff@@,\,lb@owS?o0v&̊O?ncW'-?tSSScU{c.y"ڃLeM*Ņ}\Uuͳ_+>O1l(Lo
+73u2(Xd,MMfN[L,)͙/3`jlw?.Zw3o\v6&k7!'}],\*OCr;[uFSҿ|az]-..22X:;z_4\--/__u
l<_QƌoNc-`I;3{M\fQ33TIxLL`]PL?'#';Cښk?K6HuCt1A;b03YD`fhKڙ:XڙU_1127?mg7WgPWT?o)UE/D?	{ؘt,L_>\,lb@owS?o0v&̊O?ncW'-?tSSScU{c.y"ڃLeM*Ņ}\Uuͳ_+>O1l(Lo
 |I
 wȻ8hN3/coeNJ? gXnP>; 7ƣw#5$O>L1<16:w>pKMO˯Z)ZL~ӑm{*RƢ)0=g\"nsY{s?iEvY9Η5{r=FaBLJ|uáqx&2r&G-H."]pY&JtfREN	x'Yӟ6tc7#J5+c:v{y)4V,3
 "+0TjkəyF6m
{ ټbB}nEttqxxͤ"#h<&1tI0ÕTYR0CɁzgڢ!9dng0.c	hZd{yzJI\\
@@ -6426,7 +6406,7 @@ L
 6_mq'2~=aFМ?	Z._|;l[OXJ+QGiZɏP&Yyf2<rG753#zFF⨾F4N5c6Pe	ku_KL*0MHCrT>㇟x FRB_!iN%$h]ts=nAG5W0!BV\6ߥ;RЭ$v(@ICMv_/#	
 26w{0+/6A3CX	?<ۈUë"R26OiƷ:+t;fn
-0jTq]'DY
.g¨;AJҴͭ[HaA@ ?JAtI%[ح$ҍ"ɾs?S;sc7G{c[endstream
+0jTq]'DY
.g¨;AJҴͭ[HaA@ ?JAtI%[ح$ҍ"ɾs?S;sc7G{c[
endstream
 endobj
 601 0 obj <<
 /Type /Font
@@ -6435,14 +6415,14 @@ endobj
 /FirstChar 2
 /LastChar 151
 /Widths 1362 0 R
-/BaseFont /INPKTB+URWPalladioL-Bold
+/BaseFont /WEGQVN+URWPalladioL-Bold
 /FontDescriptor 599 0 R
 >> endobj
 599 0 obj <<
 /Ascent 708
 /CapHeight 672
 /Descent -266
-/FontName /INPKTB+URWPalladioL-Bold
+/FontName /WEGQVN+URWPalladioL-Bold
 /ItalicAngle 0
 /StemV 123
 /XHeight 471
@@ -6506,7 +6486,7 @@ endobj
 /Type /Pages
 /Count 6
 /Parent 1364 0 R
-/Kids [988 0 R 993 0 R 1002 0 R 1007 0 R 1015 0 R 1022 0 R]
+/Kids [988 0 R 993 0 R 1001 0 R 1007 0 R 1015 0 R 1022 0 R]
 >> endobj
 1035 0 obj <<
 /Type /Pages
@@ -7631,7 +7611,7 @@ endobj
 /Count -4
 >> endobj
 1368 0 obj <<
-/Names [(Access_Control_Lists) 1185 0 R (Bv9ARM.ch01) 617 0 R (Bv9ARM.ch02) 671 0 R (Bv9ARM.ch03) 686 0 R (Bv9ARM.ch04) 734 0 R (Bv9ARM.ch05) 819 0 R (Bv9ARM.ch06) 831 0 R (Bv9ARM.ch07) 1184 0 R (Bv9ARM.ch08) 1203 0 R (Bv9ARM.ch09) 1218 0 R (Configuration_File_Grammar) 855 0 R (DNSSEC) 787 0 R (Doc-Start) 598 0 R (Setting_TTLs) 1152 0 R (access_control) 970 0 R (acl) 863 0 R (address_match_lists) 836 0 R (admin_tools) 708 0 R (appendix.A) 558 0 R (bibliography) 1234 0 R (boolean_options) 740 0 R (builtin) 1031 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 514 0 R (chapter.8) 538 0 R (cite.RFC1034) 1244 0 R (cite.RFC1035) 1246 0 R (cite.RFC1101) 1302 0 R (cite.RFC1123) 1304 0 R (cite.RFC1183) 1286 0 R (cite.RFC1464) 1322 0 R (cite.RFC1535) 1273 0 R (cite.RFC1536) 1275 0 R (cite.RFC1537) 1312 0 R (cite.RFC1591) 1306 0 R (cite.RFC1706) 1288 0 R (cite.RFC1712) 1336 0 R (cite.RFC1713) 1324 0 R (cite.RFC1794) 1326 0 R (cite.RFC1876) 1290 0 R (cite.RFC1886) 1265 0 R (cite.RFC1912) 1314 0 R (cite.RFC1982) 1277 0 R (cite.RFC1995) 1251 0 R (cite.RFC1996) 1253 0 R (cite.RFC2010) 1316 0 R (cite.RFC2052) 1292 0 R (cite.RFC2065) 1267 0 R (cite.RFC2136) 1255 0 R (cite.RFC2137) 1269 0 R (cite.RFC2163) 1294 0 R (cite.RFC2168) 1296 0 R (cite.RFC2181) 1257 0 R (cite.RFC2219) 1318 0 R (cite.RFC2230) 1298 0 R (cite.RFC2240) 1328 0 R (cite.RFC2308) 1259 0 R (cite.RFC2317) 1308 0 R (cite.RFC2345) 1330 0 R (cite.RFC2352) 1332 0 R (cite.RFC2845) 1261 0 R (cite.RFC974) 1248 0 R (cite.id2492151) 1345 0 R (configuration_file_elements) 832 0 R (controls_statement_definition_and_usage) 722 0 R (diagnostic_tools) 659 0 R (dynamic_update) 738 0 R (dynamic_update_policies) 779 0 R (dynamic_update_security) 974 0 R (historical_dns_information) 1225 0 R (id2465952) 643 0 R (id2466044) 619 0 R (id2466730) 623 0 R (id2466739) 624 0 R (id2466914) 639 0 R (id2467034) 618 0 R (id2467398) 641 0 R (id2467418) 642 0 R (id2467436) 996 0 R (id2467452) 997 0 R (id2467554) 999 0 R (id2467742) 646 0 R (id2467817) 653 0 R (id2467840) 656 0 R (id2467861) 657 0 R (id2467880) 658 0 R (id2467977) 664 0 R (id2468009) 665 0 R (id2468035) 666 0 R (id2468135) 672 0 R (id2468160) 673 0 R (id2468170) 674 0 R (id2468184) 675 0 R (id2468193) 681 0 R (id2468224) 688 0 R (id2468240) 689 0 R (id2468330) 694 0 R (id2468346) 695 0 R (id2468613) 698 0 R (id2468618) 699 0 R (id2469880) 727 0 R (id2469892) 728 0 R (id2470305) 749 0 R (id2470322) 750 0 R (id2470869) 766 0 R (id2470885) 767 0 R (id2470919) 768 0 R (id2470935) 774 0 R (id2470944) 775 0 R (id2470983) 776 0 R (id2471035) 777 0 R (id2471147) 784 0 R (id2471161) 785 0 R (id2471210) 786 0 R (id2471413) 792 0 R (id2471480) 793 0 R (id2471623) 794 0 R (id2471692) 810 0 R (id2471819) 812 0 R (id2471840) 813 0 R (id2471940) 820 0 R (id2472078) 833 0 R (id2472779) 841 0 R (id2472806) 842 0 R (id2472968) 847 0 R (id2472983) 848 0 R (id2473012) 849 0 R (id2473089) 856 0 R (id2473658) 862 0 R (id2473700) 864 0 R (id2473827) 866 0 R (id2474104) 874 0 R (id2474121) 875 0 R (id2474144) 876 0 R (id2474167) 877 0 R (id2474238) 886 0 R (id2474433) 887 0 R (id2474553) 888 0 R (id2475111) 903 0 R (id2475571) 909 0 R (id2475643) 910 0 R (id2475774) 918 0 R (id2475818) 919 0 R (id2475833) 920 0 R (id2477449) 940 0 R (id2478728) 962 0 R (id2478778) 964 0 R (id2478957) 973 0 R (id2479114) 979 0 R (id2482003) 1005 0 R (id2482477) 1019 0 R (id2482944) 1033 0 R (id2483640) 1048 0 R (id2483690) 1049 0 R (id2483774) 1055 0 R (id2484992) 1068 0 R (id2484998) 1069 0 R (id2485002) 1070 0 R (id2485236) 1077 0 R (id2485403) 1078 0 R (id2486371) 1115 0 R (id2486530) 1117 0 R (id2486548) 1118 0 R (id2486569) 1121 0 R (id2486777) 1127 0 R (id2487428) 1133 0 R (id2487537) 1135 0 R (id2487558) 1141 0 R (id2487915) 1143 0 R (id2488030) 1145 0 R (id2488049) 1146 0 R (id2488354) 1153 0 R (id2488528) 1155 0 R (id2488541) 1156 0 R (id2488633) 1158 0 R (id2488652) 1159 0 R (id2488708) 1167 0 R (id2488771) 1168 0 R (id2488802) 1169 0 R (id2488862) 1174 0 R (id2489260) 1196 0 R (id2489336) 1197 0 R (id2489394) 1198 0 R (id2489601) 1204 0 R (id2489606) 1205 0 R (id2489618) 1206 0 R (id2489635) 1207 0 R (id2489833) 1219 0 R (id2489838) 1220 0 R (id2489972) 1226 0 R (id2490352) 1228 0 R (id2490628) 1240 0 R (id2490630) 1242 0 R (id2490638) 1247 0 R (id2490730) 1243 0 R (id2490754) 1245 0 R (id2490791) 1256 0 R (id2490817) 1258 0 R (id2490842) 1250 0 R (id2490867) 1252 0 R (id2490890) 1254 0 R (id2490946) 1260 0 R (id2491006) 1263 0 R (id2491021) 1264 0 R (id2491060) 1266 0 R (id2491099) 1268 0 R (id2491127) 1271 0 R (id2491136) 1272 0 R (id2491161) 1274 0 R (id2491228) 1276 0 R (id2491265) 1284 0 R (id2491270) 1285 0 R (id2491328) 1287 0 R (id2491365) 1295 0 R (id2491400) 1289 0 R (id2491454) 1291 0 R (id2491494) 1293 0 R (id2491521) 1297 0 R (id2491547) 1300 0 R (id2491555) 1301 0 R (id2491580) 1303 0 R (id2491604) 1305 0 R (id2491625) 1307 0 R (id2491740) 1310 0 R (id2491748) 1311 0 R (id2491773) 1313 0 R (id2491800) 1315 0 R (id2491836) 1317 0 R (id2491876) 1320 0 R (id2491896) 1321 0 R (id2491918) 1323 0 R (id2491943) 1325 0 R (id2491968) 1327 0 R (id2491990) 1329 0 R (id2492036) 1331 0 R (id2492060) 1334 0 R (id2492067) 1335 0 R (id2492139) 1342 0 R (id2492149) 1344 0 R (id2492151) 1346 0 R (incremental_zone_transfers) 746 0 R (internet_drafts) 1341 0 R (ipv6addresses) 814 0 R (journal) 739 0 R (lwresd) 821 0 R (notify) 735 0 R (options) 929 0 R (page.1) 597 0 R (page.10) 693 0 R (page.11) 704 0 R (page.12) 712 0 R (page.13) 719 0 R (page.14) 726 0 R (page.15) 733 0 R (page.16) 745 0 R (page.17) 755 0 R (page.18) 760 0 R (page.19) 764 0 R (page.2) 609 0 R (page.20) 773 0 R (page.21) 783 0 R (page.22) 791 0 R (page.23) 799 0 R (page.24) 809 0 R (page.25) 818 0 R (page.26) 826 0 R (page.27) 830 0 R (page.28) 840 0 R (page.29) 846 0 R (page.3) 616 0 R (page.30) 854 0 R (page.31) 861 0 R (page.32) 871 0 R (page.33) 885 0 R (page.34) 892 0 R (page.35) 896 0 R (page.36) 902 0 R (page.37) 908 0 R (page.38) 917 0 R (page.39) 924 0 R (page.4) 635 0 R (page.40) 928 0 R (page.41) 933 0 R (page.42) 939 0 R (page.43) 945 0 R (page.44) 955 0 R (page.45) 961 0 R (page.46) 969 0 R (page.47) 978 0 R (page.48) 986 0 R (page.49) 990 0 R (page.5) 652 0 R (page.50) 995 0 R (page.51) 1004 0 R (page.52) 1009 0 R (page.53) 1017 0 R (page.54) 1024 0 R (page.55) 1030 0 R (page.56) 1040 0 R (page.57) 1045 0 R (page.58) 1054 0 R (page.59) 1059 0 R (page.6) 663 0 R (page.60) 1063 0 R (page.61) 1067 0 R (page.62) 1076 0 R (page.63) 1088 0 R (page.64) 1098 0 R (page.65) 1114 0 R (page.66) 1126 0 R (page.67) 1132 0 R (page.68) 1140 0 R (page.69) 1151 0 R (page.7) 670 0 R (page.70) 1163 0 R (page.71) 1173 0 R (page.72) 1179 0 R (page.73) 1183 0 R (page.74) 1192 0 R (page.75) 1202 0 R (page.76) 1213 0 R (page.77) 1217 0 R (page.78) 1224 0 R (page.79) 1233 0 R (page.8) 680 0 R (page.80) 1282 0 R (page.81) 1340 0 R (page.9) 685 0 R (proposed_standards) 751 0 R (rfcs) 648 0 R (rndc) 881 0 R (rrset_ordering) 700 0 R (sample_configuration) 687 0 R (section*.1) 1239 0 R (section*.10) 1333 0 R (section*.11) 1343 0 R (section*.2) 1241 0 R (section*.3) 1249 0 R (section*.4) 1262 0 R (section*.5) 1270 0 R (section*.6) 1283 0 R (section*.7) 1299 0 R (section*.8) 1309 0 R (section*.9) 1319 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 466 0 R (section.7.1) 518 0 R (section.7.2) 522 0 R (section.7.3) 534 0 R (section.8.1) 542 0 R (section.8.2) 550 0 R (section.8.3) 554 0 R (section.A.1) 562 0 R (section.A.2) 570 0 R (section.A.3) 578 0 R (server_statement_definition_and_usage) 951 0 R (server_statement_grammar) 1041 0 R (statsfile) 935 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 418 0 R (subsection.6.2.18) 422 0 R (subsection.6.2.19) 426 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 430 0 R (subsection.6.2.21) 434 0 R (subsection.6.2.22) 438 0 R (subsection.6.2.23) 442 0 R (subsection.6.2.24) 446 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 470 0 R (subsection.6.3.2) 482 0 R (subsection.6.3.3) 486 0 R (subsection.6.3.4) 490 0 R (subsection.6.3.5) 494 0 R (subsection.6.3.6) 510 0 R (subsection.7.2.1) 526 0 R (subsection.7.2.2) 530 0 R (subsection.8.1.1) 546 0 R (subsection.A.1.1) 566 0 R (subsection.A.2.1) 574 0 R (subsection.A.3.1) 582 0 R (subsection.A.3.2) 586 0 R (subsection.A.3.3) 590 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 450 0 R (subsubsection.6.2.24.2) 454 0 R (subsubsection.6.2.24.3) 458 0 R (subsubsection.6.2.24.4) 462 0 R (subsubsection.6.3.1.1) 474 0 R (subsubsection.6.3.1.2) 478 0 R (subsubsection.6.3.5.1) 498 0 R (subsubsection.6.3.5.2) 502 0 R (subsubsection.6.3.5.3) 506 0 R (table.1.1) 625 0 R (table.1.2) 640 0 R (table.3.1) 696 0 R (table.3.2) 729 0 R (table.6.1) 834 0 R (table.6.10) 1122 0 R (table.6.11) 1128 0 R (table.6.12) 1134 0 R (table.6.13) 1142 0 R (table.6.14) 1144 0 R (table.6.15) 1147 0 R (table.6.16) 1154 0 R (table.6.17) 1157 0 R (table.6.18) 1175 0 R (table.6.2) 857 0 R (table.6.3) 865 0 R (table.6.4) 904 0 R (table.6.5) 941 0 R (table.6.6) 1020 0 R (table.6.7) 1034 0 R (table.6.8) 1071 0 R (table.6.9) 1116 0 R (table.A.1) 1227 0 R (table.A.2) 1229 0 R (the_category_phrase) 898 0 R (the_sortlist_statement) 1011 0 R (topology) 1010 0 R (tsig) 765 0 R (tuning) 1025 0 R (types_of_resource_records_and_when_to_use_them) 647 0 R (view_statement_grammar) 1036 0 R (zone_statement_grammar) 965 0 R (zone_transfers) 741 0 R]
+/Names [(Access_Control_Lists) 1185 0 R (Bv9ARM.ch01) 617 0 R (Bv9ARM.ch02) 671 0 R (Bv9ARM.ch03) 686 0 R (Bv9ARM.ch04) 734 0 R (Bv9ARM.ch05) 819 0 R (Bv9ARM.ch06) 831 0 R (Bv9ARM.ch07) 1184 0 R (Bv9ARM.ch08) 1203 0 R (Bv9ARM.ch09) 1218 0 R (Configuration_File_Grammar) 855 0 R (DNSSEC) 787 0 R (Doc-Start) 598 0 R (Setting_TTLs) 1152 0 R (access_control) 970 0 R (acl) 863 0 R (address_match_lists) 836 0 R (admin_tools) 708 0 R (appendix.A) 558 0 R (bibliography) 1234 0 R (boolean_options) 740 0 R (builtin) 1031 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 514 0 R (chapter.8) 538 0 R (cite.RFC1034) 1244 0 R (cite.RFC1035) 1246 0 R (cite.RFC1101) 1302 0 R (cite.RFC1123) 1304 0 R (cite.RFC1183) 1286 0 R (cite.RFC1464) 1322 0 R (cite.RFC1535) 1273 0 R (cite.RFC1536) 1275 0 R (cite.RFC1537) 1312 0 R (cite.RFC1591) 1306 0 R (cite.RFC1706) 1288 0 R (cite.RFC1712) 1336 0 R (cite.RFC1713) 1324 0 R (cite.RFC1794) 1326 0 R (cite.RFC1876) 1290 0 R (cite.RFC1886) 1265 0 R (cite.RFC1912) 1314 0 R (cite.RFC1982) 1277 0 R (cite.RFC1995) 1251 0 R (cite.RFC1996) 1253 0 R (cite.RFC2010) 1316 0 R (cite.RFC2052) 1292 0 R (cite.RFC2065) 1267 0 R (cite.RFC2136) 1255 0 R (cite.RFC2137) 1269 0 R (cite.RFC2163) 1294 0 R (cite.RFC2168) 1296 0 R (cite.RFC2181) 1257 0 R (cite.RFC2219) 1318 0 R (cite.RFC2230) 1298 0 R (cite.RFC2240) 1328 0 R (cite.RFC2308) 1259 0 R (cite.RFC2317) 1308 0 R (cite.RFC2345) 1330 0 R (cite.RFC2352) 1332 0 R (cite.RFC2845) 1261 0 R (cite.RFC974) 1248 0 R (cite.id2492088) 1345 0 R (configuration_file_elements) 832 0 R (controls_statement_definition_and_usage) 722 0 R (diagnostic_tools) 659 0 R (dynamic_update) 738 0 R (dynamic_update_policies) 779 0 R (dynamic_update_security) 974 0 R (historical_dns_information) 1225 0 R (id2465952) 643 0 R (id2466044) 619 0 R (id2466730) 623 0 R (id2466739) 624 0 R (id2466914) 639 0 R (id2467034) 618 0 R (id2467398) 641 0 R (id2467418) 642 0 R (id2467442) 996 0 R (id2467458) 997 0 R (id2467559) 999 0 R (id2467742) 646 0 R (id2467817) 653 0 R (id2467840) 656 0 R (id2467861) 657 0 R (id2467880) 658 0 R (id2467977) 664 0 R (id2468009) 665 0 R (id2468035) 666 0 R (id2468135) 672 0 R (id2468160) 673 0 R (id2468170) 674 0 R (id2468184) 675 0 R (id2468193) 681 0 R (id2468224) 688 0 R (id2468240) 689 0 R (id2468330) 694 0 R (id2468346) 695 0 R (id2468613) 698 0 R (id2468618) 699 0 R (id2469880) 727 0 R (id2469892) 728 0 R (id2470305) 749 0 R (id2470322) 750 0 R (id2470869) 766 0 R (id2470885) 767 0 R (id2470919) 768 0 R (id2470935) 774 0 R (id2470944) 775 0 R (id2470983) 776 0 R (id2471035) 777 0 R (id2471147) 784 0 R (id2471161) 785 0 R (id2471210) 786 0 R (id2471413) 792 0 R (id2471480) 793 0 R (id2471623) 794 0 R (id2471692) 810 0 R (id2471819) 812 0 R (id2471840) 813 0 R (id2471940) 820 0 R (id2472078) 833 0 R (id2472779) 841 0 R (id2472806) 842 0 R (id2472968) 847 0 R (id2472983) 848 0 R (id2473012) 849 0 R (id2473089) 856 0 R (id2473658) 862 0 R (id2473700) 864 0 R (id2473827) 866 0 R (id2474104) 874 0 R (id2474121) 875 0 R (id2474144) 876 0 R (id2474167) 877 0 R (id2474238) 886 0 R (id2474433) 887 0 R (id2474553) 888 0 R (id2475111) 903 0 R (id2475571) 909 0 R (id2475643) 910 0 R (id2475774) 918 0 R (id2475818) 919 0 R (id2475833) 920 0 R (id2477449) 940 0 R (id2478728) 962 0 R (id2478778) 964 0 R (id2478957) 973 0 R (id2479114) 979 0 R (id2482008) 1005 0 R (id2482414) 1019 0 R (id2482881) 1033 0 R (id2483577) 1048 0 R (id2483627) 1049 0 R (id2483712) 1055 0 R (id2484997) 1068 0 R (id2485003) 1069 0 R (id2485008) 1070 0 R (id2485309) 1077 0 R (id2485477) 1078 0 R (id2486444) 1115 0 R (id2486603) 1117 0 R (id2486621) 1118 0 R (id2486643) 1121 0 R (id2486782) 1127 0 R (id2487433) 1133 0 R (id2487542) 1135 0 R (id2487563) 1141 0 R (id2487921) 1143 0 R (id2488036) 1145 0 R (id2488054) 1146 0 R (id2488359) 1153 0 R (id2488465) 1155 0 R (id2488478) 1156 0 R (id2488570) 1158 0 R (id2488589) 1159 0 R (id2488645) 1167 0 R (id2488708) 1168 0 R (id2488739) 1169 0 R (id2488800) 1174 0 R (id2489197) 1196 0 R (id2489410) 1197 0 R (id2489467) 1198 0 R (id2489606) 1204 0 R (id2489611) 1205 0 R (id2489623) 1206 0 R (id2489640) 1207 0 R (id2489702) 1219 0 R (id2489707) 1220 0 R (id2490045) 1226 0 R (id2490357) 1228 0 R (id2490633) 1240 0 R (id2490635) 1242 0 R (id2490644) 1247 0 R (id2490667) 1243 0 R (id2490691) 1245 0 R (id2490728) 1256 0 R (id2490754) 1258 0 R (id2490779) 1250 0 R (id2490804) 1252 0 R (id2490827) 1254 0 R (id2490883) 1260 0 R (id2490944) 1263 0 R (id2490958) 1264 0 R (id2490997) 1266 0 R (id2491036) 1268 0 R (id2491064) 1271 0 R (id2491073) 1272 0 R (id2491098) 1274 0 R (id2491165) 1276 0 R (id2491202) 1284 0 R (id2491207) 1285 0 R (id2491265) 1287 0 R (id2491302) 1295 0 R (id2491337) 1289 0 R (id2491392) 1291 0 R (id2491431) 1293 0 R (id2491458) 1297 0 R (id2491484) 1300 0 R (id2491492) 1301 0 R (id2491517) 1303 0 R (id2491541) 1305 0 R (id2491562) 1307 0 R (id2491677) 1310 0 R (id2491685) 1311 0 R (id2491710) 1313 0 R (id2491737) 1315 0 R (id2491773) 1317 0 R (id2491813) 1320 0 R (id2491833) 1321 0 R (id2491856) 1323 0 R (id2491880) 1325 0 R (id2491905) 1327 0 R (id2491927) 1329 0 R (id2491973) 1331 0 R (id2491997) 1334 0 R (id2492004) 1335 0 R (id2492076) 1342 0 R (id2492086) 1344 0 R (id2492088) 1346 0 R (incremental_zone_transfers) 746 0 R (internet_drafts) 1341 0 R (ipv6addresses) 814 0 R (journal) 739 0 R (lwresd) 821 0 R (notify) 735 0 R (options) 929 0 R (page.1) 597 0 R (page.10) 693 0 R (page.11) 704 0 R (page.12) 712 0 R (page.13) 719 0 R (page.14) 726 0 R (page.15) 733 0 R (page.16) 745 0 R (page.17) 755 0 R (page.18) 760 0 R (page.19) 764 0 R (page.2) 609 0 R (page.20) 773 0 R (page.21) 783 0 R (page.22) 791 0 R (page.23) 799 0 R (page.24) 809 0 R (page.25) 818 0 R (page.26) 826 0 R (page.27) 830 0 R (page.28) 840 0 R (page.29) 846 0 R (page.3) 616 0 R (page.30) 854 0 R (page.31) 861 0 R (page.32) 871 0 R (page.33) 885 0 R (page.34) 892 0 R (page.35) 896 0 R (page.36) 902 0 R (page.37) 908 0 R (page.38) 917 0 R (page.39) 924 0 R (page.4) 635 0 R (page.40) 928 0 R (page.41) 933 0 R (page.42) 939 0 R (page.43) 945 0 R (page.44) 955 0 R (page.45) 961 0 R (page.46) 969 0 R (page.47) 978 0 R (page.48) 986 0 R (page.49) 990 0 R (page.5) 652 0 R (page.50) 995 0 R (page.51) 1003 0 R (page.52) 1009 0 R (page.53) 1017 0 R (page.54) 1024 0 R (page.55) 1030 0 R (page.56) 1040 0 R (page.57) 1045 0 R (page.58) 1054 0 R (page.59) 1059 0 R (page.6) 663 0 R (page.60) 1063 0 R (page.61) 1067 0 R (page.62) 1076 0 R (page.63) 1088 0 R (page.64) 1098 0 R (page.65) 1114 0 R (page.66) 1126 0 R (page.67) 1132 0 R (page.68) 1140 0 R (page.69) 1151 0 R (page.7) 670 0 R (page.70) 1163 0 R (page.71) 1173 0 R (page.72) 1179 0 R (page.73) 1183 0 R (page.74) 1192 0 R (page.75) 1202 0 R (page.76) 1213 0 R (page.77) 1217 0 R (page.78) 1224 0 R (page.79) 1233 0 R (page.8) 680 0 R (page.80) 1282 0 R (page.81) 1340 0 R (page.9) 685 0 R (proposed_standards) 751 0 R (rfcs) 648 0 R (rndc) 881 0 R (rrset_ordering) 700 0 R (sample_configuration) 687 0 R (section*.1) 1239 0 R (section*.10) 1333 0 R (section*.11) 1343 0 R (section*.2) 1241 0 R (section*.3) 1249 0 R (section*.4) 1262 0 R (section*.5) 1270 0 R (section*.6) 1283 0 R (section*.7) 1299 0 R (section*.8) 1309 0 R (section*.9) 1319 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 466 0 R (section.7.1) 518 0 R (section.7.2) 522 0 R (section.7.3) 534 0 R (section.8.1) 542 0 R (section.8.2) 550 0 R (section.8.3) 554 0 R (section.A.1) 562 0 R (section.A.2) 570 0 R (section.A.3) 578 0 R (server_statement_definition_and_usage) 951 0 R (server_statement_grammar) 1041 0 R (statsfile) 935 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 418 0 R (subsection.6.2.18) 422 0 R (subsection.6.2.19) 426 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 430 0 R (subsection.6.2.21) 434 0 R (subsection.6.2.22) 438 0 R (subsection.6.2.23) 442 0 R (subsection.6.2.24) 446 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 470 0 R (subsection.6.3.2) 482 0 R (subsection.6.3.3) 486 0 R (subsection.6.3.4) 490 0 R (subsection.6.3.5) 494 0 R (subsection.6.3.6) 510 0 R (subsection.7.2.1) 526 0 R (subsection.7.2.2) 530 0 R (subsection.8.1.1) 546 0 R (subsection.A.1.1) 566 0 R (subsection.A.2.1) 574 0 R (subsection.A.3.1) 582 0 R (subsection.A.3.2) 586 0 R (subsection.A.3.3) 590 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 450 0 R (subsubsection.6.2.24.2) 454 0 R (subsubsection.6.2.24.3) 458 0 R (subsubsection.6.2.24.4) 462 0 R (subsubsection.6.3.1.1) 474 0 R (subsubsection.6.3.1.2) 478 0 R (subsubsection.6.3.5.1) 498 0 R (subsubsection.6.3.5.2) 502 0 R (subsubsection.6.3.5.3) 506 0 R (table.1.1) 625 0 R (table.1.2) 640 0 R (table.3.1) 696 0 R (table.3.2) 729 0 R (table.6.1) 834 0 R (table.6.10) 1122 0 R (table.6.11) 1128 0 R (table.6.12) 1134 0 R (table.6.13) 1142 0 R (table.6.14) 1144 0 R (table.6.15) 1147 0 R (table.6.16) 1154 0 R (table.6.17) 1157 0 R (table.6.18) 1175 0 R (table.6.2) 857 0 R (table.6.3) 865 0 R (table.6.4) 904 0 R (table.6.5) 941 0 R (table.6.6) 1020 0 R (table.6.7) 1034 0 R (table.6.8) 1071 0 R (table.6.9) 1116 0 R (table.A.1) 1227 0 R (table.A.2) 1229 0 R (the_category_phrase) 898 0 R (the_sortlist_statement) 1011 0 R (topology) 1010 0 R (tsig) 765 0 R (tuning) 1025 0 R (types_of_resource_records_and_when_to_use_them) 647 0 R (view_statement_grammar) 1036 0 R (zone_statement_grammar) 965 0 R (zone_transfers) 741 0 R]
 /Limits [(Access_Control_Lists) (zone_transfers)]
 >> endobj
 1369 0 obj <<
@@ -7650,7 +7630,7 @@ endobj
 >> endobj
 1372 0 obj <<
 /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20080403035022Z)
+/CreationDate (D:20080527222349Z)
 /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
 >> endobj
 xref
@@ -7662,591 +7642,591 @@ xref
 0000000000 00000 f 
 0000000009 00000 n 
 0000018969 00000 n 
-0000491464 00000 n 
+0000491721 00000 n 
 0000000054 00000 n 
 0000000086 00000 n 
 0000019093 00000 n 
-0000491392 00000 n 
+0000491649 00000 n 
 0000000133 00000 n 
 0000000173 00000 n 
 0000019218 00000 n 
-0000491306 00000 n 
+0000491563 00000 n 
 0000000221 00000 n 
 0000000273 00000 n 
 0000019343 00000 n 
-0000491220 00000 n 
+0000491477 00000 n 
 0000000321 00000 n 
 0000000377 00000 n 
 0000023633 00000 n 
-0000491110 00000 n 
+0000491367 00000 n 
 0000000425 00000 n 
 0000000478 00000 n 
 0000023758 00000 n 
-0000491036 00000 n 
+0000491293 00000 n 
 0000000531 00000 n 
 0000000572 00000 n 
 0000023883 00000 n 
-0000490949 00000 n 
+0000491206 00000 n 
 0000000625 00000 n 
 0000000674 00000 n 
 0000024008 00000 n 
-0000490862 00000 n 
+0000491119 00000 n 
 0000000727 00000 n 
 0000000757 00000 n 
 0000028318 00000 n 
-0000490738 00000 n 
+0000490995 00000 n 
 0000000810 00000 n 
 0000000861 00000 n 
 0000028443 00000 n 
-0000490664 00000 n 
+0000490921 00000 n 
 0000000919 00000 n 
 0000000964 00000 n 
 0000028568 00000 n 
-0000490577 00000 n 
+0000490834 00000 n 
 0000001022 00000 n 
 0000001062 00000 n 
 0000028693 00000 n 
-0000490503 00000 n 
+0000490760 00000 n 
 0000001120 00000 n 
 0000001162 00000 n 
 0000031606 00000 n 
-0000490379 00000 n 
+0000490636 00000 n 
 0000001215 00000 n 
 0000001260 00000 n 
 0000031731 00000 n 
-0000490318 00000 n 
+0000490575 00000 n 
 0000001318 00000 n 
 0000001355 00000 n 
 0000031856 00000 n 
-0000490244 00000 n 
+0000490501 00000 n 
 0000001408 00000 n 
 0000001463 00000 n 
 0000034244 00000 n 
-0000490119 00000 n 
+0000490376 00000 n 
 0000001509 00000 n 
 0000001556 00000 n 
 0000034369 00000 n 
-0000490045 00000 n 
+0000490302 00000 n 
 0000001604 00000 n 
 0000001648 00000 n 
 0000034494 00000 n 
-0000489958 00000 n 
+0000490215 00000 n 
 0000001696 00000 n 
 0000001735 00000 n 
 0000034617 00000 n 
-0000489871 00000 n 
+0000490128 00000 n 
 0000001783 00000 n 
 0000001825 00000 n 
 0000034741 00000 n 
-0000489784 00000 n 
+0000490041 00000 n 
 0000001873 00000 n 
 0000001936 00000 n 
 0000035777 00000 n 
-0000489710 00000 n 
+0000489967 00000 n 
 0000001984 00000 n 
 0000002034 00000 n 
 0000037455 00000 n 
-0000489582 00000 n 
+0000489839 00000 n 
 0000002080 00000 n 
 0000002126 00000 n 
 0000037579 00000 n 
-0000489469 00000 n 
+0000489726 00000 n 
 0000002174 00000 n 
 0000002218 00000 n 
 0000037704 00000 n 
-0000489393 00000 n 
+0000489650 00000 n 
 0000002271 00000 n 
 0000002323 00000 n 
 0000037829 00000 n 
-0000489316 00000 n 
+0000489573 00000 n 
 0000002377 00000 n 
 0000002436 00000 n 
 0000040461 00000 n 
-0000489225 00000 n 
+0000489482 00000 n 
 0000002485 00000 n 
 0000002523 00000 n 
 0000040712 00000 n 
-0000489108 00000 n 
+0000489365 00000 n 
 0000002572 00000 n 
 0000002618 00000 n 
 0000040838 00000 n 
-0000488990 00000 n 
+0000489247 00000 n 
 0000002672 00000 n 
 0000002739 00000 n 
 0000044023 00000 n 
-0000488911 00000 n 
+0000489168 00000 n 
 0000002798 00000 n 
 0000002842 00000 n 
 0000044149 00000 n 
-0000488832 00000 n 
+0000489089 00000 n 
 0000002901 00000 n 
 0000002949 00000 n 
 0000054288 00000 n 
-0000488753 00000 n 
+0000489010 00000 n 
 0000003003 00000 n 
 0000003036 00000 n 
 0000057561 00000 n 
-0000488621 00000 n 
+0000488878 00000 n 
 0000003083 00000 n 
 0000003126 00000 n 
 0000057687 00000 n 
-0000488542 00000 n 
+0000488799 00000 n 
 0000003175 00000 n 
 0000003205 00000 n 
 0000057813 00000 n 
-0000488410 00000 n 
+0000488667 00000 n 
 0000003254 00000 n 
 0000003292 00000 n 
 0000057938 00000 n 
-0000488345 00000 n 
+0000488602 00000 n 
 0000003346 00000 n 
 0000003388 00000 n 
 0000062257 00000 n 
-0000488252 00000 n 
+0000488509 00000 n 
 0000003437 00000 n 
 0000003496 00000 n 
 0000062383 00000 n 
-0000488120 00000 n 
+0000488377 00000 n 
 0000003545 00000 n 
 0000003578 00000 n 
 0000062509 00000 n 
-0000488055 00000 n 
+0000488312 00000 n 
 0000003632 00000 n 
 0000003681 00000 n 
 0000069370 00000 n 
-0000487923 00000 n 
+0000488180 00000 n 
 0000003730 00000 n 
 0000003758 00000 n 
 0000069496 00000 n 
-0000487805 00000 n 
+0000488062 00000 n 
 0000003812 00000 n 
 0000003881 00000 n 
 0000069621 00000 n 
-0000487726 00000 n 
+0000487983 00000 n 
 0000003940 00000 n 
 0000003988 00000 n 
 0000069747 00000 n 
-0000487647 00000 n 
+0000487904 00000 n 
 0000004047 00000 n 
 0000004092 00000 n 
 0000072749 00000 n 
-0000487554 00000 n 
+0000487811 00000 n 
 0000004146 00000 n 
 0000004214 00000 n 
 0000072875 00000 n 
-0000487461 00000 n 
+0000487718 00000 n 
 0000004268 00000 n 
 0000004338 00000 n 
 0000073001 00000 n 
-0000487368 00000 n 
+0000487625 00000 n 
 0000004392 00000 n 
 0000004455 00000 n 
 0000073127 00000 n 
-0000487275 00000 n 
+0000487532 00000 n 
 0000004509 00000 n 
 0000004564 00000 n 
 0000076860 00000 n 
-0000487196 00000 n 
+0000487453 00000 n 
 0000004618 00000 n 
 0000004650 00000 n 
 0000076986 00000 n 
-0000487103 00000 n 
+0000487360 00000 n 
 0000004699 00000 n 
 0000004727 00000 n 
 0000077111 00000 n 
-0000487010 00000 n 
+0000487267 00000 n 
 0000004776 00000 n 
 0000004808 00000 n 
 0000077237 00000 n 
-0000486878 00000 n 
+0000487135 00000 n 
 0000004857 00000 n 
 0000004887 00000 n 
 0000080688 00000 n 
-0000486799 00000 n 
+0000487056 00000 n 
 0000004941 00000 n 
 0000004982 00000 n 
 0000080813 00000 n 
-0000486706 00000 n 
+0000486963 00000 n 
 0000005036 00000 n 
 0000005078 00000 n 
 0000080939 00000 n 
-0000486627 00000 n 
+0000486884 00000 n 
 0000005132 00000 n 
 0000005177 00000 n 
 0000088379 00000 n 
-0000486509 00000 n 
+0000486766 00000 n 
 0000005226 00000 n 
 0000005272 00000 n 
 0000088505 00000 n 
-0000486430 00000 n 
+0000486687 00000 n 
 0000005326 00000 n 
 0000005386 00000 n 
 0000088631 00000 n 
-0000486351 00000 n 
+0000486608 00000 n 
 0000005440 00000 n 
 0000005509 00000 n 
 0000091066 00000 n 
-0000486218 00000 n 
+0000486475 00000 n 
 0000005556 00000 n 
 0000005609 00000 n 
 0000091192 00000 n 
-0000486139 00000 n 
+0000486396 00000 n 
 0000005658 00000 n 
 0000005714 00000 n 
 0000091318 00000 n 
-0000486060 00000 n 
+0000486317 00000 n 
 0000005763 00000 n 
 0000005812 00000 n 
 0000095439 00000 n 
-0000485927 00000 n 
+0000486184 00000 n 
 0000005859 00000 n 
 0000005911 00000 n 
 0000095565 00000 n 
-0000485809 00000 n 
+0000486066 00000 n 
 0000005960 00000 n 
 0000006011 00000 n 
 0000099709 00000 n 
-0000485691 00000 n 
+0000485948 00000 n 
 0000006065 00000 n 
 0000006110 00000 n 
 0000099834 00000 n 
-0000485612 00000 n 
+0000485869 00000 n 
 0000006169 00000 n 
 0000006203 00000 n 
 0000099959 00000 n 
-0000485533 00000 n 
+0000485790 00000 n 
 0000006262 00000 n 
 0000006310 00000 n 
 0000103241 00000 n 
-0000485415 00000 n 
+0000485672 00000 n 
 0000006364 00000 n 
 0000006404 00000 n 
 0000103367 00000 n 
-0000485336 00000 n 
+0000485593 00000 n 
 0000006463 00000 n 
 0000006497 00000 n 
 0000103493 00000 n 
-0000485257 00000 n 
+0000485514 00000 n 
 0000006556 00000 n 
 0000006604 00000 n 
 0000107219 00000 n 
-0000485124 00000 n 
+0000485381 00000 n 
 0000006653 00000 n 
 0000006703 00000 n 
 0000111057 00000 n 
-0000485045 00000 n 
+0000485302 00000 n 
 0000006757 00000 n 
 0000006804 00000 n 
 0000111183 00000 n 
-0000484952 00000 n 
+0000485209 00000 n 
 0000006858 00000 n 
 0000006918 00000 n 
 0000111433 00000 n 
-0000484859 00000 n 
+0000485116 00000 n 
 0000006972 00000 n 
 0000007024 00000 n 
 0000111559 00000 n 
-0000484766 00000 n 
+0000485023 00000 n 
 0000007078 00000 n 
 0000007143 00000 n 
 0000116189 00000 n 
-0000484673 00000 n 
+0000484930 00000 n 
 0000007197 00000 n 
 0000007248 00000 n 
 0000116315 00000 n 
-0000484580 00000 n 
+0000484837 00000 n 
 0000007302 00000 n 
 0000007366 00000 n 
 0000116441 00000 n 
-0000484487 00000 n 
+0000484744 00000 n 
 0000007420 00000 n 
 0000007467 00000 n 
 0000116567 00000 n 
-0000484394 00000 n 
+0000484651 00000 n 
 0000007521 00000 n 
 0000007581 00000 n 
 0000119509 00000 n 
-0000484301 00000 n 
+0000484558 00000 n 
 0000007635 00000 n 
 0000007686 00000 n 
 0000119635 00000 n 
-0000484169 00000 n 
+0000484426 00000 n 
 0000007741 00000 n 
 0000007806 00000 n 
 0000119761 00000 n 
-0000484090 00000 n 
+0000484347 00000 n 
 0000007866 00000 n 
 0000007913 00000 n 
 0000130170 00000 n 
-0000484011 00000 n 
+0000484268 00000 n 
 0000007973 00000 n 
 0000008021 00000 n 
 0000133886 00000 n 
-0000483918 00000 n 
+0000484175 00000 n 
 0000008076 00000 n 
 0000008126 00000 n 
 0000134012 00000 n 
-0000483825 00000 n 
+0000484082 00000 n 
 0000008181 00000 n 
 0000008244 00000 n 
 0000135742 00000 n 
-0000483732 00000 n 
+0000483989 00000 n 
 0000008299 00000 n 
 0000008351 00000 n 
 0000135868 00000 n 
-0000483639 00000 n 
+0000483896 00000 n 
 0000008406 00000 n 
 0000008471 00000 n 
 0000135994 00000 n 
-0000483546 00000 n 
+0000483803 00000 n 
 0000008526 00000 n 
 0000008578 00000 n 
 0000141175 00000 n 
-0000483413 00000 n 
+0000483670 00000 n 
 0000008633 00000 n 
 0000008698 00000 n 
 0000145209 00000 n 
-0000483334 00000 n 
+0000483591 00000 n 
 0000008758 00000 n 
 0000008802 00000 n 
 0000162726 00000 n 
-0000483241 00000 n 
+0000483498 00000 n 
 0000008862 00000 n 
 0000008901 00000 n 
 0000162852 00000 n 
-0000483148 00000 n 
+0000483405 00000 n 
 0000008961 00000 n 
 0000009008 00000 n 
 0000166993 00000 n 
-0000483055 00000 n 
+0000483312 00000 n 
 0000009068 00000 n 
 0000009111 00000 n 
 0000167119 00000 n 
-0000482962 00000 n 
+0000483219 00000 n 
 0000009171 00000 n 
 0000009210 00000 n 
-0000170214 00000 n 
-0000482869 00000 n 
+0000170296 00000 n 
+0000483126 00000 n 
 0000009270 00000 n 
 0000009312 00000 n 
-0000173956 00000 n 
-0000482776 00000 n 
+0000173827 00000 n 
+0000483033 00000 n 
 0000009372 00000 n 
 0000009415 00000 n 
-0000181576 00000 n 
-0000482683 00000 n 
+0000181413 00000 n 
+0000482940 00000 n 
 0000009475 00000 n 
 0000009522 00000 n 
-0000181702 00000 n 
-0000482590 00000 n 
+0000181539 00000 n 
+0000482847 00000 n 
 0000009582 00000 n 
 0000009643 00000 n 
-0000181828 00000 n 
-0000482497 00000 n 
+0000181665 00000 n 
+0000482754 00000 n 
 0000009704 00000 n 
 0000009756 00000 n 
-0000185325 00000 n 
-0000482404 00000 n 
+0000185582 00000 n 
+0000482661 00000 n 
 0000009817 00000 n 
 0000009870 00000 n 
-0000189658 00000 n 
-0000482311 00000 n 
+0000189915 00000 n 
+0000482568 00000 n 
 0000009931 00000 n 
 0000009969 00000 n 
-0000189787 00000 n 
-0000482218 00000 n 
+0000190044 00000 n 
+0000482475 00000 n 
 0000010030 00000 n 
 0000010082 00000 n 
-0000192689 00000 n 
-0000482125 00000 n 
+0000192946 00000 n 
+0000482382 00000 n 
 0000010143 00000 n 
 0000010187 00000 n 
-0000196435 00000 n 
-0000482032 00000 n 
+0000196692 00000 n 
+0000482289 00000 n 
 0000010248 00000 n 
 0000010284 00000 n 
-0000200400 00000 n 
-0000481939 00000 n 
+0000200657 00000 n 
+0000482196 00000 n 
 0000010345 00000 n 
 0000010408 00000 n 
-0000200529 00000 n 
-0000481860 00000 n 
+0000200786 00000 n 
+0000482117 00000 n 
 0000010469 00000 n 
 0000010518 00000 n 
-0000204050 00000 n 
-0000481767 00000 n 
+0000204307 00000 n 
+0000482024 00000 n 
 0000010573 00000 n 
 0000010624 00000 n 
-0000204177 00000 n 
-0000481674 00000 n 
+0000204434 00000 n 
+0000481931 00000 n 
 0000010679 00000 n 
 0000010743 00000 n 
-0000208304 00000 n 
-0000481581 00000 n 
+0000208561 00000 n 
+0000481838 00000 n 
 0000010798 00000 n 
 0000010855 00000 n 
-0000208431 00000 n 
-0000481488 00000 n 
+0000208688 00000 n 
+0000481745 00000 n 
 0000010910 00000 n 
 0000010980 00000 n 
-0000208559 00000 n 
-0000481395 00000 n 
+0000208816 00000 n 
+0000481652 00000 n 
 0000011035 00000 n 
 0000011084 00000 n 
-0000211978 00000 n 
-0000481302 00000 n 
+0000212235 00000 n 
+0000481559 00000 n 
 0000011139 00000 n 
 0000011201 00000 n 
-0000213555 00000 n 
-0000481209 00000 n 
+0000213812 00000 n 
+0000481466 00000 n 
 0000011256 00000 n 
 0000011305 00000 n 
-0000218410 00000 n 
-0000481091 00000 n 
+0000218667 00000 n 
+0000481348 00000 n 
 0000011360 00000 n 
 0000011422 00000 n 
-0000218539 00000 n 
-0000481012 00000 n 
+0000218796 00000 n 
+0000481269 00000 n 
 0000011482 00000 n 
 0000011521 00000 n 
-0000223490 00000 n 
-0000480919 00000 n 
+0000223747 00000 n 
+0000481176 00000 n 
 0000011581 00000 n 
 0000011615 00000 n 
-0000223619 00000 n 
-0000480826 00000 n 
+0000223876 00000 n 
+0000481083 00000 n 
 0000011675 00000 n 
 0000011716 00000 n 
-0000233806 00000 n 
-0000480747 00000 n 
+0000234063 00000 n 
+0000481004 00000 n 
 0000011776 00000 n 
 0000011828 00000 n 
-0000237977 00000 n 
-0000480629 00000 n 
+0000238234 00000 n 
+0000480886 00000 n 
 0000011877 00000 n 
 0000011910 00000 n 
-0000238106 00000 n 
-0000480511 00000 n 
+0000238363 00000 n 
+0000480768 00000 n 
 0000011964 00000 n 
 0000012036 00000 n 
-0000238234 00000 n 
-0000480432 00000 n 
+0000238491 00000 n 
+0000480689 00000 n 
 0000012095 00000 n 
 0000012139 00000 n 
-0000245968 00000 n 
-0000480353 00000 n 
+0000246225 00000 n 
+0000480610 00000 n 
 0000012198 00000 n 
 0000012251 00000 n 
-0000249552 00000 n 
-0000480260 00000 n 
+0000249809 00000 n 
+0000480517 00000 n 
 0000012305 00000 n 
 0000012355 00000 n 
-0000252912 00000 n 
-0000480167 00000 n 
+0000253169 00000 n 
+0000480424 00000 n 
 0000012409 00000 n 
 0000012447 00000 n 
-0000253170 00000 n 
-0000480074 00000 n 
+0000253427 00000 n 
+0000480331 00000 n 
 0000012501 00000 n 
 0000012550 00000 n 
-0000253428 00000 n 
-0000479942 00000 n 
+0000253685 00000 n 
+0000480199 00000 n 
 0000012604 00000 n 
 0000012656 00000 n 
-0000253557 00000 n 
-0000479863 00000 n 
+0000253814 00000 n 
+0000480120 00000 n 
 0000012715 00000 n 
 0000012767 00000 n 
-0000256438 00000 n 
-0000479770 00000 n 
+0000256695 00000 n 
+0000480027 00000 n 
 0000012826 00000 n 
 0000012879 00000 n 
-0000256567 00000 n 
-0000479691 00000 n 
+0000256824 00000 n 
+0000479948 00000 n 
 0000012938 00000 n 
 0000012987 00000 n 
-0000256696 00000 n 
-0000479612 00000 n 
+0000256953 00000 n 
+0000479869 00000 n 
 0000013041 00000 n 
 0000013121 00000 n 
-0000262565 00000 n 
-0000479479 00000 n 
+0000262822 00000 n 
+0000479736 00000 n 
 0000013168 00000 n 
 0000013220 00000 n 
-0000262694 00000 n 
-0000479400 00000 n 
+0000262951 00000 n 
+0000479657 00000 n 
 0000013269 00000 n 
 0000013313 00000 n 
-0000266427 00000 n 
-0000479268 00000 n 
+0000266684 00000 n 
+0000479525 00000 n 
 0000013362 00000 n 
 0000013424 00000 n 
-0000266556 00000 n 
-0000479189 00000 n 
+0000266813 00000 n 
+0000479446 00000 n 
 0000013478 00000 n 
 0000013526 00000 n 
-0000266685 00000 n 
-0000479110 00000 n 
+0000266942 00000 n 
+0000479367 00000 n 
 0000013580 00000 n 
 0000013631 00000 n 
-0000266814 00000 n 
-0000479031 00000 n 
+0000267071 00000 n 
+0000479288 00000 n 
 0000013680 00000 n 
 0000013727 00000 n 
-0000269731 00000 n 
-0000478898 00000 n 
+0000269988 00000 n 
+0000479155 00000 n 
 0000013774 00000 n 
 0000013811 00000 n 
-0000269860 00000 n 
-0000478780 00000 n 
+0000270117 00000 n 
+0000479037 00000 n 
 0000013860 00000 n 
 0000013899 00000 n 
-0000269989 00000 n 
-0000478715 00000 n 
+0000270246 00000 n 
+0000478972 00000 n 
 0000013953 00000 n 
 0000014031 00000 n 
-0000270118 00000 n 
-0000478622 00000 n 
+0000270375 00000 n 
+0000478879 00000 n 
 0000014080 00000 n 
 0000014147 00000 n 
-0000270247 00000 n 
-0000478543 00000 n 
+0000270504 00000 n 
+0000478800 00000 n 
 0000014196 00000 n 
 0000014241 00000 n 
-0000273741 00000 n 
-0000478424 00000 n 
+0000273998 00000 n 
+0000478681 00000 n 
 0000014289 00000 n 
 0000014321 00000 n 
-0000273870 00000 n 
-0000478306 00000 n 
+0000274127 00000 n 
+0000478563 00000 n 
 0000014370 00000 n 
 0000014409 00000 n 
-0000273999 00000 n 
-0000478241 00000 n 
+0000274256 00000 n 
+0000478498 00000 n 
 0000014463 00000 n 
 0000014524 00000 n 
-0000277498 00000 n 
-0000478109 00000 n 
+0000277755 00000 n 
+0000478366 00000 n 
 0000014573 00000 n 
 0000014630 00000 n 
-0000277627 00000 n 
-0000478044 00000 n 
+0000277884 00000 n 
+0000478301 00000 n 
 0000014684 00000 n 
 0000014733 00000 n 
-0000281814 00000 n 
-0000477926 00000 n 
+0000282071 00000 n 
+0000478183 00000 n 
 0000014782 00000 n 
 0000014844 00000 n 
-0000281943 00000 n 
-0000477847 00000 n 
+0000282200 00000 n 
+0000478104 00000 n 
 0000014898 00000 n 
 0000014953 00000 n 
-0000292558 00000 n 
-0000477754 00000 n 
+0000292815 00000 n 
+0000478011 00000 n 
 0000015007 00000 n 
 0000015048 00000 n 
-0000292687 00000 n 
-0000477675 00000 n 
+0000292944 00000 n 
+0000477932 00000 n 
 0000015102 00000 n 
 0000015154 00000 n 
 0000015507 00000 n 
@@ -8254,20 +8234,20 @@ xref
 0000015207 00000 n 
 0000015629 00000 n 
 0000015692 00000 n 
-0000474516 00000 n 
-0000448852 00000 n 
-0000474342 00000 n 
-0000447664 00000 n 
-0000421504 00000 n 
-0000447490 00000 n 
-0000475521 00000 n 
+0000474773 00000 n 
+0000449109 00000 n 
+0000474599 00000 n 
+0000447921 00000 n 
+0000421761 00000 n 
+0000447747 00000 n 
+0000475778 00000 n 
 0000016419 00000 n 
 0000016234 00000 n 
 0000015840 00000 n 
 0000016356 00000 n 
-0000420819 00000 n 
-0000418674 00000 n 
-0000420655 00000 n 
+0000421076 00000 n 
+0000418932 00000 n 
+0000420912 00000 n 
 0000019594 00000 n 
 0000018784 00000 n 
 0000016504 00000 n 
@@ -8275,25 +8255,25 @@ xref
 0000019030 00000 n 
 0000019155 00000 n 
 0000019280 00000 n 
-0000417820 00000 n 
-0000397462 00000 n 
-0000417646 00000 n 
+0000418078 00000 n 
+0000397720 00000 n 
+0000417904 00000 n 
 0000019405 00000 n 
 0000019468 00000 n 
 0000019531 00000 n 
-0000396513 00000 n 
-0000376761 00000 n 
-0000396340 00000 n 
-0000376034 00000 n 
-0000359650 00000 n 
-0000375861 00000 n 
+0000396771 00000 n 
+0000377019 00000 n 
+0000396598 00000 n 
+0000376292 00000 n 
+0000359908 00000 n 
+0000376119 00000 n 
 0000024132 00000 n 
 0000022950 00000 n 
 0000019718 00000 n 
 0000023444 00000 n 
-0000359115 00000 n 
-0000342198 00000 n 
-0000358931 00000 n 
+0000359373 00000 n 
+0000342456 00000 n 
+0000359189 00000 n 
 0000023507 00000 n 
 0000023570 00000 n 
 0000023695 00000 n 
@@ -8302,8 +8282,8 @@ xref
 0000023100 00000 n 
 0000023293 00000 n 
 0000024070 00000 n 
-0000238170 00000 n 
-0000282007 00000 n 
+0000238427 00000 n 
+0000282264 00000 n 
 0000028818 00000 n 
 0000027783 00000 n 
 0000024256 00000 n 
@@ -8331,7 +8311,7 @@ xref
 0000034556 00000 n 
 0000034678 00000 n 
 0000034803 00000 n 
-0000475639 00000 n 
+0000475896 00000 n 
 0000035902 00000 n 
 0000035592 00000 n 
 0000034951 00000 n 
@@ -8355,28 +8335,28 @@ xref
 0000040239 00000 n 
 0000040775 00000 n 
 0000040901 00000 n 
-0000192753 00000 n 
+0000193010 00000 n 
 0000044275 00000 n 
 0000043838 00000 n 
 0000041075 00000 n 
 0000043960 00000 n 
-0000341671 00000 n 
-0000332362 00000 n 
-0000341494 00000 n 
+0000341929 00000 n 
+0000332620 00000 n 
+0000341752 00000 n 
 0000044212 00000 n 
 0000047975 00000 n 
 0000047790 00000 n 
 0000044399 00000 n 
 0000047912 00000 n 
-0000331919 00000 n 
-0000325120 00000 n 
-0000331742 00000 n 
+0000332177 00000 n 
+0000325378 00000 n 
+0000332000 00000 n 
 0000052340 00000 n 
 0000051949 00000 n 
 0000048138 00000 n 
 0000052277 00000 n 
 0000052091 00000 n 
-0000475757 00000 n 
+0000476014 00000 n 
 0000111622 00000 n 
 0000054540 00000 n 
 0000054103 00000 n 
@@ -8396,7 +8376,7 @@ xref
 0000057875 00000 n 
 0000058001 00000 n 
 0000145272 00000 n 
-0000174019 00000 n 
+0000173890 00000 n 
 0000062635 00000 n 
 0000061718 00000 n 
 0000058162 00000 n 
@@ -8406,7 +8386,7 @@ xref
 0000062033 00000 n 
 0000062446 00000 n 
 0000062572 00000 n 
-0000282786 00000 n 
+0000283043 00000 n 
 0000065550 00000 n 
 0000065178 00000 n 
 0000062785 00000 n 
@@ -8424,7 +8404,7 @@ xref
 0000069559 00000 n 
 0000069684 00000 n 
 0000069810 00000 n 
-0000475875 00000 n 
+0000476132 00000 n 
 0000073253 00000 n 
 0000072376 00000 n 
 0000070010 00000 n 
@@ -8434,7 +8414,7 @@ xref
 0000073064 00000 n 
 0000073190 00000 n 
 0000072518 00000 n 
-0000233870 00000 n 
+0000234127 00000 n 
 0000077362 00000 n 
 0000076675 00000 n 
 0000073390 00000 n 
@@ -8455,9 +8435,9 @@ xref
 0000083942 00000 n 
 0000081187 00000 n 
 0000085700 00000 n 
-0000324285 00000 n 
-0000315425 00000 n 
-0000324113 00000 n 
+0000324543 00000 n 
+0000315683 00000 n 
+0000324371 00000 n 
 0000085532 00000 n 
 0000085589 00000 n 
 0000085678 00000 n 
@@ -8469,7 +8449,7 @@ xref
 0000088157 00000 n 
 0000088568 00000 n 
 0000088694 00000 n 
-0000277691 00000 n 
+0000277948 00000 n 
 0000091444 00000 n 
 0000090881 00000 n 
 0000088881 00000 n 
@@ -8477,7 +8457,7 @@ xref
 0000091129 00000 n 
 0000091255 00000 n 
 0000091381 00000 n 
-0000475993 00000 n 
+0000476250 00000 n 
 0000091876 00000 n 
 0000091691 00000 n 
 0000091542 00000 n 
@@ -8522,7 +8502,7 @@ xref
 0000111307 00000 n 
 0000111370 00000 n 
 0000111496 00000 n 
-0000476111 00000 n 
+0000476368 00000 n 
 0000116693 00000 n 
 0000115127 00000 n 
 0000111796 00000 n 
@@ -8536,7 +8516,7 @@ xref
 0000115609 00000 n 
 0000115760 00000 n 
 0000115944 00000 n 
-0000293201 00000 n 
+0000293458 00000 n 
 0000119887 00000 n 
 0000119324 00000 n 
 0000116830 00000 n 
@@ -8568,7 +8548,7 @@ xref
 0000134075 00000 n 
 0000133520 00000 n 
 0000133671 00000 n 
-0000476229 00000 n 
+0000476486 00000 n 
 0000136120 00000 n 
 0000135557 00000 n 
 0000134249 00000 n 
@@ -8590,7 +8570,7 @@ xref
 0000141425 00000 n 
 0000145146 00000 n 
 0000144991 00000 n 
-0000200593 00000 n 
+0000200850 00000 n 
 0000149374 00000 n 
 0000149063 00000 n 
 0000145458 00000 n 
@@ -8605,8 +8585,8 @@ xref
 0000153392 00000 n 
 0000153548 00000 n 
 0000153730 00000 n 
-0000476347 00000 n 
-0000204241 00000 n 
+0000476604 00000 n 
+0000204498 00000 n 
 0000158684 00000 n 
 0000158103 00000 n 
 0000154129 00000 n 
@@ -8620,7 +8600,7 @@ xref
 0000162789 00000 n 
 0000162495 00000 n 
 0000162915 00000 n 
-0000213619 00000 n 
+0000213876 00000 n 
 0000167245 00000 n 
 0000166445 00000 n 
 0000163102 00000 n 
@@ -8629,412 +8609,412 @@ xref
 0000166595 00000 n 
 0000166760 00000 n 
 0000167182 00000 n 
-0000266877 00000 n 
-0000170339 00000 n 
-0000170029 00000 n 
+0000267134 00000 n 
+0000170422 00000 n 
+0000170111 00000 n 
 0000167369 00000 n 
-0000170151 00000 n 
-0000170276 00000 n 
-0000314899 00000 n 
-0000307009 00000 n 
-0000314726 00000 n 
-0000174082 00000 n 
-0000173771 00000 n 
-0000170504 00000 n 
-0000173893 00000 n 
-0000177641 00000 n 
-0000177456 00000 n 
-0000174221 00000 n 
-0000177578 00000 n 
-0000476465 00000 n 
-0000181954 00000 n 
-0000181036 00000 n 
-0000177806 00000 n 
-0000181513 00000 n 
-0000181639 00000 n 
-0000181765 00000 n 
-0000181187 00000 n 
-0000181891 00000 n 
-0000181360 00000 n 
-0000185454 00000 n 
-0000185135 00000 n 
-0000182106 00000 n 
-0000185260 00000 n 
-0000185389 00000 n 
-0000189915 00000 n 
-0000189121 00000 n 
-0000185607 00000 n 
-0000189593 00000 n 
-0000189722 00000 n 
+0000170233 00000 n 
+0000170359 00000 n 
+0000315157 00000 n 
+0000307266 00000 n 
+0000314984 00000 n 
+0000173953 00000 n 
+0000173642 00000 n 
+0000170587 00000 n 
+0000173764 00000 n 
+0000177876 00000 n 
+0000177691 00000 n 
+0000174105 00000 n 
+0000177813 00000 n 
+0000476722 00000 n 
+0000181791 00000 n 
+0000181035 00000 n 
+0000178041 00000 n 
+0000181350 00000 n 
+0000181476 00000 n 
+0000181602 00000 n 
+0000181177 00000 n 
+0000181728 00000 n 
+0000185711 00000 n 
+0000185216 00000 n 
+0000181943 00000 n 
+0000185517 00000 n 
+0000185362 00000 n 
+0000185646 00000 n 
+0000190172 00000 n 
+0000189378 00000 n 
+0000185864 00000 n 
 0000189850 00000 n 
-0000189276 00000 n 
-0000189438 00000 n 
-0000192947 00000 n 
-0000192309 00000 n 
-0000190081 00000 n 
-0000192624 00000 n 
-0000192455 00000 n 
-0000192817 00000 n 
-0000192882 00000 n 
-0000196563 00000 n 
-0000196062 00000 n 
-0000193059 00000 n 
-0000196370 00000 n 
-0000196499 00000 n 
-0000196208 00000 n 
-0000200787 00000 n 
-0000200020 00000 n 
-0000196742 00000 n 
-0000200335 00000 n 
-0000200464 00000 n 
-0000200167 00000 n 
-0000200657 00000 n 
-0000200722 00000 n 
-0000476587 00000 n 
+0000189979 00000 n 
+0000190107 00000 n 
+0000189533 00000 n 
+0000189695 00000 n 
+0000193204 00000 n 
+0000192566 00000 n 
+0000190338 00000 n 
+0000192881 00000 n 
+0000192712 00000 n 
+0000193074 00000 n 
+0000193139 00000 n 
+0000196820 00000 n 
+0000196319 00000 n 
+0000193316 00000 n 
+0000196627 00000 n 
+0000196756 00000 n 
+0000196465 00000 n 
+0000201044 00000 n 
+0000200277 00000 n 
+0000196999 00000 n 
+0000200592 00000 n 
+0000200721 00000 n 
+0000200424 00000 n 
+0000200914 00000 n 
+0000200979 00000 n 
+0000476844 00000 n 
+0000208880 00000 n 
+0000204561 00000 n 
+0000204116 00000 n 
+0000201156 00000 n 
+0000204242 00000 n 
+0000204371 00000 n 
+0000208945 00000 n 
+0000207865 00000 n 
+0000204673 00000 n 
+0000208496 00000 n 
+0000208030 00000 n 
+0000208181 00000 n 
 0000208623 00000 n 
-0000204304 00000 n 
-0000203859 00000 n 
-0000200899 00000 n 
-0000203985 00000 n 
-0000204114 00000 n 
-0000208688 00000 n 
-0000207608 00000 n 
-0000204416 00000 n 
-0000208239 00000 n 
-0000207773 00000 n 
-0000207924 00000 n 
-0000208366 00000 n 
-0000208494 00000 n 
-0000208085 00000 n 
-0000212106 00000 n 
-0000211787 00000 n 
-0000208800 00000 n 
-0000211913 00000 n 
-0000212042 00000 n 
-0000213683 00000 n 
-0000213364 00000 n 
-0000212218 00000 n 
-0000213490 00000 n 
-0000215059 00000 n 
-0000214868 00000 n 
-0000213795 00000 n 
-0000214994 00000 n 
-0000218796 00000 n 
-0000218219 00000 n 
-0000215158 00000 n 
-0000218345 00000 n 
-0000218474 00000 n 
-0000218603 00000 n 
-0000218668 00000 n 
-0000218733 00000 n 
-0000476712 00000 n 
-0000223748 00000 n 
-0000222246 00000 n 
-0000218908 00000 n 
-0000223425 00000 n 
-0000223554 00000 n 
-0000223683 00000 n 
-0000222438 00000 n 
-0000222600 00000 n 
-0000222762 00000 n 
-0000222924 00000 n 
-0000223095 00000 n 
-0000223265 00000 n 
-0000228568 00000 n 
-0000227339 00000 n 
-0000223860 00000 n 
-0000228503 00000 n 
-0000227531 00000 n 
-0000227694 00000 n 
-0000227856 00000 n 
-0000228018 00000 n 
-0000228178 00000 n 
-0000228340 00000 n 
-0000233934 00000 n 
-0000231575 00000 n 
-0000228693 00000 n 
-0000233741 00000 n 
-0000231821 00000 n 
-0000231974 00000 n 
-0000232136 00000 n 
-0000232298 00000 n 
-0000232460 00000 n 
-0000232622 00000 n 
-0000232784 00000 n 
-0000232946 00000 n 
-0000233108 00000 n 
-0000233262 00000 n 
-0000233423 00000 n 
-0000233578 00000 n 
-0000238491 00000 n 
-0000237294 00000 n 
-0000234059 00000 n 
-0000237782 00000 n 
-0000237847 00000 n 
-0000237912 00000 n 
-0000238041 00000 n 
+0000208751 00000 n 
+0000208342 00000 n 
+0000212363 00000 n 
+0000212044 00000 n 
+0000209057 00000 n 
+0000212170 00000 n 
+0000212299 00000 n 
+0000213940 00000 n 
+0000213621 00000 n 
+0000212475 00000 n 
+0000213747 00000 n 
+0000215316 00000 n 
+0000215125 00000 n 
+0000214052 00000 n 
+0000215251 00000 n 
+0000219053 00000 n 
+0000218476 00000 n 
+0000215415 00000 n 
+0000218602 00000 n 
+0000218731 00000 n 
+0000218860 00000 n 
+0000218925 00000 n 
+0000218990 00000 n 
+0000476969 00000 n 
+0000224005 00000 n 
+0000222503 00000 n 
+0000219165 00000 n 
+0000223682 00000 n 
+0000223811 00000 n 
+0000223940 00000 n 
+0000222695 00000 n 
+0000222857 00000 n 
+0000223019 00000 n 
+0000223181 00000 n 
+0000223352 00000 n 
+0000223522 00000 n 
+0000228825 00000 n 
+0000227596 00000 n 
+0000224117 00000 n 
+0000228760 00000 n 
+0000227788 00000 n 
+0000227951 00000 n 
+0000228113 00000 n 
+0000228275 00000 n 
+0000228435 00000 n 
+0000228597 00000 n 
+0000234191 00000 n 
+0000231832 00000 n 
+0000228950 00000 n 
+0000233998 00000 n 
+0000232078 00000 n 
+0000232231 00000 n 
+0000232393 00000 n 
+0000232555 00000 n 
+0000232717 00000 n 
+0000232879 00000 n 
+0000233041 00000 n 
+0000233203 00000 n 
+0000233365 00000 n 
+0000233519 00000 n 
+0000233680 00000 n 
+0000233835 00000 n 
+0000238748 00000 n 
+0000237551 00000 n 
+0000234316 00000 n 
+0000238039 00000 n 
+0000238104 00000 n 
+0000238169 00000 n 
 0000238298 00000 n 
-0000237450 00000 n 
-0000237620 00000 n 
-0000238363 00000 n 
-0000238427 00000 n 
-0000242086 00000 n 
-0000241765 00000 n 
-0000238616 00000 n 
-0000241891 00000 n 
-0000241956 00000 n 
-0000242021 00000 n 
-0000246097 00000 n 
-0000245647 00000 n 
-0000242185 00000 n 
-0000245773 00000 n 
-0000245838 00000 n 
-0000245903 00000 n 
-0000246032 00000 n 
-0000476837 00000 n 
-0000249811 00000 n 
-0000249101 00000 n 
-0000246222 00000 n 
-0000249227 00000 n 
-0000249292 00000 n 
-0000249357 00000 n 
-0000249422 00000 n 
-0000249487 00000 n 
-0000249616 00000 n 
-0000249681 00000 n 
-0000249746 00000 n 
-0000253684 00000 n 
-0000252721 00000 n 
-0000249936 00000 n 
-0000252847 00000 n 
-0000252976 00000 n 
-0000253041 00000 n 
-0000253106 00000 n 
-0000253234 00000 n 
+0000238555 00000 n 
+0000237707 00000 n 
+0000237877 00000 n 
+0000238620 00000 n 
+0000238684 00000 n 
+0000242343 00000 n 
+0000242022 00000 n 
+0000238873 00000 n 
+0000242148 00000 n 
+0000242213 00000 n 
+0000242278 00000 n 
+0000246354 00000 n 
+0000245904 00000 n 
+0000242442 00000 n 
+0000246030 00000 n 
+0000246095 00000 n 
+0000246160 00000 n 
+0000246289 00000 n 
+0000477094 00000 n 
+0000250068 00000 n 
+0000249358 00000 n 
+0000246479 00000 n 
+0000249484 00000 n 
+0000249549 00000 n 
+0000249614 00000 n 
+0000249679 00000 n 
+0000249744 00000 n 
+0000249873 00000 n 
+0000249938 00000 n 
+0000250003 00000 n 
+0000253941 00000 n 
+0000252978 00000 n 
+0000250193 00000 n 
+0000253104 00000 n 
+0000253233 00000 n 
 0000253298 00000 n 
 0000253363 00000 n 
-0000253492 00000 n 
+0000253491 00000 n 
+0000253555 00000 n 
 0000253620 00000 n 
-0000256825 00000 n 
-0000256247 00000 n 
-0000253876 00000 n 
-0000256373 00000 n 
-0000306654 00000 n 
-0000304656 00000 n 
-0000306489 00000 n 
-0000256502 00000 n 
-0000256631 00000 n 
-0000256760 00000 n 
-0000259788 00000 n 
-0000259467 00000 n 
-0000257018 00000 n 
-0000259593 00000 n 
-0000259658 00000 n 
-0000259723 00000 n 
-0000260241 00000 n 
-0000260050 00000 n 
-0000259900 00000 n 
-0000260176 00000 n 
-0000262822 00000 n 
-0000261914 00000 n 
-0000260283 00000 n 
-0000262500 00000 n 
-0000262629 00000 n 
-0000262758 00000 n 
-0000262070 00000 n 
-0000262285 00000 n 
-0000476962 00000 n 
-0000266941 00000 n 
-0000266236 00000 n 
-0000262948 00000 n 
-0000266362 00000 n 
-0000304335 00000 n 
-0000295122 00000 n 
-0000304149 00000 n 
-0000266491 00000 n 
-0000266620 00000 n 
-0000266749 00000 n 
-0000270375 00000 n 
-0000269149 00000 n 
-0000267106 00000 n 
-0000269666 00000 n 
-0000269795 00000 n 
-0000269924 00000 n 
-0000270053 00000 n 
-0000270182 00000 n 
-0000270311 00000 n 
-0000269305 00000 n 
-0000269477 00000 n 
-0000270829 00000 n 
-0000270638 00000 n 
-0000270488 00000 n 
-0000270764 00000 n 
-0000274128 00000 n 
-0000273550 00000 n 
-0000270871 00000 n 
-0000273676 00000 n 
-0000273805 00000 n 
-0000273934 00000 n 
-0000274063 00000 n 
-0000278014 00000 n 
-0000277307 00000 n 
-0000274214 00000 n 
-0000277433 00000 n 
-0000277562 00000 n 
-0000277755 00000 n 
-0000277820 00000 n 
-0000277884 00000 n 
-0000277949 00000 n 
-0000284668 00000 n 
-0000280868 00000 n 
-0000278140 00000 n 
-0000281749 00000 n 
-0000281878 00000 n 
-0000281042 00000 n 
-0000281221 00000 n 
-0000281398 00000 n 
-0000281573 00000 n 
-0000282071 00000 n 
-0000282136 00000 n 
-0000282201 00000 n 
-0000282266 00000 n 
-0000282331 00000 n 
-0000282396 00000 n 
-0000282461 00000 n 
-0000282526 00000 n 
-0000282591 00000 n 
-0000282656 00000 n 
-0000282721 00000 n 
-0000282850 00000 n 
-0000282915 00000 n 
-0000282980 00000 n 
-0000283045 00000 n 
-0000283110 00000 n 
-0000283175 00000 n 
-0000283240 00000 n 
-0000283305 00000 n 
-0000283370 00000 n 
-0000283435 00000 n 
-0000283500 00000 n 
-0000283565 00000 n 
-0000283630 00000 n 
-0000283695 00000 n 
-0000283760 00000 n 
-0000283825 00000 n 
-0000283890 00000 n 
-0000283955 00000 n 
-0000284020 00000 n 
-0000284085 00000 n 
-0000284150 00000 n 
-0000284215 00000 n 
-0000284280 00000 n 
-0000284345 00000 n 
-0000284410 00000 n 
-0000284475 00000 n 
-0000284540 00000 n 
-0000284604 00000 n 
-0000477087 00000 n 
-0000291179 00000 n 
-0000287484 00000 n 
-0000284820 00000 n 
-0000287610 00000 n 
-0000287675 00000 n 
-0000287740 00000 n 
-0000287805 00000 n 
-0000287870 00000 n 
-0000287935 00000 n 
-0000288000 00000 n 
-0000288065 00000 n 
-0000288129 00000 n 
-0000288194 00000 n 
-0000288259 00000 n 
-0000288324 00000 n 
-0000288389 00000 n 
-0000288454 00000 n 
-0000288519 00000 n 
-0000288584 00000 n 
-0000288648 00000 n 
-0000288713 00000 n 
-0000288778 00000 n 
-0000288843 00000 n 
-0000288908 00000 n 
-0000288973 00000 n 
-0000289038 00000 n 
-0000289103 00000 n 
-0000289168 00000 n 
-0000289233 00000 n 
-0000289298 00000 n 
-0000289363 00000 n 
-0000289428 00000 n 
-0000289493 00000 n 
-0000289558 00000 n 
-0000289623 00000 n 
-0000289688 00000 n 
-0000289753 00000 n 
-0000289818 00000 n 
-0000289883 00000 n 
-0000289948 00000 n 
-0000290013 00000 n 
-0000290078 00000 n 
-0000290143 00000 n 
-0000290208 00000 n 
-0000290273 00000 n 
-0000290338 00000 n 
-0000290403 00000 n 
-0000290468 00000 n 
-0000290533 00000 n 
-0000290598 00000 n 
-0000290663 00000 n 
-0000290728 00000 n 
-0000290793 00000 n 
-0000290858 00000 n 
-0000290923 00000 n 
-0000290987 00000 n 
-0000291051 00000 n 
+0000253749 00000 n 
+0000253877 00000 n 
+0000257082 00000 n 
+0000256504 00000 n 
+0000254133 00000 n 
+0000256630 00000 n 
+0000306911 00000 n 
+0000304913 00000 n 
+0000306746 00000 n 
+0000256759 00000 n 
+0000256888 00000 n 
+0000257017 00000 n 
+0000260045 00000 n 
+0000259724 00000 n 
+0000257275 00000 n 
+0000259850 00000 n 
+0000259915 00000 n 
+0000259980 00000 n 
+0000260498 00000 n 
+0000260307 00000 n 
+0000260157 00000 n 
+0000260433 00000 n 
+0000263079 00000 n 
+0000262171 00000 n 
+0000260540 00000 n 
+0000262757 00000 n 
+0000262886 00000 n 
+0000263015 00000 n 
+0000262327 00000 n 
+0000262542 00000 n 
+0000477219 00000 n 
+0000267198 00000 n 
+0000266493 00000 n 
+0000263205 00000 n 
+0000266619 00000 n 
+0000304592 00000 n 
+0000295379 00000 n 
+0000304406 00000 n 
+0000266748 00000 n 
+0000266877 00000 n 
+0000267006 00000 n 
+0000270632 00000 n 
+0000269406 00000 n 
+0000267363 00000 n 
+0000269923 00000 n 
+0000270052 00000 n 
+0000270181 00000 n 
+0000270310 00000 n 
+0000270439 00000 n 
+0000270568 00000 n 
+0000269562 00000 n 
+0000269734 00000 n 
+0000271086 00000 n 
+0000270895 00000 n 
+0000270745 00000 n 
+0000271021 00000 n 
+0000274385 00000 n 
+0000273807 00000 n 
+0000271128 00000 n 
+0000273933 00000 n 
+0000274062 00000 n 
+0000274191 00000 n 
+0000274320 00000 n 
+0000278271 00000 n 
+0000277564 00000 n 
+0000274471 00000 n 
+0000277690 00000 n 
+0000277819 00000 n 
+0000278012 00000 n 
+0000278077 00000 n 
+0000278141 00000 n 
+0000278206 00000 n 
+0000284925 00000 n 
+0000281125 00000 n 
+0000278397 00000 n 
+0000282006 00000 n 
+0000282135 00000 n 
+0000281299 00000 n 
+0000281478 00000 n 
+0000281655 00000 n 
+0000281830 00000 n 
+0000282328 00000 n 
+0000282393 00000 n 
+0000282458 00000 n 
+0000282523 00000 n 
+0000282588 00000 n 
+0000282653 00000 n 
+0000282718 00000 n 
+0000282783 00000 n 
+0000282848 00000 n 
+0000282913 00000 n 
+0000282978 00000 n 
+0000283107 00000 n 
+0000283172 00000 n 
+0000283237 00000 n 
+0000283302 00000 n 
+0000283367 00000 n 
+0000283432 00000 n 
+0000283497 00000 n 
+0000283562 00000 n 
+0000283627 00000 n 
+0000283692 00000 n 
+0000283757 00000 n 
+0000283822 00000 n 
+0000283887 00000 n 
+0000283952 00000 n 
+0000284017 00000 n 
+0000284082 00000 n 
+0000284147 00000 n 
+0000284212 00000 n 
+0000284277 00000 n 
+0000284342 00000 n 
+0000284407 00000 n 
+0000284472 00000 n 
+0000284537 00000 n 
+0000284602 00000 n 
+0000284667 00000 n 
+0000284732 00000 n 
+0000284797 00000 n 
+0000284861 00000 n 
+0000477344 00000 n 
+0000291436 00000 n 
+0000287741 00000 n 
+0000285077 00000 n 
+0000287867 00000 n 
+0000287932 00000 n 
+0000287997 00000 n 
+0000288062 00000 n 
+0000288127 00000 n 
+0000288192 00000 n 
+0000288257 00000 n 
+0000288322 00000 n 
+0000288386 00000 n 
+0000288451 00000 n 
+0000288516 00000 n 
+0000288581 00000 n 
+0000288646 00000 n 
+0000288711 00000 n 
+0000288776 00000 n 
+0000288841 00000 n 
+0000288905 00000 n 
+0000288970 00000 n 
+0000289035 00000 n 
+0000289100 00000 n 
+0000289165 00000 n 
+0000289230 00000 n 
+0000289295 00000 n 
+0000289360 00000 n 
+0000289425 00000 n 
+0000289490 00000 n 
+0000289555 00000 n 
+0000289620 00000 n 
+0000289685 00000 n 
+0000289750 00000 n 
+0000289815 00000 n 
+0000289880 00000 n 
+0000289945 00000 n 
+0000290010 00000 n 
+0000290075 00000 n 
+0000290140 00000 n 
+0000290205 00000 n 
+0000290270 00000 n 
+0000290335 00000 n 
+0000290400 00000 n 
+0000290465 00000 n 
+0000290530 00000 n 
+0000290595 00000 n 
+0000290660 00000 n 
+0000290725 00000 n 
+0000290790 00000 n 
+0000290855 00000 n 
+0000290920 00000 n 
+0000290985 00000 n 
+0000291050 00000 n 
 0000291115 00000 n 
-0000293076 00000 n 
-0000292367 00000 n 
-0000291291 00000 n 
-0000292493 00000 n 
-0000292622 00000 n 
-0000292751 00000 n 
-0000292816 00000 n 
-0000292881 00000 n 
-0000292946 00000 n 
-0000293011 00000 n 
-0000293233 00000 n 
-0000304577 00000 n 
-0000306901 00000 n 
-0000306870 00000 n 
-0000315174 00000 n 
-0000324690 00000 n 
-0000332161 00000 n 
-0000341957 00000 n 
-0000359455 00000 n 
-0000376442 00000 n 
-0000397081 00000 n 
-0000418224 00000 n 
-0000421306 00000 n 
-0000421076 00000 n 
-0000448225 00000 n 
-0000475035 00000 n 
-0000477185 00000 n 
-0000477305 00000 n 
-0000477428 00000 n 
-0000477517 00000 n 
-0000477599 00000 n 
-0000491574 00000 n 
-0000503622 00000 n 
-0000503663 00000 n 
-0000503703 00000 n 
-0000503837 00000 n 
+0000291180 00000 n 
+0000291244 00000 n 
+0000291308 00000 n 
+0000291372 00000 n 
+0000293333 00000 n 
+0000292624 00000 n 
+0000291548 00000 n 
+0000292750 00000 n 
+0000292879 00000 n 
+0000293008 00000 n 
+0000293073 00000 n 
+0000293138 00000 n 
+0000293203 00000 n 
+0000293268 00000 n 
+0000293490 00000 n 
+0000304834 00000 n 
+0000307158 00000 n 
+0000307127 00000 n 
+0000315432 00000 n 
+0000324948 00000 n 
+0000332419 00000 n 
+0000342215 00000 n 
+0000359713 00000 n 
+0000376700 00000 n 
+0000397339 00000 n 
+0000418482 00000 n 
+0000421563 00000 n 
+0000421333 00000 n 
+0000448482 00000 n 
+0000475292 00000 n 
+0000477442 00000 n 
+0000477562 00000 n 
+0000477685 00000 n 
+0000477774 00000 n 
+0000477856 00000 n 
+0000491831 00000 n 
+0000503879 00000 n 
+0000503920 00000 n 
+0000503960 00000 n 
+0000504094 00000 n 
 trailer
 <<
 /Size 1373
 /Root 1371 0 R
 /Info 1372 0 R
-/ID [ ]
+/ID [<01CCFD1E5FBF13DF94A8F939D2FB9838> <01CCFD1E5FBF13DF94A8F939D2FB9838>]
 >>
 startxref
-504095
+504352
 %%EOF
diff --git a/lib/dns/api b/lib/dns/api
index 520c3c3a52d3c..1b3fb8d5a269c 100644
--- a/lib/dns/api
+++ b/lib/dns/api
@@ -1,3 +1,3 @@
-LIBINTERFACE = 24
-LIBREVISION = 2
-LIBAGE = 2
+LIBINTERFACE = 25
+LIBREVISION = 0
+LIBAGE = 0
diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c
index 869fd7bba01c5..207432d5f357a 100644
--- a/lib/dns/dispatch.c
+++ b/lib/dns/dispatch.c
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dispatch.c,v 1.101.2.6.2.21 2007/08/28 07:19:13 tbox Exp $ */
+/* $Id: dispatch.c,v 1.101.2.6.2.21.4.1 2008/05/22 21:11:15 each Exp $ */
 
 #include 
 
@@ -27,6 +27,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -43,25 +44,22 @@
 
 typedef ISC_LIST(dns_dispentry_t)	dns_displist_t;
 
-typedef struct dns_nsid {
-	isc_uint16_t	nsid_state;
-	isc_uint16_t	*nsid_vtable;
-	isc_uint16_t	*nsid_pool;
-	isc_uint16_t	nsid_a1, nsid_a2, nsid_a3;
-	isc_uint16_t	nsid_c1, nsid_c2, nsid_c3;
-	isc_uint16_t	nsid_state2;
-	isc_boolean_t	nsid_usepool;
-} dns_nsid_t;
-
 typedef struct dns_qid {
 	unsigned int	magic;
 	unsigned int	qid_nbuckets;	/* hash table size */
 	unsigned int	qid_increment;	/* id increment on collision */
 	isc_mutex_t	lock;
-	dns_nsid_t	nsid;
 	dns_displist_t	*qid_table;	/* the table itself */
 } dns_qid_t;
 
+/* ARC4 Random generator state */
+typedef struct arc4ctx {
+	isc_uint8_t	i;
+	isc_uint8_t	j;
+	isc_uint8_t	s[256];
+	int		count;
+} arc4ctx_t;
+
 struct dns_dispatchmgr {
 	/* Unlocked. */
 	unsigned int			magic;
@@ -74,6 +72,10 @@ struct dns_dispatchmgr {
 	unsigned int			state;
 	ISC_LIST(dns_dispatch_t)	list;
 
+	/* Locked by arc4_lock. */
+	isc_mutex_t			arc4_lock;
+	arc4ctx_t			arc4ctx;    /*%< ARC4 context for QID */
+
 	/* locked by buffer lock */
 	dns_qid_t			*qid;
 	isc_mutex_t			buffer_lock;
@@ -100,6 +102,7 @@ struct dns_dispentry {
 	unsigned int			magic;
 	dns_dispatch_t		       *disp;
 	dns_messageid_t			id;
+	in_port_t			port;
 	unsigned int			bucket;
 	isc_sockaddr_t			host;
 	isc_task_t		       *task;
@@ -119,6 +122,7 @@ struct dns_dispatch {
 	isc_task_t	       *task;		/* internal task */
 	isc_socket_t	       *socket;		/* isc socket attached to */
 	isc_sockaddr_t		local;		/* local address */
+	in_port_t		localport;	/* local UDP port */
 	unsigned int		maxrequests;	/* max requests */
 	isc_event_t	       *ctlevent;
 
@@ -161,14 +165,14 @@ struct dns_dispatch {
  * Statics.
  */
 static dns_dispentry_t *bucket_search(dns_qid_t *, isc_sockaddr_t *,
-				      dns_messageid_t, unsigned int);
+				      dns_messageid_t, in_port_t, unsigned int);
 static isc_boolean_t destroy_disp_ok(dns_dispatch_t *);
 static void destroy_disp(isc_task_t *task, isc_event_t *event);
 static void udp_recv(isc_task_t *, isc_event_t *);
 static void tcp_recv(isc_task_t *, isc_event_t *);
 static void startrecv(dns_dispatch_t *);
-static dns_messageid_t dns_randomid(dns_nsid_t *);
-static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t);
+static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t,
+			     in_port_t);
 static void free_buffer(dns_dispatch_t *disp, void *buf, unsigned int len);
 static void *allocate_udp_buffer(dns_dispatch_t *disp);
 static inline void free_event(dns_dispatch_t *disp, dns_dispatchevent_t *ev);
@@ -188,12 +192,8 @@ static isc_result_t dispatch_createudp(dns_dispatchmgr_t *mgr,
 static isc_boolean_t destroy_mgr_ok(dns_dispatchmgr_t *mgr);
 static void destroy_mgr(dns_dispatchmgr_t **mgrp);
 static isc_result_t qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets,
-				 unsigned int increment, isc_boolean_t usepool,
-				 dns_qid_t **qidp);
+				 unsigned int increment, dns_qid_t **qidp);
 static void qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp);
-static isc_uint16_t nsid_next(dns_nsid_t *nsid);
-static isc_result_t nsid_init(isc_mem_t *mctx, dns_nsid_t *nsid, isc_boolean_t usepool);
-static void nsid_destroy(isc_mem_t *mctx, dns_nsid_t *nsid);
 
 #define LVL(x) ISC_LOG_DEBUG(x)
 
@@ -274,26 +274,152 @@ request_log(dns_dispatch_t *disp, dns_dispentry_t *resp,
 }
 
 /*
- * Return an unpredictable message ID.
+ * ARC4 random number generator obtained from OpenBSD
  */
-static dns_messageid_t
-dns_randomid(dns_nsid_t *nsid) {
-	isc_uint32_t id;
+static void
+dispatch_arc4init(arc4ctx_t *actx) {
+	int n;
+	for (n = 0; n < 256; n++)
+		actx->s[n] = n;
+	actx->i = 0;
+	actx->j = 0;
+	actx->count = 0;
+}
+
+static void
+dispatch_arc4addrandom(arc4ctx_t *actx, unsigned char *dat, int datlen) {
+	int n;
+	isc_uint8_t si;
+
+	actx->i--;
+	for (n = 0; n < 256; n++) {
+		actx->i = (actx->i + 1);
+		si = actx->s[actx->i];
+		actx->j = (actx->j + si + dat[n % datlen]);
+		actx->s[actx->i] = actx->s[actx->j];
+		actx->s[actx->j] = si;
+	}
+	actx->j = actx->i;
+}
+
+static inline isc_uint8_t
+dispatch_arc4get8(arc4ctx_t *actx) {
+	isc_uint8_t si, sj;
+
+	actx->i = (actx->i + 1);
+	si = actx->s[actx->i];
+	actx->j = (actx->j + si);
+	sj = actx->s[actx->j];
+	actx->s[actx->i] = sj;
+	actx->s[actx->j] = si;
+
+	return (actx->s[(si + sj) & 0xff]);
+}
+
+static inline isc_uint16_t
+dispatch_arc4get16(arc4ctx_t *actx) {
+	isc_uint16_t val;
+
+	val = dispatch_arc4get8(actx) << 8;
+	val |= dispatch_arc4get8(actx);
+
+	return (val);
+}
 
-	id = nsid_next(nsid);
+static void
+dispatch_arc4stir(dns_dispatchmgr_t *mgr) {
+	int i;
+	union {
+		unsigned char rnd[128];
+		isc_uint32_t rnd32[32];
+	} rnd;
+	isc_result_t result;
 
-	return ((dns_messageid_t)id);
+	if (mgr->entropy != NULL) {
+		/*
+		 * We accept any quality of random data to avoid blocking.
+		 */
+		result = isc_entropy_getdata(mgr->entropy, rnd.rnd,
+					     sizeof(rnd), NULL, 0);
+		RUNTIME_CHECK(result == ISC_R_SUCCESS);
+	} else {
+		for (i = 0; i < 32; i++)
+			isc_random_get(&rnd.rnd32[i]);
+	}
+	dispatch_arc4addrandom(&mgr->arc4ctx, rnd.rnd, sizeof(rnd.rnd));
+
+	/*
+	 * Discard early keystream, as per recommendations in:
+	 * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps
+	 */
+	for (i = 0; i < 256; i++)
+		(void)dispatch_arc4get8(&mgr->arc4ctx);
+
+	/*
+	 * Derived from OpenBSD's implementation.  The rationale is not clear,
+	 * but should be conservative enough in safety, and reasonably large
+	 * for efficiency.
+	 */
+	mgr->arc4ctx.count = 1600000;
+}
+
+static isc_uint16_t
+dispatch_arc4random(dns_dispatchmgr_t *mgr) {
+	isc_uint16_t result;
+
+	LOCK(&mgr->arc4_lock);
+	mgr->arc4ctx.count -= sizeof(isc_uint16_t);
+	if (mgr->arc4ctx.count <= 0)
+		dispatch_arc4stir(mgr);
+	result = dispatch_arc4get16(&mgr->arc4ctx);
+	UNLOCK(&mgr->arc4_lock);
+	return (result);
+}
+
+static isc_uint16_t
+dispatch_arc4uniformrandom(dns_dispatchmgr_t *mgr, isc_uint16_t upper_bound) {
+	isc_uint16_t min, r;
+	/* The caller must hold the manager lock. */
+
+	if (upper_bound < 2)
+		return (0);
+
+	/*
+	 * Ensure the range of random numbers [min, 0xffff] be a multiple of
+	 * upper_bound and contain at least a half of the 16 bit range.
+	 */
+
+	if (upper_bound > 0x8000)
+		min = 1 + ~upper_bound; /* 0x8000 - upper_bound */
+	else
+		min = (isc_uint16_t)(0x10000 % (isc_uint32_t)upper_bound);
+
+	/*
+	 * This could theoretically loop forever but each retry has
+	 * p > 0.5 (worst case, usually far better) of selecting a
+	 * number inside the range we need, so it should rarely need
+	 * to re-roll.
+	 */
+	for (;;) {
+		r = dispatch_arc4random(mgr);
+		if (r >= min)
+			break;
+	}
+
+	return (r % upper_bound);
 }
 
 /*
  * Return a hash of the destination and message id.
  */
 static isc_uint32_t
-dns_hash(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id) {
+dns_hash(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
+	 in_port_t port)
+{
 	unsigned int ret;
 
 	ret = isc_sockaddr_hash(dest, ISC_TRUE);
-	ret ^= id;
+	ret ^= (id << 16) | port;
 	ret %= qid->qid_nbuckets;
 
 	INSIST(ret < qid->qid_nbuckets);
@@ -410,7 +536,7 @@ destroy_disp(isc_task_t *task, isc_event_t *event) {
  */
 static dns_dispentry_t *
 bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
-	      unsigned int bucket)
+	      in_port_t port, unsigned int bucket)
 {
 	dns_dispentry_t *res;
 
@@ -419,8 +545,10 @@ bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
 	res = ISC_LIST_HEAD(qid->qid_table[bucket]);
 
 	while (res != NULL) {
-		if ((res->id == id) && isc_sockaddr_equal(dest, &res->host))
+		if ((res->id == id) && isc_sockaddr_equal(dest, &res->host) &&
+		    res->port == port) {
 			return (res);
+		}
 		res = ISC_LIST_NEXT(res, link);
 	}
 
@@ -622,13 +750,10 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) {
 		goto restart;
 	}
 
-	dns_dispatch_hash(&ev->timestamp, sizeof(&ev->timestamp));
-	dns_dispatch_hash(ev->region.base, ev->region.length);
-
 	/* response */
-	bucket = dns_hash(qid, &ev->address, id);
+	bucket = dns_hash(qid, &ev->address, id, disp->localport);
 	LOCK(&qid->lock);
-	resp = bucket_search(qid, &ev->address, id, bucket);
+	resp = bucket_search(qid, &ev->address, id, disp->localport, bucket);
 	dispatch_log(disp, LVL(90),
 		     "search for response in bucket %d: %s",
 		     bucket, (resp == NULL ? "not found" : "found"));
@@ -859,14 +984,13 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) {
 		goto restart;
 	}
 
-	dns_dispatch_hash(tcpmsg->buffer.base, tcpmsg->buffer.length);
-
 	/*
 	 * Response.
 	 */
-	bucket = dns_hash(qid, &tcpmsg->address, id);
+	bucket = dns_hash(qid, &tcpmsg->address, id, disp->localport);
 	LOCK(&qid->lock);
-	resp = bucket_search(qid, &tcpmsg->address, id, bucket);
+	resp = bucket_search(qid, &tcpmsg->address, id, disp->localport,
+			     bucket);
 	dispatch_log(disp, LVL(90),
 		     "search for response in bucket %d: %s",
 		     bucket, (resp == NULL ? "not found" : "found"));
@@ -1015,6 +1139,8 @@ destroy_mgr(dns_dispatchmgr_t **mgrp) {
 	DESTROYLOCK(&mgr->lock);
 	mgr->state = 0;
 
+	DESTROYLOCK(&mgr->arc4_lock);
+
 	isc_mempool_destroy(&mgr->epool);
 	isc_mempool_destroy(&mgr->rpool);
 	isc_mempool_destroy(&mgr->dpool);
@@ -1093,10 +1219,14 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
 	if (result != ISC_R_SUCCESS)
 		goto deallocate;
 
-	result = isc_mutex_init(&mgr->buffer_lock);
+	result = isc_mutex_init(&mgr->arc4_lock);
 	if (result != ISC_R_SUCCESS)
 		goto kill_lock;
 
+	result = isc_mutex_init(&mgr->buffer_lock);
+	if (result != ISC_R_SUCCESS)
+		goto kill_arc4_lock;
+
 	result = isc_mutex_init(&mgr->pool_lock);
 	if (result != ISC_R_SUCCESS)
 		goto kill_buffer_lock;
@@ -1147,6 +1277,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
 	if (entropy != NULL)
 		isc_entropy_attach(entropy, &mgr->entropy);
 
+	dispatch_arc4init(&mgr->arc4ctx);
+
 	*mgrp = mgr;
 	return (ISC_R_SUCCESS);
 
@@ -1158,6 +1290,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
 	DESTROYLOCK(&mgr->pool_lock);
  kill_buffer_lock:
 	DESTROYLOCK(&mgr->buffer_lock);
+ kill_arc4_lock:
+	DESTROYLOCK(&mgr->arc4_lock);
  kill_lock:
 	DESTROYLOCK(&mgr->lock);
  deallocate:
@@ -1245,7 +1379,7 @@ dns_dispatchmgr_setudp(dns_dispatchmgr_t *mgr,
 	isc_mempool_setmaxalloc(mgr->bpool, maxbuffers);
 	isc_mempool_associatelock(mgr->bpool, &mgr->pool_lock);
 
-	result = qid_allocate(mgr, buckets, increment, ISC_TRUE, &mgr->qid);
+	result = qid_allocate(mgr, buckets, increment, &mgr->qid);
 	if (result != ISC_R_SUCCESS)
 		goto cleanup;
 
@@ -1284,20 +1418,27 @@ dns_dispatchmgr_destroy(dns_dispatchmgr_t **mgrp) {
 }
 
 static isc_boolean_t
-blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock) {
+blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock,
+	    isc_sockaddr_t *sockaddrp)
+{
 	isc_sockaddr_t sockaddr;
 	isc_result_t result;
 
+	REQUIRE(sock != NULL || sockaddrp != NULL);
+
 	if (mgr->portlist == NULL)
 		return (ISC_FALSE);
 
-	result = isc_socket_getsockname(sock, &sockaddr);
-	if (result != ISC_R_SUCCESS)
-		return (ISC_FALSE);
+	if (sock != NULL) {
+		sockaddrp = &sockaddr;
+		result = isc_socket_getsockname(sock, sockaddrp);
+		if (result != ISC_R_SUCCESS)
+			return (ISC_FALSE);
+	}
 
 	if (mgr->portlist != NULL &&
-	    dns_portlist_match(mgr->portlist, isc_sockaddr_pf(&sockaddr),
-			       isc_sockaddr_getport(&sockaddr)))
+	    dns_portlist_match(mgr->portlist, isc_sockaddr_pf(sockaddrp),
+			       isc_sockaddr_getport(sockaddrp)))
 		return (ISC_TRUE);
 	return (ISC_FALSE);
 }
@@ -1318,7 +1459,7 @@ local_addr_match(dns_dispatch_t *disp, isc_sockaddr_t *addr) {
 	if (disp->mgr->portlist != NULL &&
 	    isc_sockaddr_getport(addr) == 0 &&
 	    isc_sockaddr_getport(&disp->local) == 0 &&
-	    blacklisted(disp->mgr, disp->socket))
+	    blacklisted(disp->mgr, disp->socket, NULL))
 		return (ISC_FALSE);
 
 	/*
@@ -1391,7 +1532,7 @@ dispatch_find(dns_dispatchmgr_t *mgr, isc_sockaddr_t *local,
 
 static isc_result_t
 qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets,
-	     unsigned int increment, isc_boolean_t usepool, dns_qid_t **qidp)
+	     unsigned int increment, dns_qid_t **qidp)
 {
 	dns_qid_t *qid;
 	unsigned int i;
@@ -1412,16 +1553,8 @@ qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets,
 		return (ISC_R_NOMEMORY);
 	}
 
-	if (nsid_init(mgr->mctx, &qid->nsid, usepool) != ISC_R_SUCCESS) {
-		isc_mem_put(mgr->mctx, qid->qid_table,
-			    buckets * sizeof(dns_displist_t));
-		isc_mem_put(mgr->mctx, qid, sizeof(*qid));
-		return (ISC_R_NOMEMORY);
-	}
-
 	if (isc_mutex_init(&qid->lock) != ISC_R_SUCCESS) {
 		UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_mutex_init failed");
-		nsid_destroy(mgr->mctx, &qid->nsid);
 		isc_mem_put(mgr->mctx, qid->qid_table,
 			    buckets * sizeof(dns_displist_t));
 		isc_mem_put(mgr->mctx, qid, sizeof(*qid));
@@ -1449,7 +1582,6 @@ qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp) {
 
 	*qidp = NULL;
 	qid->magic = 0;
-	nsid_destroy(mctx, &qid->nsid);
 	isc_mem_put(mctx, qid->qid_table,
 		    qid->qid_nbuckets * sizeof(dns_displist_t));
 	DESTROYLOCK(&qid->lock);
@@ -1486,6 +1618,7 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, unsigned int maxrequests,
 	disp->refcount = 1;
 	disp->recv_pending = 0;
 	memset(&disp->local, 0, sizeof(disp->local));
+	disp->localport = 0;
 	disp->shutting_down = 0;
 	disp->shutdown_out = 0;
 	disp->connected = 0;
@@ -1593,7 +1726,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock,
 		return (result);
 	}
 
-	result = qid_allocate(mgr, buckets, increment, ISC_FALSE, &disp->qid);
+	result = qid_allocate(mgr, buckets, increment, &disp->qid);
 	if (result != ISC_R_SUCCESS)
 		goto deallocate_dispatch;
 
@@ -1660,7 +1793,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
 		    dns_dispatch_t **dispp)
 {
 	isc_result_t result;
-	dns_dispatch_t *disp;
+	dns_dispatch_t *disp = NULL;
 
 	REQUIRE(VALID_DISPATCHMGR(mgr));
 	REQUIRE(sockmgr != NULL);
@@ -1680,6 +1813,11 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
 
 	LOCK(&mgr->lock);
 
+	if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) {
+		REQUIRE(isc_sockaddr_getport(localaddr) == 0);
+		goto createudp;
+	}
+
 	/*
 	 * First, see if we have a dispatcher that matches.
 	 */
@@ -1708,6 +1846,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
 		return (ISC_R_SUCCESS);
 	}
 
+ createudp:
 	/*
 	 * Nope, create one.
 	 */
@@ -1743,7 +1882,9 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
 	dns_dispatch_t *disp;
 	isc_socket_t *sock = NULL;
 	isc_socket_t *held[DNS_DISPATCH_HELD];
-	unsigned int i = 0, j = 0;
+	unsigned int i = 0, j = 0, k = 0;
+	isc_sockaddr_t localaddr_bound;
+	in_port_t localport = 0;
 
 	/*
 	 * dispatch_allocate() checks mgr for us.
@@ -1759,11 +1900,34 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
 	 * from returning the same port to us too quickly.
 	 */
 	memset(held, 0, sizeof(held));
+	localaddr_bound = *localaddr;
  getsocket:
-	result = create_socket(sockmgr, localaddr, &sock);
+	if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) {
+		in_port_t prt;
+
+		/* XXX: should the range be configurable? */
+		prt = 1024 + dispatch_arc4uniformrandom(mgr, 65535 - 1023);
+		isc_sockaddr_setport(&localaddr_bound, prt);
+		if (blacklisted(mgr, NULL, &localaddr_bound)) {
+			if (++k == 1024)
+				attributes &= ~DNS_DISPATCHATTR_RANDOMPORT;
+			goto getsocket;
+		}
+		result = create_socket(sockmgr, &localaddr_bound, &sock);
+		if (result == ISC_R_ADDRINUSE) {
+			if (++k == 1024)
+				attributes &= ~DNS_DISPATCHATTR_RANDOMPORT;
+			goto getsocket;
+		}
+		localport = prt;
+	} else
+		result = create_socket(sockmgr, localaddr, &sock);
 	if (result != ISC_R_SUCCESS)
 		goto deallocate_dispatch;
-	if (isc_sockaddr_getport(localaddr) == 0 && blacklisted(mgr, sock)) {
+	if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) == 0 &&
+	    isc_sockaddr_getport(localaddr) == 0 &&
+	    blacklisted(mgr, sock, NULL))
+	{
 		if (held[i] != NULL)
 			isc_socket_detach(&held[i]);
 		held[i++] = sock;
@@ -1784,6 +1948,7 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
 	disp->socktype = isc_sockettype_udp;
 	disp->socket = sock;
 	disp->local = *localaddr;
+	disp->localport = localport;
 
 	disp->task = NULL;
 	result = isc_task_create(taskmgr, 0, &disp->task);
@@ -1916,19 +2081,20 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest,
 	/*
 	 * Try somewhat hard to find an unique ID.
 	 */
+	id = (dns_messageid_t)dispatch_arc4random(disp->mgr);
 	qid = DNS_QID(disp);
 	LOCK(&qid->lock);
-	id = dns_randomid(&qid->nsid);
-	bucket = dns_hash(qid, dest, id);
+	bucket = dns_hash(qid, dest, id, disp->localport);
 	ok = ISC_FALSE;
 	for (i = 0; i < 64; i++) {
-		if (bucket_search(qid, dest, id, bucket) == NULL) {
+		if (bucket_search(qid, dest, id, disp->localport, bucket) ==
+		    NULL) {
 			ok = ISC_TRUE;
 			break;
 		}
 		id += qid->qid_increment;
 		id &= 0x0000ffff;
-		bucket = dns_hash(qid, dest, id);
+		bucket = dns_hash(qid, dest, id, disp->localport);
 	}
 
 	if (!ok) {
@@ -1950,6 +2116,7 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest,
 	isc_task_attach(task, &res->task);
 	res->disp = disp;
 	res->id = id;
+	res->port = disp->localport;
 	res->bucket = bucket;
 	res->host = *dest;
 	res->action = action;
@@ -2261,409 +2428,3 @@ dns_dispatchmgr_dump(dns_dispatchmgr_t *mgr) {
 	}
 }
 #endif
-
-/*
- * Allow the user to pick one of two ID randomization algorithms.
- *
- * The first algorithm is an adaptation of the sequence shuffling
- * algorithm discovered by Carter Bays and S. D. Durham [ACM Trans. Math.
- * Software 2 (1976), 59-64], as documented as Algorithm B in Chapter
- * 3.2.2 in Volume 2 of Knuth's "The Art of Computer Programming".  We use
- * a randomly selected linear congruential random number generator with a
- * modulus of 2^16, whose increment is a randomly picked odd number, and
- * whose multiplier is picked from a set which meets the following
- * criteria:
- *     Is of the form 8*n+5, which ensures "high potency" according to
- *     principle iii in the summary chapter 3.6.  This form also has a
- *     gcd(a-1,m) of 4 which is good according to principle iv.
- *
- *     Is between 0.01 and 0.99 times the modulus as specified by
- *     principle iv.
- *
- *     Passes the spectral test "with flying colors" (ut >= 1) in
- *     dimensions 2 through 6 as calculated by Algorithm S in Chapter
- *     3.3.4 and the ratings calculated by formula 35 in section E.
- *
- *     Of the multipliers that pass this test, pick the set that is
- *     best according to the theoretical bounds of the serial
- *     correlation test.  This was calculated using a simplified
- *     version of Knuth's Theorem K in Chapter 3.3.3.
- *
- * These criteria may not be important for this use, but we might as well
- * pick from the best generators since there are so many possible ones and
- * we don't have that many random bits to do the picking.
- *
- * We use a modulus of 2^16 instead of something bigger so that we will
- * tend to cycle through all the possible IDs before repeating any,
- * however the shuffling will perturb this somewhat.  Theoretically there
- * is no minimimum interval between two uses of the same ID, but in
- * practice it seems to be >64000.
- *
- * Our adaptatation  of Algorithm B mixes the hash state which has
- * captured various random events into the shuffler to perturb the
- * sequence.
- *
- * One disadvantage of this algorithm is that if the generator parameters
- * were to be guessed, it would be possible to mount a limited brute force
- * attack on the ID space since the IDs are only shuffled within a limited
- * range.
- *
- * The second algorithm uses the same random number generator to populate
- * a pool of 65536 IDs.  The hash state is used to pick an ID from a window
- * of 4096 IDs in this pool, then the chosen ID is swapped with the ID
- * at the beginning of the window and the window position is advanced.
- * This means that the interval between uses of the ID will be no less
- * than 65536-4096.  The ID sequence in the pool will become more random
- * over time.
- *
- * For both algorithms, two more linear congruential random number generators
- * are selected.  The ID from the first part of algorithm is used to seed
- * the first of these generators, and its output is used to seed the second.
- * The strategy is use these generators as 1 to 1 hashes to obfuscate the
- * properties of the generator used in the first part of either algorithm.
- *
- * The first algorithm may be suitable for use in a client resolver since
- * its memory requirements are fairly low and it's pretty random out of
- * the box.  It is somewhat succeptible to a limited brute force attack,
- * so the second algorithm is probably preferable for a longer running
- * program that issues a large number of queries and has time to randomize
- * the pool.
- */
-
-#define NSID_SHUFFLE_TABLE_SIZE 100 /* Suggested by Knuth */
-/*
- * Pick one of the next 4096 IDs in the pool.
- * There is a tradeoff here between randomness and how often and ID is reused.
- */
-#define NSID_LOOKAHEAD 4096     /* Must be a power of 2 */
-#define NSID_SHUFFLE_ONLY 1     /* algorithm 1 */
-#define NSID_USE_POOL 2         /* algorithm 2 */
-#define NSID_HASHSHIFT       3
-#define NSID_HASHROTATE(v) \
-        (((v) << NSID_HASHSHIFT) | ((v) >> ((sizeof(v) * 8) - NSID_HASHSHIFT)))
-
-static isc_uint32_t	nsid_hash_state;
-
-/*
- * Keep a running hash of various bits of data that we'll use to
- * stir the ID pool or perturb the ID generator
- */
-static void
-nsid_hash(void *data, size_t len) {
-	unsigned char *p = data;
-	/*
-	 * Hash function similar to the one we use for hashing names.
-	 * We don't fold case or toss the upper bit here, though.
-	 * This hash doesn't do much interesting when fed binary zeros,
-	 * so there may be a better hash function.
-	 * This function doesn't need to be very strong since we're
-	 * only using it to stir the pool, but it should be reasonably
-	 * fast.
-	 */
-	/*
-	 * We don't care about locking access to nsid_hash_state.
-	 * In fact races make the result even more non deteministic.
-	 */
-	while (len-- > 0U) {
-		nsid_hash_state = NSID_HASHROTATE(nsid_hash_state);
-		nsid_hash_state += *p++;
-	}
-}
-
-/*
- * Table of good linear congruential multipliers for modulus 2^16
- * in order of increasing serial correlation bounds (so trim from
- * the end).
- */
-static const isc_uint16_t nsid_multiplier_table[] = {
-	17565, 25013, 11733, 19877, 23989, 23997, 24997, 25421,
-	26781, 27413, 35901, 35917, 35973, 36229, 38317, 38437,
-	39941, 40493, 41853, 46317, 50581, 51429, 53453, 53805,
-	11317, 11789, 12045, 12413, 14277, 14821, 14917, 18989,
-	19821, 23005, 23533, 23573, 23693, 27549, 27709, 28461,
-	29365, 35605, 37693, 37757, 38309, 41285, 45261, 47061,
-	47269, 48133, 48597, 50277, 50717, 50757, 50805, 51341,
-	51413, 51581, 51597, 53445, 11493, 14229, 20365, 20653,
-	23485, 25541, 27429, 29421, 30173, 35445, 35653, 36789,
-	36797, 37109, 37157, 37669, 38661, 39773, 40397, 41837,
-	41877, 45293, 47277, 47845, 49853, 51085, 51349, 54085,
-	56933,  8877,  8973,  9885, 11365, 11813, 13581, 13589,
-	13613, 14109, 14317, 15765, 15789, 16925, 17069, 17205,
-	17621, 17941, 19077, 19381, 20245, 22845, 23733, 24869,
-	25453, 27213, 28381, 28965, 29245, 29997, 30733, 30901,
-	34877, 35485, 35613, 36133, 36661, 36917, 38597, 40285,
-	40693, 41413, 41541, 41637, 42053, 42349, 45245, 45469,
-	46493, 48205, 48613, 50861, 51861, 52877, 53933, 54397,
-	55669, 56453, 56965, 58021,  7757,  7781,  8333,  9661,
-	12229, 14373, 14453, 17549, 18141, 19085, 20773, 23701,
-	24205, 24333, 25261, 25317, 27181, 30117, 30477, 34757,
-	34885, 35565, 35885, 36541, 37957, 39733, 39813, 41157,
-	41893, 42317, 46621, 48117, 48181, 49525, 55261, 55389,
-	56845,  7045,  7749,  7965,  8469,  9133,  9549,  9789,
-	10173, 11181, 11285, 12253, 13453, 13533, 13757, 14477,
-	15053, 16901, 17213, 17269, 17525, 17629, 18605, 19013,
-	19829, 19933, 20069, 20093, 23261, 23333, 24949, 25309,
-	27613, 28453, 28709, 29301, 29541, 34165, 34413, 37301,
-	37773, 38045, 38405, 41077, 41781, 41925, 42717, 44437,
-	44525, 44613, 45933, 45941, 47077, 50077, 50893, 52117,
-	 5293, 55069, 55989, 58125, 59205,  6869, 14685, 15453,
-	16821, 17045, 17613, 18437, 21029, 22773, 22909, 25445,
-	25757, 26541, 30709, 30909, 31093, 31149, 37069, 37725,
-	37925, 38949, 39637, 39701, 40765, 40861, 42965, 44813,
-	45077, 45733, 47045, 50093, 52861, 52957, 54181, 56325,
-	56365, 56381, 56877, 57013,  5741, 58101, 58669,  8613,
-	10045, 10261, 10653, 10733, 11461, 12261, 14069, 15877,
-	17757, 21165, 23885, 24701, 26429, 26645, 27925, 28765,
-	29197, 30189, 31293, 39781, 39909, 40365, 41229, 41453,
-	41653, 42165, 42365, 47421, 48029, 48085, 52773,  5573,
-	57037, 57637, 58341, 58357, 58901,  6357,  7789,  9093,
-	10125, 10709, 10765, 11957, 12469, 13437, 13509, 14773,
-	15437, 15773, 17813, 18829, 19565, 20237, 23461, 23685,
-	23725, 23941, 24877, 25461, 26405, 29509, 30285, 35181,
-	37229, 37893, 38565, 40293, 44189, 44581, 45701, 47381,
-	47589, 48557,  4941, 51069,  5165, 52797, 53149,  5341,
-	56301, 56765, 58581, 59493, 59677,  6085,  6349,  8293,
-	 8501,  8517, 11597, 11709, 12589, 12693, 13517, 14909,
-	17397, 18085, 21101, 21269, 22717, 25237, 25661, 29189,
-	30101, 31397, 33933, 34213, 34661, 35533, 36493, 37309,
-	40037,  4189, 42909, 44309, 44357, 44389,  4541, 45461,
-	46445, 48237, 54149, 55301, 55853, 56621, 56717, 56901,
-	 5813, 58437, 12493, 15365, 15989, 17829, 18229, 19341,
-	21013, 21357, 22925, 24885, 26053, 27581, 28221, 28485,
-	30605, 30613, 30789, 35437, 36285, 37189,  3941, 41797,
-	 4269, 42901, 43293, 44645, 45221, 46893,  4893, 50301,
-	50325,  5189, 52109, 53517, 54053, 54485,  5525, 55949,
-	56973, 59069, 59421, 60733, 61253,  6421,  6701,  6709,
-	 7101,  8669, 15797, 19221, 19837, 20133, 20957, 21293,
-	21461, 22461, 29085, 29861, 30869, 34973, 36469, 37565,
-	38125, 38829, 39469, 40061, 40117, 44093, 47429, 48341,
-	50597, 51757,  5541, 57629, 58405, 59621, 59693, 59701,
-	61837,  7061, 10421, 11949, 15405, 20861, 25397, 25509,
-	25893, 26037, 28629, 28869, 29605, 30213, 34205, 35637,
-	36365, 37285,  3773, 39117,  4021, 41061, 42653, 44509,
-	 4461, 44829,  4725,  5125, 52269, 56469, 59085,  5917,
-	60973,  8349, 17725, 18637, 19773, 20293, 21453, 22533,
-	24285, 26333, 26997, 31501, 34541, 34805, 37509, 38477,
-	41333, 44125, 46285, 46997, 47637, 48173,  4925, 50253,
-	50381, 50917, 51205, 51325, 52165, 52229,  5253,  5269,
-	53509, 56253, 56341,  5821, 58373, 60301, 61653, 61973,
-	62373,  8397, 11981, 14341, 14509, 15077, 22261, 22429,
-	24261, 28165, 28685, 30661, 34021, 34445, 39149,  3917,
-	43013, 43317, 44053, 44101,  4533, 49541, 49981,  5277,
-	54477, 56357, 57261, 57765, 58573, 59061, 60197, 61197,
-	62189,  7725,  8477,  9565, 10229, 11437, 14613, 14709,
-	16813, 20029, 20677, 31445,  3165, 31957,  3229, 33541,
-	36645,  3805, 38973,  3965,  4029, 44293, 44557, 46245,
-	48917,  4909, 51749, 53709, 55733, 56445,  5925,  6093,
-	61053, 62637,  8661,  9109, 10821, 11389, 13813, 14325,
-	15501, 16149, 18845, 22669, 26437, 29869, 31837, 33709,
-	33973, 34173,  3677,  3877,  3981, 39885, 42117,  4421,
-	44221, 44245, 44693, 46157, 47309,  5005, 51461, 52037,
-	55333, 55693, 56277, 58949,  6205, 62141, 62469,  6293,
-	10101, 12509, 14029, 17997, 20469, 21149, 25221, 27109,
-	 2773,  2877, 29405, 31493, 31645,  4077, 42005, 42077,
-	42469, 42501, 44013, 48653, 49349,  4997, 50101, 55405,
-	56957, 58037, 59429, 60749, 61797, 62381, 62837,  6605,
-	10541, 23981, 24533,  2701, 27333, 27341, 31197, 33805,
-	 3621, 37381,  3749,  3829, 38533, 42613, 44381, 45901,
-	48517, 51269, 57725, 59461, 60045, 62029, 13805, 14013,
-	15461, 16069, 16157, 18573,  2309, 23501, 28645,  3077,
-	31541, 36357, 36877,  3789, 39429, 39805, 47685, 47949,
-	49413,  5485, 56757, 57549, 57805, 58317, 59549, 62213,
-	62613, 62853, 62933,  8909, 12941, 16677, 20333, 21541,
-	24429, 26077, 26421,  2885, 31269, 33381,  3661, 40925,
-	42925, 45173,  4525,  4709, 53133, 55941, 57413, 57797,
-	62125, 62237, 62733,  6773, 12317, 13197, 16533, 16933,
-	18245,  2213,  2477, 29757, 33293, 35517, 40133, 40749,
-	 4661, 49941, 62757,  7853,  8149,  8573, 11029, 13421,
-	21549, 22709, 22725, 24629,  2469, 26125,  2669, 34253,
-	36709, 41013, 45597, 46637, 52285, 52333, 54685, 59013,
-	60997, 61189, 61981, 62605, 62821,  7077,  7525,  8781,
-	10861, 15277,  2205, 22077, 28517, 28949, 32109, 33493,
-	 4661, 49941, 62757,  7853,  8149,  8573, 11029, 13421,
-	21549, 22709, 22725, 24629,  2469, 26125,  2669, 34253,
-	36709, 41013, 45597, 46637, 52285, 52333, 54685, 59013,
-	60997, 61189, 61981, 62605, 62821,  7077,  7525,  8781,
-	10861, 15277,  2205, 22077, 28517, 28949, 32109, 33493,
-	 3685, 39197, 39869, 42621, 44997, 48565,  5221, 57381,
-	61749, 62317, 63245, 63381, 23149,  2549, 28661, 31653,
-	33885, 36341, 37053, 39517, 42805, 45853, 48997, 59349,
-	60053, 62509, 63069,  6525,  1893, 20181,  2365, 24893,
-	27397, 31357, 32277, 33357, 34437, 36677, 37661, 43469,
-	43917, 50997, 53869,  5653, 13221, 16741, 17893,  2157,
-	28653, 31789, 35301, 35821, 61613, 62245, 12405, 14517,
-	17453, 18421,  3149,  3205, 40341,  4109, 43941, 46869,
-	48837, 50621, 57405, 60509, 62877,  8157, 12933, 12957,
-	16501, 19533,  3461, 36829, 52357, 58189, 58293, 63053,
-	17109,  1933, 32157, 37701, 59005, 61621, 13029, 15085,
-	16493, 32317, 35093,  5061, 51557, 62221, 20765, 24613,
-	 2629, 30861, 33197, 33749, 35365, 37933, 40317, 48045,
-	56229, 61157, 63797,  7917, 17965,  1917,  1973, 20301,
-	 2253, 33157, 58629, 59861, 61085, 63909,  8141,  9221,
-	14757,  1581, 21637, 26557, 33869, 34285, 35733, 40933,
-	42517, 43501, 53653, 61885, 63805,  7141, 21653, 54973,
-	31189, 60061, 60341, 63357, 16045,  2053, 26069, 33997,
-	43901, 54565, 63837,  8949, 17909, 18693, 32349, 33125,
-	37293, 48821, 49053, 51309, 64037,  7117,  1445, 20405,
-	23085, 26269, 26293, 27349, 32381, 33141, 34525, 36461,
-	37581, 43525,  4357, 43877,  5069, 55197, 63965,  9845,
-	12093,  2197,  2229, 32165, 33469, 40981, 42397,  8749,
-	10853,  1453, 18069, 21693, 30573, 36261, 37421, 42533
-};
-
-#define NSID_MULT_TABLE_SIZE \
-        ((sizeof nsid_multiplier_table)/(sizeof nsid_multiplier_table[0]))
-#define NSID_RANGE_MASK (NSID_LOOKAHEAD - 1)
-#define NSID_POOL_MASK 0xFFFF /* used to wrap the pool index */
-#define NSID_SHUFFLE_ONLY 1
-#define NSID_USE_POOL 2
-
-static isc_uint16_t
-nsid_next(dns_nsid_t *nsid) {
-        isc_uint16_t id, compressed_hash;
-	isc_uint16_t j;
-
-        compressed_hash = ((nsid_hash_state >> 16) ^
-			   (nsid_hash_state)) & 0xFFFF;
-
-	if (nsid->nsid_usepool) {
-	        isc_uint16_t pick;
-
-                pick = compressed_hash & NSID_RANGE_MASK;
-		pick = (nsid->nsid_state + pick) & NSID_POOL_MASK;
-                id = nsid->nsid_pool[pick];
-                if (pick != 0) {
-                        /* Swap two IDs to stir the pool */
-                        nsid->nsid_pool[pick] =
-                                nsid->nsid_pool[nsid->nsid_state];
-                        nsid->nsid_pool[nsid->nsid_state] = id;
-                }
-
-                /* increment the base pointer into the pool */
-                if (nsid->nsid_state == 65535)
-                        nsid->nsid_state = 0;
-                else
-                        nsid->nsid_state++;
-	} else {
-		/*
-		 * This is the original Algorithm B
-		 * j = ((u_long) NSID_SHUFFLE_TABLE_SIZE * nsid_state2) >> 16;
-		 *
-		 * We'll perturb it with some random stuff  ...
-		 */
-		j = ((isc_uint32_t) NSID_SHUFFLE_TABLE_SIZE *
-		     (nsid->nsid_state2 ^ compressed_hash)) >> 16;
-		nsid->nsid_state2 = id = nsid->nsid_vtable[j];
-		nsid->nsid_state = (((isc_uint32_t) nsid->nsid_a1 * nsid->nsid_state) +
-				      nsid->nsid_c1) & 0xFFFF;
-		nsid->nsid_vtable[j] = nsid->nsid_state;
-	}
-
-        /* Now lets obfuscate ... */
-        id = (((isc_uint32_t) nsid->nsid_a2 * id) + nsid->nsid_c2) & 0xFFFF;
-        id = (((isc_uint32_t) nsid->nsid_a3 * id) + nsid->nsid_c3) & 0xFFFF;
-
-        return (id);
-}
-
-static isc_result_t
-nsid_init(isc_mem_t *mctx, dns_nsid_t *nsid, isc_boolean_t usepool) {
-        isc_time_t now;
-        pid_t mypid;
-        isc_uint16_t a1ndx, a2ndx, a3ndx, c1ndx, c2ndx, c3ndx;
-        int i;
-
-	isc_time_now(&now);
-        mypid = getpid();
-
-        /* Initialize the state */
-	memset(nsid, 0, sizeof(*nsid));
-        nsid_hash(&now, sizeof now);
-        nsid_hash(&mypid, sizeof mypid);
-
-        /*
-         * Select our random number generators and initial seed.
-         * We could really use more random bits at this point,
-         * but we'll try to make a silk purse out of a sows ear ...
-         */
-        /* generator 1 */
-        a1ndx = ((isc_uint32_t) NSID_MULT_TABLE_SIZE *
-                 (nsid_hash_state & 0xFFFF)) >> 16;
-        nsid->nsid_a1 = nsid_multiplier_table[a1ndx];
-        c1ndx = (nsid_hash_state >> 9) & 0x7FFF;
-        nsid->nsid_c1 = 2 * c1ndx + 1;
-
-        /* generator 2, distinct from 1 */
-        a2ndx = ((isc_uint32_t) (NSID_MULT_TABLE_SIZE - 1) *
-                 ((nsid_hash_state >> 10) & 0xFFFF)) >> 16;
-        if (a2ndx >= a1ndx)
-                a2ndx++;
-        nsid->nsid_a2 = nsid_multiplier_table[a2ndx];
-        c2ndx = nsid_hash_state % 32767;
-        if (c2ndx >= c1ndx)
-                c2ndx++;
-        nsid->nsid_c2 = 2*c2ndx + 1;
-
-        /* generator 3, distinct from 1 and 2 */
-        a3ndx = ((isc_uint32_t) (NSID_MULT_TABLE_SIZE - 2) *
-                 ((nsid_hash_state >> 20) & 0xFFFF)) >> 16;
-        if (a3ndx >= a1ndx || a3ndx >= a2ndx)
-                a3ndx++;
-        if (a3ndx >= a1ndx && a3ndx >= a2ndx)
-                a3ndx++;
-        nsid->nsid_a3 = nsid_multiplier_table[a3ndx];
-        c3ndx = nsid_hash_state % 32766;
-        if (c3ndx >= c1ndx || c3ndx >= c2ndx)
-                c3ndx++;
-        if (c3ndx >= c1ndx && c3ndx >= c2ndx)
-                c3ndx++;
-        nsid->nsid_c3 = 2*c3ndx + 1;
-
-        nsid->nsid_state =
-		((nsid_hash_state >> 16) ^ (nsid_hash_state)) & 0xFFFF;
-
-	nsid->nsid_usepool = usepool;
-	if (nsid->nsid_usepool) {
-                nsid->nsid_pool = isc_mem_get(mctx, 0x10000 * sizeof(isc_uint16_t));
-		if (nsid->nsid_pool == NULL)
-			return (ISC_R_NOMEMORY);
-                for (i = 0; ; i++) {
-                        nsid->nsid_pool[i] = nsid->nsid_state;
-                        nsid->nsid_state =
-				 (((u_long) nsid->nsid_a1 * nsid->nsid_state) +
-				   nsid->nsid_c1) & 0xFFFF;
-                        if (i == 0xFFFF)
-                                break;
-                }
-	} else {
-		nsid->nsid_vtable = isc_mem_get(mctx, NSID_SHUFFLE_TABLE_SIZE *
-						(sizeof(isc_uint16_t)) );
-		if (nsid->nsid_vtable == NULL)
-			return (ISC_R_NOMEMORY);
-
-		for (i = 0; i < NSID_SHUFFLE_TABLE_SIZE; i++) {
-			nsid->nsid_vtable[i] = nsid->nsid_state;
-			nsid->nsid_state =
-				   (((isc_uint32_t) nsid->nsid_a1 * nsid->nsid_state) +
-					 nsid->nsid_c1) & 0xFFFF;
-		}
-		nsid->nsid_state2 = nsid->nsid_state;
-	} 
-	return (ISC_R_SUCCESS);
-}
-
-static void
-nsid_destroy(isc_mem_t *mctx, dns_nsid_t *nsid) {
-	if (nsid->nsid_usepool)
-		isc_mem_put(mctx, nsid->nsid_pool,
-			    0x10000 * sizeof(isc_uint16_t));
-	else
-		isc_mem_put(mctx, nsid->nsid_vtable,
-			    NSID_SHUFFLE_TABLE_SIZE * (sizeof(isc_uint16_t)) );
-	memset(nsid, 0, sizeof(*nsid));
-}
-
-void
-dns_dispatch_hash(void *data, size_t len) {
-	nsid_hash(data, len);
-}
diff --git a/lib/dns/include/dns/dispatch.h b/lib/dns/include/dns/dispatch.h
index 29dd7f806385a..806ab880f3cc6 100644
--- a/lib/dns/include/dns/dispatch.h
+++ b/lib/dns/include/dns/dispatch.h
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dispatch.h,v 1.45.2.2.4.5 2007/08/28 07:19:14 tbox Exp $ */
+/* $Id: dispatch.h,v 1.45.2.2.4.5.4.1 2008/05/22 21:11:16 each Exp $ */
 
 #ifndef DNS_DISPATCH_H
 #define DNS_DISPATCH_H 1
@@ -112,6 +112,9 @@ struct dns_dispatchevent {
  * _MAKEQUERY
  *	The dispatcher can be used to issue queries to other servers, and
  *	accept replies from them.
+ *
+ * _RANDOMPORT
+ *	Allocate UDP port randomly.
  */
 #define DNS_DISPATCHATTR_PRIVATE	0x00000001U
 #define DNS_DISPATCHATTR_TCP		0x00000002U
@@ -121,6 +124,7 @@ struct dns_dispatchevent {
 #define DNS_DISPATCHATTR_NOLISTEN	0x00000020U
 #define DNS_DISPATCHATTR_MAKEQUERY	0x00000040U
 #define DNS_DISPATCHATTR_CONNECTED	0x00000080U
+#define DNS_DISPATCHATTR_RANDOMPORT	0x00000100U
 
 isc_result_t
 dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
@@ -437,13 +441,6 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event);
  * 	event != NULL
  */
 
-void
-dns_dispatch_hash(void *data, size_t len);
-/*%<
- * Feed 'data' to the dispatch query id generator where 'len' is the size
- * of 'data'.
- */
-
 ISC_LANG_ENDDECLS
 
 #endif /* DNS_DISPATCH_H */
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 16d22e08b332e..93f10f5dd3e39 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.218.2.18.4.77 2008/01/17 23:45:27 tbox Exp $ */
+/* $Id: resolver.c,v 1.218.2.18.4.77.2.1 2008/05/22 21:11:15 each Exp $ */
 
 #include 
 
@@ -1070,17 +1070,50 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
 		 * A dispatch will be created once the connect succeeds.
 		 */
 	} else {
+		isc_sockaddr_t localaddr;
+		unsigned int attrs, attrmask;
+		dns_dispatch_t *disp_base;
+
+		attrs = 0;
+		attrs |= DNS_DISPATCHATTR_UDP;
+		attrs |= DNS_DISPATCHATTR_RANDOMPORT;
+
+		attrmask = 0;
+		attrmask |= DNS_DISPATCHATTR_UDP;
+		attrmask |= DNS_DISPATCHATTR_TCP;
+		attrmask |= DNS_DISPATCHATTR_IPV4;
+		attrmask |= DNS_DISPATCHATTR_IPV6;
+
 		switch (isc_sockaddr_pf(&addrinfo->sockaddr)) {
-		case PF_INET:
-			dns_dispatch_attach(res->dispatchv4, &query->dispatch);
+		case AF_INET:
+			disp_base = res->dispatchv4;
+			attrs |= DNS_DISPATCHATTR_IPV4;
 			break;
-		case PF_INET6:
-			dns_dispatch_attach(res->dispatchv6, &query->dispatch);
+		case AF_INET6:
+			disp_base = res->dispatchv6;
+			attrs |= DNS_DISPATCHATTR_IPV6;
 			break;
 		default:
 			result = ISC_R_NOTIMPLEMENTED;
 			goto cleanup_query;
 		}
+
+		result = dns_dispatch_getlocaladdress(disp_base, &localaddr);
+		if (result != ISC_R_SUCCESS)
+			goto cleanup_query;
+		if (isc_sockaddr_getport(&localaddr) == 0) {
+			result = dns_dispatch_getudp(res->dispatchmgr,
+						     res->socketmgr,
+						     res->taskmgr,
+						     &localaddr,
+						     4096, 1000, 32768,
+						     16411, 16433,
+						     attrs, attrmask,
+						     &query->dispatch);
+			if (result != ISC_R_SUCCESS)
+				goto cleanup_query;
+		} else
+			dns_dispatch_attach(disp_base, &query->dispatch);
 		/*
 		 * We should always have a valid dispatcher here.  If we
 		 * don't support a protocol family, then its dispatcher
diff --git a/version b/version
index 4327c9e433c68..6853a8a6bf397 100644
--- a/version
+++ b/version
@@ -1,4 +1,4 @@
-# $Id: version,v 1.26.2.17.2.31 2008/04/03 00:22:17 each Exp $
+# $Id: version,v 1.26.2.17.2.31.4.1 2008/05/22 21:11:13 each Exp $
 #
 # This file must follow /bin/sh rules.  It is imported directly via
 # configure.
@@ -6,5 +6,5 @@
 MAJORVER=9
 MINORVER=3
 PATCHVER=5
-RELEASETYPE=
-RELEASEVER=
+RELEASETYPE=-P
+RELEASEVER=1
-- 
cgit v1.3