4"tcpC`J:UA)qg31]fXh\U>%GWqa*cbh
mOCV?gPuD,/!/>chREV/?GHWJs`Dj$bpmejBC(m/+MVoa`X!COI__?AK8Hg4=H+"Bnj9Na??HjkVZ4?q9@)dJ,+(.M-D.kmsD,sK)`+JK4mnPJiU)AjB5oMX5\e@UdVaE9[L^g&R7n&DcXHJ-i;b=?t!"6hcuYY3%7j&+gNc9E@BMI_(j5PTWP5NAhMQhV%HM(_9^b]*sVe+SnbY!()TNH\qX$98qcc'.5$,sc)@3_R$i%o;pVd"cim_+:NB$_k]VHB%STY64#[(l#%a$aGSQ\3RiU=(XOZbP^a(78$5e8"*?\Ji,ib+o$KCL>8J^K6lePV'^20JYfa(d`f'3%""kIN&$TV63=Q*td$oW%-pY8([m6CA?U79O[P,nA=Hgd[FRZ(Oj'YoN#Y-Pko*T+5V'k7QVE]29#[+WQG@pP&822tbk$nC0Ep)^lt4P5'4tQtFt>o[3:QA.j+!Xm:nR$omS>-4_fSh6.!gEJH!/_)JZmu':*^0$oU)7sS"ITlPiMPP#_uFiPWSLPh797>L/b"gACCTfCf65!kB:rfI.M"173`1P_7S_qF<>m+=jW0N+HDmV7s,2)cbT:BFnK&V>oFd!4]^h)PTkOYN0!"j\lr/;o#XubBs;W>>1@HVAWo,2+c_
+Gau0D968iG&AII3n7^--#QYL4R%@j=:>I1Z1tK$h-jPW],hbi&;e&Gg,bAP0\;XEFfMACl-'L?V.L'>W.*`/u;N&[oP:"G=+cZMB>:=[$*.eBBZT6H(HQbrf_*\og1nqo&hR\88Z\+Y`1VEd+j7!ectRWiVm?8$l6qO"DA74ooP6f]eIrCL?>UT]2YSfh"Ou`mk=]1dUDL?*nf?@[hdKo?RS<,!IJS(Y#s)cSlD*ik#,<<#S(]Q,11`"GdQj"IG#kp^EXD+N!Ad0@l7Ps<6(c,cY$c1CS_/Od$m%'J.Q9Cn;k02qJ/&qiGK!n(kh).`ZIgk1jH!jr@OR0kEanY0P`?VKpDJpa:2S$Pfd\eDS,"L4m&/7ZF=G,TE5!`f$P=3"Ad;+fM`ApBmcY.s8IJ*8P+qCIj8u/dXQRr.KWh[2Ut$9jC-*fVCBn33ZpkiVHOg)dVa)<8P/1?_-q(85)CFTXM\GYFNIIPH)h.Jo>i^hl:H$%$4R5",Ofta,JkC4V&N&Nn3Ncq:R<3Hmife!`qQ1k2fg;I6n+u"j)j+!Z%ZUjb9I^0(i%-@SsjI4M@lE-"227&@il"7H`_3([oT]$GUbNFkF==)ql:c&Z\:*phh,p-PFP`>8t#eE<+&3N6`1quj6NH,NTY9:1lI%=uJp>+Rn24nL+Rac&-HY)ET8J:j&u3+JJt*dQiU?Vqf<5M_iQ"?bR]7/p8YLB:(Ai\Q-DU")]gU$Vnu=Cej;QL)b9pt8JJOuTHM]J*lH.Dd@;4`1J(]*1B<0&H3Z:`>CApI-?cAgGdear6r=GN\6c]5a/VW'\ip3P1*OlG7agG]:Z'a[-MtK3#30d@)"U;4n\J)ah2M9EL9+GBD%G$@V&qQ"A(2)2d7V9\,]eW56!h(rEL`&N/t><=
endstream
endobj
32 0 obj
@@ -203,10 +203,10 @@
>>
endobj
33 0 obj
-<< /Length 1783 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1922 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gau0D968iG&AII3n7^,n-iq':;sYiFR`qRup_N#mOcY6N-57#Km=4$T93BOd,q&(nChX4B@^46tH$-H>IC&dYU>?[bhQAW+pg+r\n3;l#h_-4?O>mS0/\LcAn(#r[L4BIR7b`E<'7#hYb0=P[[p2+EW7Q$D0o>kU]=IMs?bEuB?F!VQ7F'*);FXrWD.Y]+^!PP*fUrb/JHn2_o/-4HE-1<[]PWl-hW7!7?%J=;q)\)r'lQnV)B@VsPS#5b5ANDZ)ZP#J5(-k*Sq9i6'Bt$gqI\-&K7+=2hO)$>urfB.+Ei#_R5pNHnXMj-6b[#I-fY_7B`XNM>T(rWYQd"$#K+95t$0_e#',&oBT<9j''YO_#f4,9`fhl'BE!7%L#V'MssP-,5fU;OZ7\2&d5UYNlK6bA->i_=2flB6%t.4m8Ct@fj[#-)"p;*9oRa?SYJ[D5nmOsrr=.,_EKPqBM5=.ja*r/D=<@gH:\rd:3P[S3n#.e0X\00^D#6*FG9t92+i4]>K3B`#j%s9#AUn4?clFcOjMo;V[IO#Vf53Y:e(I),%=+WDlKeX:P#6rKb/h
\M(L9!]\&^3,"Sp8!OQ3jVs&O(h5&C9dLQ*eLHnn!*#rdV:f;Apak5$[b@7[8Ks8>hGWCDNp:9_V^K87@1XK;+#ZuaPNLI_uf5&"]!-.XY(DZJ(g1ehHFYqo\e>^,=J^WmhhO,MJnr)6tL(jZ-OHpL,SS2p%rT,_Jm,r,%"kHs?%(+(DYbjcd8Zj]bL*@nKZdfS6_a"78.:tmM9]G0']SnD^mkp9X;*JUl$49#X[_[]C-jMJ_Nih.^Y*A^WDqYZbXCSdoSFp?_Luk,#AW>LmJ-A9mYXpi`kB3(8AuL^U((=;Q,6\H36g8Lh(Md5r5:;2tOH25AIab[2)E`(8\?n>)E@A[T)^QNd0(iG>!E`)fs=_HL_9/HdTPE-&A[Me_:]'feoKm/bF6aT[s#o*XQ%?~>
+GatU4hfG8H&:X@\_.,7LlB":/\3;4P[b'iioPWZtV@N`=_hA'o\Z,W+>JR[J(_N[:9KWTfX4?XI]:X2W?G0RH^9+??L&V[afHm[6"9JGs]RPCT4[pX`3N[Cde\A0>B*CVg6tl:4n#8YlHrt;fmNCT-+*C%=*Y97ccMGraEco\F^NR=Plb>\54p`55W#Ha&!r!h"WZNShIP(Vd#Gsc6>s#7C@-L^#>ph.&LpBFk7('LnUN1Y4pV])+8,VCR7FRJi.TB9?Fg2$hR"6#u.TB.iC<%IEJ?Yg"okE[D(fCGn,RTg:-Vi.,.*MF#Be+n#ZO1FH6A#c,d\BjC?!I!6R;oV"&bcFYC;KO1U^uPIeI]B,H?E')6]Y'd7Wjr?#a[JQ<`E9+6,7sn]6TI-H/Q4'Gp2)H-e&ZfV82j%B]E98%Y.E:;\F+3RejQed<;--7dTlm,*Rp7/!ke/]TB?O0GcA5"e[X=P@,k;-V>'f`hpo5HFM/^bKS:bma\s;N1/0DdAf33EA&O6B_#)+W4CPjFA.Zo@%7J?5FJO`dX2B`Jf2@LG88cJO/LdBnBrE51$KSP^4B#]>3b/6si\pO!7D/2Cuu\F#3>/02A0c,%q$WIbRGH7UV&G3\=Sa0i22cQo.n/hB"B'-=O+8D;;GT8ljVfS^pd8!?Y4q!*;G[D^&^O:jU:<4T7$iTsN-H7qN?@>9JZ`O:AAMFid:J\J1Cl(eRJ%GgaqdpLfCQ$/@ET"&'dVO0biW,3W_Mn0"#JW\cu>?]__F1Kq^2T?^i\0.i^'eF2!@[NVj'K`!g5LYAkNtL;\3ZduIe03LomjRVEgucHIRI%Ir,o:4R0NiD<9U(*=T3=>-8^&+RL--h4GpjniF$1PIJEP;-IrF=MW\-\j2(USs&^="YTZTD'V,4+EYGIFKhZWOq4dW(aoSAA-D@ZG)WC$B/H.^aPeTQ7\GgCq"jBqI(,!o%ZKVCl:pk_.G1Pf9E.[u^rhL0WqB6/KOg^mqG9;B>Y[l.oWp4#38"kO"/n)#3&FX1t;KIIHl(nSjNm$hO?5CSPgT-cU-[b)8@eN`&`!YjEO;Q,[Q&g)P7U:q.d&p;54j39?[K!I#a'*'6RMD;FR5@[dmI$_sE60M_:s6+tX?"$%8)2ac!>j1BW4Sj\Ln]WZNZ2Or2$&f]/fj'Z!$6Y"fkp:JPq7H"3nl*:Z~>
endstream
endobj
34 0 obj
@@ -218,10 +218,10 @@
>>
endobj
35 0 obj
-<< /Length 1775 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1691 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gau`T968iG&AII3n7^/##k?oL4k[!/Wl^4S>16-/"%>NhCPkq[.$"=U5uJsE1`oVa:<$e)!FckWh`e!fnN!kmkqe-!Qr3Gghp0/;=[>U(ig5,)sD952Q]?(g.H!L;"69lWmYKP*$5YB_>k9@*qm:@f@3d?1n[1W+m,YLK!BY\m`MC)f#&e3Zlb-';f4+E*USf'3[o9\D)`m:cXAR[ClE_dQZ/NmWnM7+=*-;[!gm.NdZYc@LTf3R)Gk+WaV&FRuhg>@5icRqcKr?2K3k]NJm]QP2b64c?l8OD0.f)[i8,pgVe#p>J+9Nl"fjV>eSDe35@f,3DfX?`j_?Mr'PBHW?q`&L0]K%mn[KC7OU'dZ>'#0tj-f3XbhTeP;cZ03?fb"%*0+9a.rc=;#'Bo#aQ.5,Y,gDt<QJ(F'BPrs9iaZ:FU>ljp-B%];p)_709H]Joso(VtA"Wo3/B!NNhNE*f87T8Q$!BY2^2D.V0[lcVoMmXkQi6*E,>7M8Z2-BHg&L15j@)"DLirVs;%`,\3;i+S3V;!1V>K;WN-,$:[1s*7%UNYPUQI&+c:FO8!.7<$5):%D#10*4?L_+\st8',9PTjP+.8kaLK@`Osk=#K89Us!clQ,EK@9p$@9[qm't*k1+QDh+]/)H"!`Q-ChNaSATPKOoncb_6`?LiAY>N0-mHfJor>hMKTY%EM5^\]RnQNqN:.GpX`oC(`c99$-!YGGpoJc9'`aIF$tk7^c4e)Mf`-(ksD464aO*hp5o1miZW3="$Dcg>a:IF?N,&hk`R_ZQ#"$,QX#l(F7bhfhcaMDT[sTS)JV"ms`e_kif=q3@.(GmEnWJUlO`)hFYa1ij1Hau6]CV$E#`?.nQj-X#01m,o'V'2]%;30[AuG/'E?]FK/_(u+enEd`4C1H<#r]thNJ:%:qLC?NfR-Y&RIRsfC]dlpIaR`IGCT*^BY]d>fD7tfWL=_kui3T*6b]CkK%kWjY
+GauHL966jf&AJ$CE-/)m/J8\Wh:!Y@f^):3Ft::dk9,CnZb_G$H(=g0'k"*Y#+Xa.jbdOS[JKiE2n+^uVoA#;)0Rq7n&m8&OmDeVYJ2NeJ);pj,L?%R;E1`15I9+&"J1Z&3;qTElsQP0/ClVd+`d5\4"VWI&IteHfK%jP91%9ro>=`/V2:o[;+H/mn4;NM7uCD3T*X(0JObf?';X0DF$gj+kHW62.5S:R=9".[RJ"9,M-6rlBbigkjZZanQ"I"A1&Jr(/7^%VA@CpBNA8c(@O8gJ!&7/N%N&'9em0W'1uA9Jbg/s.)c:dfT8*f4,/e/6$5aBuhhmeB?ab'MNY[@RE?=[Q%!%E8<9.fH#`6b+d@j7!f&7O;L!IhU:\NR_VII$>J5=cPbN-JpcVCF@9If9*9Ypm(:;hU^IR$`ZW@uF(iWYCP!j/8GH4lt!o!H!'DiJjgniY%47"TY,6c?^i$Ah%l(e-f8qXGkm\#%=1^?XD=pP[1=/n3X"`I=Y9='spubnWHSR[@)riGuZF10[@l4]H$AT.To%S9eb]eG2:b7#1EOhIpfQMCS((VGTF:ZpnOO5X.C1UkG$&\KPJnh5rYOD]hF/)A=2b37*0LicHCi8cX69%:UjRt$E=q++]<_u6hWfbWHI=W`'RR]a+pIWADB\Z')=P?gf.X+<.Fq&a-3#R?r0f<[T<,4nrWD1g!^i>jU'TkS!=pNTH6c`'pMlG]fH8,_n9gZQ\2D68c\ZtQ+eRLEi11!r_R^*DP[!)$:/O.qc>
\D(h[F1r+AFPe4h65]uQ%M9bV3_f+au4jPo%;oVb<0k!,'Xn1d2ba(TM5)18I!.QT`g7l4mnGHISG*J$-=eOa"%;e+OH"s2?mFRD.>tsP%#Xr2%`hmf!kat#tRP]cdCKd_!eK5V+j(\^GRt"\)'%uuaJ)L-oJ&YVgM?7(h/E0_hKZ'VkpM%sn&HFpTSu9Okj(c(=DnG(gQ6a$Pp"j6$RNcu^_/-#7Mr5CHJ^a3*Tb.W7eBM&'eFA;\jR8YC#fS3NBK';KeX4!]^*4gj1^[H,((qrOLGgRBDF1Ml_.W_Gb\fP=eol9F>Gl&/IdNXoYTA]`1JG4d[sI4QZSPSm!uH[bV&-$5*)Yd?V['-$g0tjK,1`MpfNlsu'o#@eI;f!n3BnFb.t[L%W.H,?NMt@dV#[kpYJ?:NMsA'eBVf/MnkW0Jf'&3Cs7+\)%e.%-H9Pu#+:Y2o2[J;k1c<6$-e\R8:T!'ifDW6SPto(^!-+X\:#S-eO@^F_P@o1E)GVtH!XF\$S%>IdJPVg3(SSDMo\epQIG`]m;R;TGB1'D%7HOtqVMWdOHXH"^V/j;,VCY"PeXU_uH4.eBh-dB7Z"N[mm//m@[=Goe95=GW=pj^\R$)R~>
endstream
endobj
36 0 obj
@@ -233,10 +233,10 @@
>>
endobj
37 0 obj
-<< /Length 1753 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1883 /Filter [ /ASCII85Decode /FlateDecode ]
>>
stream
-Gau`T8TWWE'Y`m7n7^,n-j^Mkg6:nbBq!>SNHM:JJ4N3t9b@^=H271<\D_uc.4N_W4SBU7hLb2Jpjh,\idSH5]'u5lqYdop>i[qS(ok=OdJprl&eAF14!et!Mr,>[-O!%o6Epq`5okm4@NKK3a3(1K9)m;@<,,=0+UDY_n^iCmt6Y'F"Di9381%KsqY9VYkX:*dV0L,s7)Mb[-!%=3Ra+K^U,5XaYLHdTn:/ENC;02#I:5?JG\ZSXRH9Sb#fp#i/ZOj8OZ@=HP?pY;P2raKMaMo\*([?<0sRH[TNRRjGHeQLQ((Ok1JsBe-^)2Ngu*lFA\1:PE=jGs"W`h7ocP+LrnNU"dolm&]W2qA\GI5D;Z2:2;;GK=qLji^ne!'O`>]W]W.^)Y2ia\;Cc$:83bmh851RTCWGP!1XjL.tXN3ZZ3Hd;2;G\IB(aRk3TG$T,&>e#enuGa4^G%+rg
8C'=o0M'(H-V!AluM9a#4`"7H]Qk=/W@$64.Dl=0"+GIfJ+<>jgrc'#OM;]Vs7h&@a"jI\CLk1_hT!-*JE0aP`$YJI5\P)FPo-K)Nge!%7bCHWbXcm;V1"%4CL)2RtN8qhmu%'JJQjth@f_,5kj2n&Z%Pdj`P\"A.\Rqf+TirI%cNV/:`$>KrM!%>\FY:E^\fIu:U>,"g\1L=.aopMC!4"Pj3.VBK2[SY]icn8OsL#-p7g4VAPO6;kLHZ'!A>">_-!82@1u!sj_E\J`o*.kkQM/"]pu%!I+&lB[6`~>
+GauHL968iG&AII3n7^.D-ijs.UaOo:;E*jI[5GWc3D^tHZ)1'WK];4QG&3p5@2@S8[QMlg^FiU&J)H8!O#pAkXQAf0g$MoC(4*nfbC=n8/^!"pHo86G.3&7`X-)HaTn."(\(9`C"_7JaqI7^!!MQ_2C'COV*$m`E-m9*_d7Nh+#q%!L.?RZ_TOP%fQ.uX%W4-M3`Cg/*d^?$L*q(VAkg<$Q2gQ`i=f.p>Me:nZ./!AeRlb^#qJc1Rk:k=e6Vjdt!-82S?3V6si3qe:U8iN2VBFnO@AXHf/CHcKXbm`W+UbY2N^Yg[FXE8/`amK7[)fS+*i8\R2K;^h>W)qC$a@0J?lJb%rStfmLR[$opJZT!+>T"^$V*Wan`j2iaGCEpg%>h^M_rhV8=f;jD#1-^EcI?Zq-&9n*g/I.oWA\kGn^%p3L'k`ampS/'Jib[>b+kh=FL1#jHL!q;3if/pfYq_9>"g2Q\Zsa.).@:-X>&hlT3aP%k'$)X?uG)ULu;$\']F?V?u=%\k;KtPUD[R:\<.2P,'ibngHT46(?$KBGG<]g;#\B1E%.$;Sq5)6mQ*1"jjMs.$%LI(Jr21liM$;i'Up.G6`muBZ'1un=BbLF)IlO(d.21]>lcih_*'Dh#%V=cL7Cabm/rDT>/;rN`=brUs8XuVb(9*56.s,jgOSJdFhjb5G3/^c3*lr]_dAh\!oY3pD&9JnIKV<%YVeYO'Tam5a1r3`5EVct]'9/H3,BHjq=n,DEIgVJLJ%Hn-V<^7,qbiq9pTB9Up11_S-8&9QktblLC2ME/IKk"/W7GUNIp7q=2phBk!_`i%2aUqX825Q*KlJ-5K=?f;\i$]
lf3CO,?V1@%aDo0lOB36"J>bae9!Q6M6&"m.f$%4;(79F?db2_(gQ1gAWg^/M1D`Ba\)U*.7jI5XE)FOhE4\anM+PmXJ&)#LEH3AQKmC*emiT3VkF[SLkn;l^VQ^rhj/p=@$15q03s_uagF,jAq^dn>0R+MqE#)"m?l+uK-c!ECZ@.X7nilBfa&e\a-_K9a^fe)0a>f1?ALcVjoXP.2C(X;IRlnE74d"2su,`Nc,mCZ>EGG"8kd0H^T=OPK1;o(r\e#`9`(H\YV9kq:AT>`c.:S>Jhg+`@Fm/#rk1fChn^AO:j+?`,A^A%GcV.E66eAaF%Y@m5FpOfVnhG*1"XD`MoEs)s$m?TiG8s;LLX"0%_^8D<6]Y7;ED=EmtAp#2*:P^oE_nNuo&B/GD4TP5B1&fVtnP3p?9I2g_]f0Sk&4Tbl2jk1VlQ[@L7X,]NU#UMhGGpE]ZG@M0r/\sW`*\_L9?P630PF(r.//!lm1c&=Bo0>j$JR-u5,$oDLY,/)tml`!BseuOG;mn%#j7%bGPHp"Y!/ff`48V\Uu![(OW$SA]5bD-9r=kIP1$W[4:?1jIYJ>J"7a/leX5O.rhZkgYq*\rc09q]9JSbXm.ccD>l&pi=?JDmaX;Kp+J:oJeO*^_'XQ3#RU7(bkNKQi+:QS\Eks9`@KuTi"j]Bj+&7G5C,?TqA~>
endstream
endobj
38 0 obj
@@ -247,104 +247,112 @@
/Contents 37 0 R
>>
endobj
+39 0 obj
+<< /Length 1227 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%#gMZ%0&:O:SkV3*9Y"4D\ZpfOVS)&7s5dt%6eU=*eOj-?2*K&]1J)?B)RA=T@0ao!BMK@aERA8`YI.fOl4jRfG_XGNJ*g/3JOp$8EhYmJ7d?Go-L1!%=A+jm7p3.U'5T)bR=0o-_$LpK9]d@A;$0,F-$3%O3e_HmFDrjIH+Q_cN:255Q5F7u'36rf&S?AdaaY,LGH:n[76_>Fs5Orkhbi.uGLngO#?.@*I5r]^ie,8,tn`W5Yb53,R9ihHU0:oO5J3%<0F`8ZmsoC#)?1^cl=mbsVR//?jf3_1L)c,.=4J"'I,HoE;B%9o<-6Z,h@jg(\I]/]nrfICj]i)l(3oBMY9MS!@@Q-OL1G0-"6!Kk&*#ao"-d2dk4:oWo(i"F,mG":O(1Y.O&"cB3Z,K]8AP@pQDV:2'V]gq'Rd?)nbPQ<(.,@k[47b%&JA5?TKg4?K-`+8Y@I@rj;@-XbbWjJhO&QSl:Gcnd0(6tpg@=YRjn==;f\3*A@dn+Irg0iBg@$HZ''fYH.2;c#rneQ6uOPapaW_0kA9FE*mSUD%gJ@-trD+WHJ:4gs`Mel/8h2Z'H>^7?g1cKd+hh5K4XTj^PkI^gC@C[ph1:^qUNH8;cG=Y;i?p-l'uF-Sf,U>b'?5r+bGgpp`fNq7A0K+'i5dClORCAY$mC>HdsAj*sd:9DHrXfZ]49D?;O:YAeJW[dTa['T<(P>V%%6QEMF[R0GpF_#/OItNndi;Ng3&1I;~>
+endstream
+endobj
40 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 39 0 R
+>>
+endobj
+42 0 obj
<<
/Title (\376\377\0\61\0\40\0\120\0\162\0\157\0\147\0\162\0\141\0\155\0\155\0\151\0\156\0\147\0\40\0\167\0\151\0\164\0\150\0\40\0\102\0\157\0\157\0\153\0\113\0\145\0\145\0\160\0\145\0\162)
- /Parent 39 0 R
- /First 41 0 R
- /Last 46 0 R
+ /Parent 41 0 R
+ /First 43 0 R
+ /Last 48 0 R
/Count -6
/A 9 0 R
>> endobj
-41 0 obj
+43 0 obj
<<
/Title (\376\377\0\61\0\56\0\61\0\40\0\111\0\156\0\163\0\164\0\141\0\156\0\164\0\151\0\141\0\164\0\151\0\156\0\147\0\40\0\102\0\157\0\157\0\153\0\113\0\145\0\145\0\160\0\145\0\162\0\56)
- /Parent 40 0 R
- /Next 42 0 R
+ /Parent 42 0 R
+ /Next 44 0 R
/A 11 0 R
>> endobj
-42 0 obj
+44 0 obj
<<
/Title (\376\377\0\61\0\56\0\62\0\40\0\103\0\162\0\145\0\141\0\164\0\151\0\156\0\147\0\40\0\141\0\40\0\154\0\145\0\144\0\147\0\145\0\162\0\56)
- /Parent 40 0 R
- /Prev 41 0 R
- /Next 43 0 R
+ /Parent 42 0 R
+ /Prev 43 0 R
+ /Next 45 0 R
/A 13 0 R
>> endobj
-43 0 obj
+45 0 obj
<<
/Title (\376\377\0\61\0\56\0\63\0\40\0\101\0\144\0\144\0\151\0\156\0\147\0\40\0\145\0\156\0\164\0\162\0\151\0\145\0\163\0\40\0\164\0\157\0\40\0\141\0\40\0\154\0\145\0\144\0\147\0\145\0\162\0\56)
- /Parent 40 0 R
- /Prev 42 0 R
- /Next 44 0 R
+ /Parent 42 0 R
+ /Prev 44 0 R
+ /Next 46 0 R
/A 15 0 R
>> endobj
-44 0 obj
+46 0 obj
<<
/Title (\376\377\0\61\0\56\0\64\0\40\0\103\0\154\0\157\0\163\0\151\0\156\0\147\0\40\0\141\0\40\0\154\0\145\0\144\0\147\0\145\0\162\0\56)
- /Parent 40 0 R
- /Prev 43 0 R
- /Next 45 0 R
+ /Parent 42 0 R
+ /Prev 45 0 R
+ /Next 47 0 R
/A 17 0 R
>> endobj
-45 0 obj
+47 0 obj
<<
/Title (\376\377\0\61\0\56\0\65\0\40\0\117\0\160\0\145\0\156\0\151\0\156\0\147\0\40\0\141\0\40\0\154\0\145\0\144\0\147\0\145\0\162\0\56)
- /Parent 40 0 R
- /Prev 44 0 R
- /Next 46 0 R
+ /Parent 42 0 R
+ /Prev 46 0 R
+ /Next 48 0 R
/A 19 0 R
>> endobj
-46 0 obj
+48 0 obj
<<
/Title (\376\377\0\61\0\56\0\66\0\40\0\122\0\145\0\141\0\144\0\151\0\156\0\147\0\40\0\146\0\162\0\157\0\155\0\40\0\154\0\145\0\144\0\147\0\145\0\162)
- /Parent 40 0 R
- /Prev 45 0 R
+ /Parent 42 0 R
+ /Prev 47 0 R
/A 21 0 R
>> endobj
-47 0 obj
+49 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F3
/BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding >>
endobj
-48 0 obj
+50 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F5
/BaseFont /Times-Roman
/Encoding /WinAnsiEncoding >>
endobj
-49 0 obj
-<< /Type /Font
-/Subtype /Type1
-/Name /F6
-/BaseFont /Times-Italic
-/Encoding /WinAnsiEncoding >>
-endobj
-50 0 obj
+51 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F1
/BaseFont /Helvetica
/Encoding /WinAnsiEncoding >>
endobj
-51 0 obj
+52 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F9
/BaseFont /Courier
/Encoding /WinAnsiEncoding >>
endobj
-52 0 obj
+53 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F2
/BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding >>
endobj
-53 0 obj
+54 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F7
@@ -353,19 +361,19 @@
endobj
1 0 obj
<< /Type /Pages
-/Count 6
-/Kids [6 0 R 23 0 R 32 0 R 34 0 R 36 0 R 38 0 R ] >>
+/Count 7
+/Kids [6 0 R 23 0 R 32 0 R 34 0 R 36 0 R 38 0 R 40 0 R ] >>
endobj
2 0 obj
<< /Type /Catalog
/Pages 1 0 R
- /Outlines 39 0 R
+ /Outlines 41 0 R
/PageMode /UseOutlines
>>
endobj
3 0 obj
<<
-/Font << /F3 47 0 R /F5 48 0 R /F1 50 0 R /F6 49 0 R /F9 51 0 R /F2 52 0 R /F7 53 0 R >>
+/Font << /F3 49 0 R /F5 50 0 R /F1 51 0 R /F9 52 0 R /F2 53 0 R /F7 54 0 R >>
/ProcSet [ /PDF /ImageC /Text ] >>
endobj
9 0 obj
@@ -383,100 +391,101 @@
13 0 obj
<<
/S /GoTo
-/D [23 0 R /XYZ 85.0 369.413 null]
+/D [32 0 R /XYZ 85.0 659.0 null]
>>
endobj
15 0 obj
<<
/S /GoTo
-/D [32 0 R /XYZ 85.0 289.8 null]
+/D [34 0 R /XYZ 85.0 588.2 null]
>>
endobj
17 0 obj
<<
/S /GoTo
-/D [34 0 R /XYZ 85.0 345.4 null]
+/D [36 0 R /XYZ 85.0 622.6 null]
>>
endobj
19 0 obj
<<
/S /GoTo
-/D [36 0 R /XYZ 85.0 502.2 null]
+/D [36 0 R /XYZ 85.0 264.947 null]
>>
endobj
21 0 obj
<<
/S /GoTo
-/D [38 0 R /XYZ 85.0 601.4 null]
+/D [38 0 R /XYZ 85.0 362.6 null]
>>
endobj
-39 0 obj
+41 0 obj
<<
- /First 40 0 R
- /Last 40 0 R
+ /First 42 0 R
+ /Last 42 0 R
>> endobj
xref
-0 54
+0 55
0000000000 65535 f
-0000015819 00000 n
-0000015912 00000 n
-0000016004 00000 n
+0000016858 00000 n
+0000016958 00000 n
+0000017050 00000 n
0000000015 00000 n
0000000071 00000 n
-0000000805 00000 n
-0000000925 00000 n
-0000000992 00000 n
-0000016149 00000 n
-0000001127 00000 n
-0000016212 00000 n
-0000001264 00000 n
-0000016278 00000 n
-0000001401 00000 n
-0000016344 00000 n
-0000001538 00000 n
-0000016408 00000 n
-0000001674 00000 n
-0000016472 00000 n
-0000001811 00000 n
-0000016536 00000 n
-0000001948 00000 n
-0000004262 00000 n
-0000004385 00000 n
-0000004447 00000 n
-0000004584 00000 n
-0000004721 00000 n
-0000004858 00000 n
-0000004994 00000 n
-0000005131 00000 n
-0000005268 00000 n
-0000007359 00000 n
-0000007467 00000 n
-0000009343 00000 n
-0000009451 00000 n
-0000011319 00000 n
-0000011427 00000 n
-0000013273 00000 n
-0000016600 00000 n
-0000013381 00000 n
-0000013658 00000 n
-0000013908 00000 n
-0000014129 00000 n
-0000014402 00000 n
-0000014617 00000 n
-0000014832 00000 n
-0000015046 00000 n
-0000015159 00000 n
-0000015269 00000 n
-0000015380 00000 n
-0000015488 00000 n
-0000015594 00000 n
-0000015710 00000 n
+0000000808 00000 n
+0000000928 00000 n
+0000000995 00000 n
+0000017184 00000 n
+0000001130 00000 n
+0000017247 00000 n
+0000001267 00000 n
+0000017313 00000 n
+0000001404 00000 n
+0000017377 00000 n
+0000001541 00000 n
+0000017441 00000 n
+0000001677 00000 n
+0000017505 00000 n
+0000001814 00000 n
+0000017571 00000 n
+0000001951 00000 n
+0000003859 00000 n
+0000003982 00000 n
+0000004044 00000 n
+0000004181 00000 n
+0000004318 00000 n
+0000004455 00000 n
+0000004591 00000 n
+0000004728 00000 n
+0000004865 00000 n
+0000006896 00000 n
+0000007004 00000 n
+0000009019 00000 n
+0000009127 00000 n
+0000010911 00000 n
+0000011019 00000 n
+0000012995 00000 n
+0000013103 00000 n
+0000014423 00000 n
+0000017635 00000 n
+0000014531 00000 n
+0000014808 00000 n
+0000015058 00000 n
+0000015279 00000 n
+0000015552 00000 n
+0000015767 00000 n
+0000015982 00000 n
+0000016196 00000 n
+0000016309 00000 n
+0000016419 00000 n
+0000016527 00000 n
+0000016633 00000 n
+0000016749 00000 n
trailer
<<
-/Size 54
+/Size 55
/Root 2 0 R
/Info 4 0 R
>>
startxref
-16651
+17686
%%EOF
Modified: hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/bookkeeperProgrammer.xml
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/bookkeeperProgrammer.xml?rev=911713&r1=911712&r2=911713&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/bookkeeperProgrammer.xml (original)
+++ hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/bookkeeperProgrammer.xml Fri Feb 19 06:30:15 2010
@@ -83,7 +83,7 @@
- There is one BookKeeper constructor:
+ There are three BookKeeper constructors:
@@ -91,12 +91,67 @@
public BookKeeper(String servers)
throws KeeperException, IOException
-
-
-
- where servers is a comma-separated list of ZooKeeper servers.
+
+
+
+ where:
-
+
+
+
+ servers is a comma-separated list of ZooKeeper servers.
+
+
+
+
+
+
+ public BookKeeper(ZooKeeper zk)
+ throws InterruptedException, KeeperException
+
+
+
+
+ where:
+
+
+
+
+ zk is a ZooKeeper object. This constructor is useful when
+ the application also using ZooKeeper and wants to have a single instance of ZooKeeper.
+
+
+
+
+
+
+
+ public BookKeeper(ZooKeeper zk, ClientSocketChannelFactory channelFactory)
+ throws InterruptedException, KeeperException
+
+
+
+
+ where:
+
+
+
+
+ zk is a ZooKeeper object. This constructor is useful when
+ the application also using ZooKeeper and wants to have a single instance of ZooKeeper.
+
+
+
+
+
+ channelFactory is a netty channel object
+ (org.jboss.netty.channel.socket).
+
+
+
+
+
+
@@ -114,7 +169,7 @@
- public LedgerHandle createLedger(int ensSize, int qSize, QMode mode, byte passwd[])
+ public LedgerHandle createLedger(int ensSize, int qSize, DigestType type, byte passwd[])
throws KeeperException, InterruptedException,
IOException, BKException
@@ -138,10 +193,7 @@
- mode is the ledger mode (QMode.GENERIC, QMode.VERIFIABLE).
- If mode is QMode.GENERIC, then ensSize has to
- be at least 3t+1, and qSize has to be 2t+1.
- t is the maximum number of tolerated bookie failures.
+ type is the type of digest used with entries: either MAC or CRC32.
@@ -160,7 +212,7 @@
As a convenience, we provide a createLedger with default parameters (3,2,VERIFIABLE),
- and the only input parameter it requires is a password.
+ and the only two input parameters it requires are a digest type and a password.
@@ -171,13 +223,11 @@
public void asyncCreateLedger(int ensSize,
int qSize,
- QMode mode,
+ DigestType type,
byte passwd[],
CreateCallback cb,
Object ctx
)
- throws KeeperException, InterruptedException,
- IOException, BKException
@@ -201,7 +251,7 @@
- rc is a return code (please refer to org.apache.bookeeper.client.BKDefs for a list);
+ rc is a return code (please refer to org.apache.bookeeper.client.BKException for a list);
@@ -213,7 +263,7 @@
- ctx is a control object for accountability purposes;
+ ctx is a control object for accountability purposes. It can be essentially any object the application is happy with.
@@ -257,7 +307,7 @@
- A call to addEntry returns the status of the operation ((please refer to org.apache.bookeeper.client.BKDefs for a list);
+ A call to addEntry returns the status of the operation (please refer to org.apache.bookeeper.client.BKDefs for a list);
@@ -267,7 +317,6 @@
public void asyncAddEntry(byte[] data, AddCallback cb, Object ctx)
- throws InterruptedException
@@ -309,7 +358,7 @@
- ctx is control object used for accountability purposes.
+ ctx is control object used for accountability purposes. It can be any object the application is happy with.
@@ -328,7 +377,7 @@
public void close()
- throws KeeperException, InterruptedException
+ throws InterruptedException
@@ -397,8 +446,8 @@
- public LedgerHandle openLedger(long lId, byte passwd[])
- throws KeeperException, InterruptedException, IOException, BKException
+ public LedgerHandle openLedger(long lId, DigestType type, byte passwd[])
+ throws InterruptedException, BKException
@@ -409,6 +458,12 @@
+
+
+ type is the type of digest used with entries: either MAC or CRC32.
+
+
+
passwd is a password to access the ledger (used only in the case of VERIFIABLE ledgers);
@@ -421,8 +476,7 @@
- public void asyncOpenLedger(long lId, byte passwd[], OpenCallback cb, Object ctx)
- throws InterruptedException
+ public void asyncOpenLedger(long lId, DigestType type, byte passwd[], OpenCallback cb, Object ctx)
@@ -491,7 +545,7 @@
- lastEntry is the identifier of the last entry in the sequence of entries to read;
+ lastEntry is the identifier of the last entry in the sequence of entries to read.
@@ -517,7 +571,7 @@
- void readComplete(int rc, LedgerHandle lh, LedgerSequence seq, Object ctx)
+ void readComplete(int rc, LedgerHandle lh, Enumeration<LedgerEntry> seq, Object ctx)
@@ -539,7 +593,7 @@
- seq is a LedgerSequence object to containing the list of entries requested;
+ seq is a Enumeration<LedgerEntry> object to containing the list of entries requested;