Modified: hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf (original)
+++ hadoop/core/branches/branch-0.18/docs/hod_user_guide.pdf Fri Sep 12 
08:07:04 2008
@@ -5,10 +5,10 @@
 /Producer (FOP 0.20.5) >>
 endobj
 5 0 obj
-<< /Length 1555 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1548 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau`U97*El']&XfYa`i\'I3gk4&7WWA3--c[F89c?!rb2I3lrZ`+7;'?h#h]nk79[f]+N7n-/V-h0\Q%]UKC[)Ij!UY3/LA"0_]j%QnAYn/Y='q9H3.(C$Ih_q:[EMAIL
 PROTECTED](I`82AIlDk0N8`Tk'nqa)B3e&S9*o_>,U6B?"6QI31ehp1khRPo3aDH^O&&[EMAIL 
PROTECTED]<'tRH:fi!NEiFi,a=:nj:bkQMpc<j*TqeHk4ad,[EMAIL 
PROTECTED]<&.eDM;99F;*Q2C0!7F4F+N__0m6D!"PI49kSkut.i'&n6mb7K9V6PXNUK*e?_<5t233fR%1RlJKf\CQ:L%h_JpVJ4&U'!C5LQ4co89A9^'A[MbHa^%1Z_,$!l;p@&[EMAIL
 
PROTECTED],sjkkVb"^BMg\3<dW8<+>pULjed7)7(OZ'IbM,Ui"5@;@m=BOe$^1m+&rjU[W/H?+\jfL,Q4LL./upkU,En\5G1NRc^!/8?R'mGKTGP(gI/)`_r(=/D_PeQ>cE)+M:T*^N&AH?I-G'EEsHd([EMAIL
 PROTECTED]'[EMAIL 
PROTECTED]"q1h+u5[A:s#4rTY2<;E+QGPCk1/EWY5Z3<@ruITHn_(fGWBSt)of9GSg6$QeQ/%_I:_"V?0uWf7$Ml8]Y'kBSdpMb4s?N0=gGC_cBF+gr#6j%/L19<893pcfUD3XG0^SR"G7Sjt>Ii$_ceim80?FUp']TcH+K^Z'N6;[EMAIL
 
PROTECTED]/W>g_";!et,eqR%;F$g#VF?5'rAK9<rj=i(/cnS9rk<#X5T*o\K<^sJ&3j=FPg,h[KcXeCX3#l!plWlfJF*-LWRd[apBC&O=D7XPg>R\ZX(3M8oaQ3nqOL3f?csR&#1@)*`Rg!=L5qqu8P%7f>NnDqq._cDq:jmR<d_[jY5%%PT`Uig6-ltg!14?FDHMB&An8r`]In/YL[AN&)-jDr"*_5fF)2DWX^R,L;S_Z]A>F&
 0>0IJ"roS5<4VbVujg895DDm&[EMAIL 
PROTECTED]&%/Xd(]Er>=>'ZmNGQgTR"CV.jB<[pAY^]qsXS6Bu:H0'k_!W5\JAN&q%+ob*0`E@,>jq$;Vnhbb@/[EMAIL
 PROTECTED]@*br+jsF\%@)+Dr;]b/-ksb0Y,uF+V4_/[EMAIL 
PROTECTED]<LL8<ZD*^Psm4DrN0AD\*:[EMAIL 
PROTECTED](e1C"q?ld6&5'sQ#S<,&ABQreS4]N&J2Z!:qENb5A,'g4:mmM:33JU>[EMAIL 
PROTECTED]'pn"*tXCltLu2iseAQu^p6M,[EMAIL PROTECTED]:"jT@<W'mEl)!PmFqj_Ih;[EMAIL 
PROTECTED]>3_chbj)j'jI#oH0G$V.B'%"Y5ft9lfs2b.BSc@<EepNo1-e+LLj5"cT'+6.N_/>i_17,0*M6%$r[]FALS,4l3n)[EMAIL
 
PROTECTED]@=,2^2#Dgg575iX"hn#JU`)eLtE/c_osG-jg6)(ZQ1g%R]4a'k+f=>WiJ'=>os.[k*"Pip.3I]L\)EB%t.8Q)&@]iH+gZ#]OD"X!2>*QjYN^'<3'0F-g9.9.I['bgk)?"8*Ob+9~>
+Gau`Uhg:hN'Rf^__->BD0TZk(]t$_*VJDW;ERon^%iAh]h["7VB^5Qh'0hGYm+AVY`NJeDKJ1F0kh^BAi8%r5dhk.pE'7hh)gM%jFPo1NJa[jKcZb-:\M3MX*6-:banbPf6]uH'I-Y%3-s#52g_]h^RQ`#dVT4`D'mat#Z&HD>[EMAIL
 PROTECTED]"eY&>[EMAIL PROTECTED]/[EMAIL 
PROTECTED]'BXAB->RmNI$Rp=$V3:@8:[J(JO88l3G&dHeSI97hNNnC&+NP$37,Lfi=Y\Na+([EMAIL 
PROTECTED];=jR-f[(2^=K$;$pr)jV/@^%n+(:KQnKSK8Y*LV5nf<fb>*_m?S1-[;&dU[kKO>Y.EDOI.A8"[EMAIL
 
PROTECTED],H0E2N0.bM$Z_tAlOL#b2o0kuHI9a'ff&8O9/8qOni'=O2/N&HuJ9G:P8>5h>YW$b)[NBOYPJ*?QoL(>[6)#pYphcQH*`hIW#h[](;,+4p9^6'XAGu[Hd?B$gbT4-5bi;j&aW)kp*8-+89%BW9R-mW8jj?OD)f>eaZV-qbEdbV:C:,Zc\e?;&fPIg#QSEqhaQ4jhEaU.0koXe;j_N;q+n\a&&`FL-tZf$sPlED5[=TJ!dbM!e`Un2Q,Eh4('2Qt'U_Dhi&b#[Ir)e(;u30([EMAIL
 
PROTECTED];nOXkIpB!d-9ZPm<QXU#*,Fc-k>X[<VOk7(tsOnpa_s!1mP[!dE9Z\5!K3&2$pO;":<6<C13(f,_5Ye-2D+APlgM50eG0Ql*hOPn?:XS?6Xpll0itB#*eZ.1)Sa`!:^RmR^1Vh=QiVJZ'l*"J04S$"N[`!S8/!/EfYaS`'WeIcjh/[EMAIL
 PROTECTED]&0"tBY1irkk:I9pKhb",Oc<%'?akmjUZ/[EMAIL PROTECTED]/[EMAIL 
PROTECTED]&Ykj`Q,9gi!]Bbi")T*r'd143%Q1fc%</,6cl:6Uo5
 \Y/[EMAIL 
PROTECTED]'t2qS_m$?<rL9HlWKfDGMcXl57KCF]GQuo*!W1LA`d3\PkR".r!8+tP(f7a%ScS^`!6-+u_"EV6nJ(bH'!.].pib8MP^a-hr-$[&iskqHK]N46(FBq[2?Z?3>?nXg*N!NqnqiZD14P"dd#ca=_ZNI#Q,a>[P3eY>(r'eW<::&KIHI1IDEV0SW<2d]%oo&J/nS+TYI80S5*kNYe\R2%XeI0Ig"W:*4E.Kk#Ab/`r7q\qcPB)uE!&,sKdipjSQJ<A.MTfGW)-5k9<!@:!9<gjh^GR=UTj1?ReU$XH"1)[EMAIL
 
PROTECTED]<18d^hr`+7<jqq-[:DJh=d+W[Z0Rg;-<WCopO]SE<*(.Or>fK=]*G)_QGl+q"%rVB-))_/]B\d"O:Bk0qQR^5f%c<3"[EMAIL
 PROTECTED],H*C;r&/e$^PkHAT:R!s-m7GRN),6k%#Hc>K_:[EMAIL 
PROTECTED])s_8`BGqcfB-k^mQp\MQH&N0"@uWW-6P3?%Od_WVAq==$uuuq/D!1~>
 endstream
 endobj
 6 0 obj
@@ -596,10 +596,10 @@
 >>
 endobj
 100 0 obj
-<< /Length 1906 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1882 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5gMYb*&:Ml+([EMAIL 
PROTECTED]>rkVD>&OHBUcULl0=EgJ%q4!M'Ik_XA+TUQ7t+b3AY_gke(2.I99kT\3d6erqUdR\W4;mI:*"$[/,/;$$#/Yj/^GT+'3BQ/P`]5e\;]Q.WL-tZ+0+QY5Y>a7LD]dB^)[EMAIL
 PROTECTED]@[EMAIL 
PROTECTED]:/$rX3n?80ksF:@Kuf>ZZ$M=l3n?80lU'e!6>1!%qYCu0:fZ37m?Ln2m-=Uaj[E1?qp][L]NV56^TIt;Ecm"e:s32.S=9bg24qEYj_f".V+PuM*a,B5ra)_A%*p*LEJ)_#m"'uqgDm_5(\MlhND%nYVXO;@P33!Ebc?]cWm'[EMAIL
 
PROTECTED]:bE"EkCWo$G%WKi;-Vgg33NF5V*XqXQ3FKb)@^Obkkjf8!8V6KBL;_O:%AiiJAKs=XIORKH2lfO:JWHf2Mr<CHo/q\MhXF.CEZ_FT0`/@.[49K#ImA_'bf?e8C.qC._AI7:'N+:g'9R0knN0\Nq9WJiVDRToT4i'8.?!:CZW8NV.AJ[m6X1Vj4addt2YX7`X*2#IVB&-HB7O0&k>m"R%FlOB`%t-::[EMAIL
 PROTECTED]"[EMAIL 
PROTECTED]/7t:aMiaE<kN;n4(INUb0mTO/6>%.;L[$)d4Ho7:mud<%;\NGB:#2\I<E\B,iS_WbFfP4e+K`<JqDRV.hV\Yul8[ut?Eg0Q5U-_i!saTEPusl/9I+f(SK+%nWjKc=U9J.44aR1_9Knl"J(+\N[^;#">JqfZ*K5?Cgmnb\nOY7=q7aVX/#<r#GQ/:DWBl/Nq$[=i8oiQgR[%75,7eISkop57B)JN?8\$Wq5CIlsT=;`d?#K/"l>4KM#c!?pjFm1e20Xo6PZf&JSislgQ`?;9l'7)-Lh3LL+Ddp2BrXQab)+NWiO[kmD0Vp\8u^F1UQW04i;[km&nJ$?_MR",O;k9h$dXg^1ULY
 
]W<f7g%S*J&IW".M/mitSLsHN008d?ZqpPXi)'#sbm$Rm#9*$<)+`a$L&<]+\TdeHE"Y+_>L+WRDG%NlnGe+UE$d6R0eW4;[EMAIL
 PROTECTED]"\O'%n%$\OI(?G&@aIIL`H*YM#d"f)[EMAIL 
PROTECTED]<\(0:I]!R0-HsSa^s+[*co8H1NRcRJj;Iko4_;3bgY+\rgC"YJ&'[EMAIL 
PROTECTED],YRrO0ApMo[P^.4lnIqZDHPe'>KFG+R&_I)I3B8$_$\PP"6aRpoq'].6n>"Hf_+m^jB;2_cglW-6isFKFHL)3D0H,pm0qS\E-9tA\N0$^Z^J.<!B;iGS0*#-[K>lRS#6S)[EMAIL
 
PROTECTED]<QPr\mo!&nDt$^F.R;B(tS]YSkA<3($amCY+1l0SXNIMC]R7KP[<9m4oOEU]DS17Pttga6QO5:bTT;HDsT6A<83aqq+]"l=^<_qlaFEh/RHc1#ZT\/gU"Ua?4AF34qB/!>s\OmDgK50C1bd)V2h36=LQVi4BMl+Vn&[KfLR)h`V'?c\pLsODG$<:@)k!K)kk?[d3sU'Wo&[9TBh'E.3Slh/[EMAIL
 
PROTECTED]"i,U&H-2"h%jTS.HYtLOJPG$$m&*.02S=:qr/ul7WS=WCGfQ"'mToAfd$orWDKo=/-(@[EMAIL
 
PROTECTED]@#g[B=66J*"4HI4mDOO/i9Sq5RQE`der!`cgiEhe:hTgPJJrHFS.H&gGo_&R,!I([&i-@:gBH$B([EMAIL
 
PROTECTED]"!H%hYj7`5Z.Opp?)TsgJr;4/Jq<_$-!9&(XYj8S$#R0+l,>+NJVlPpC=OG7A4*>qn`,6)DZ[5B.H,?^'9^F<KN\#q2hpo/[XM8pshqT^;fQBDF)M5%eT+./Q?QZ<fD#u>:rrEr0/PH~>
+GatU5>EbO7'[EMAIL PROTECTED]/tGaMEc:N3G.W0;[EMAIL 
PROTECTED],IkF&B87Eaj.aCS]c4pT?*LWebb-P\!:`GiSV[UjOfLSq`arM=T/+;o/rLF3OdS?5?Dcp/^?VO_,&[EMAIL
 
PROTECTED]"@r]O!*V]_l7L*2n#LXQdF;TR6mD)lM-02/^/5>=PnWPJ_oTUkCSA\VMkkN*88/M+t(F%lkLm9SflM/<:=;O$E(.'[EMAIL
 PROTECTED]&!bH3;[EMAIL 
PROTECTED]'uL+Zo2F[:iOk\^.3KM=ls5s4ik(V0,:[&7f\dcLlhBkhipMeTRj_V+Q$,+6+?drG+QD*np.?m0%&`nRF-DnTrMuZRCOc)OH8^<T!Cd'e`1Nl;ou!<0\i=""[EMAIL
 
PROTECTED]<=dWK-;:%a'Om<N-#N$,d#dI&;M38g_X`C#ilM'DcN$Jd6#L=PG;(?PaL)/B-`jrmQ&n]Kmi,t\e\YaE>48>5)[EMAIL
 
PROTECTED]/]$q5#K)B6b_W\+bAXo!`"HSZ2bcH\qC.^9*78`2eWU_r!j.VGOjN\4PF,sQCg,%2f0XN9=D7cB?b08eU>5[GR,AhCrL#n7#Fh>e(-6U<<E=Ri+#3eng7i+MT>mCT(L1ks8CG`lAo;!jiP5<]5##`uG0#Mj7K%\pEINAc2+iIFt&04c4HXVBrn9g,@<(ZnWpI=d%<td`%n(=Lm<E0eYjiHHY;j-o`*#ba!Wt/(:i!(NuW1,d(MD?fr'CP(;7fo05]d&BV?n%o6!B[h7O/atTlU>[EMAIL
 
PROTECTED]@nW9'6Kj]ej$[nM+SsB0\iANm9Tf1e8Dsf,)L"q-*M4t."E*>H!5c'V`G88?[>BAj+lS;c..+XpG29dPYqX*`YhO1jRkBgKPaG&nqQO=.q9$j0JofBKl4lAa\NWm`NnW([EMAIL
 PROTECTED]'HU<M"*.<'A?[7CqVXDj*5\DO*lrGr[9ULe%H.qpTV/PoKJ\5hl[jZj-88CT^#BlSY]
 
=OflDlCj3tpIY2;HK%)0)WaogE*9r-.b__<Mid0P?ih"'!,jr1_GV;t$hEVlbBA^YlM??Yi.Sie70e)fn[9^XhRc!$8In(oXjYtXM_8L7si\kh1Z?Zdr[J7k/7XC*P:q/m"p#8d=RjCVL;2XN?7i+MT>mJB;hdA;/@;]U1e.%ioZ^bV6:3/8OH%E;UY[1HhFAt-%>[EMAIL
 PROTECTED];:BJErl=>[EMAIL 
PROTECTED](9'ngj&'1PpBnnQT,9H$NnR>4Rj"pAFB!*(]\Y&5qUF8s4O7#F^?SSR3pkEo6__uqBL?M$<+2A."Ra#Vf"]d61=#Z50;_bSN5I.%%t$5b#,9Q%9&%kZS,3fDn$J\[(bIaucD2O19(s4AM!-MSF$N<##Vfcee8CE-$B+ctNtL_*)b_&erNugjk"OE>1M<Rr`7&;Q/M'l%`sKFr?Mc;(A:Q^Q:n'QXHHjYsLoZGuqujmg1[)iMUIuHUrq+0\SLtEI>euVYDAWFq,@/IA'[EMAIL
 PROTECTED]'eJ\'UW5BID)+<[EMAIL 
PROTECTED]@J'Q9XK"<ZNtRu>!N["]<f^'q'G]>R(@^,Bsm9f#_E%]DYPHjt.B^sGg,R-pMiF<[EMAIL
 
PROTECTED],!ubp[jlnZA75.U3)mSRI4YX*,FJ%)Ud?S&!!5-I8[p?S$("s_Sf'+DIi)1ND1ojYE)q\$G'C4e=loi)Ch<he%olnfbRJ+V?8u+TWdr7d\$2kXDk!*]&S$9^VDj,ebBG`T*rR%d0es%,[EMAIL
 PROTECTED]:[EMAIL 
PROTECTED])JZl/+arbpT3\_3ZRbj"m.=DY'qRT'27c.f7u?%c[Vogq/lIjhS/dcpPea/?X20lb"fBBA\n>L^9XX"[dXCO=t7S~>
 endstream
 endobj
 101 0 obj
@@ -611,10 +611,10 @@
 >>
 endobj
 102 0 obj
-<< /Length 1888 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1875 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5>Ar7S'Roe[&Gi[886(crFX`%GD;$fq!i/KFm:"\#Csf[,=nHfmOafU<(<&XtP-),\!n/:<[EMAIL
 
PROTECTED]'#[o>GQ6ld'JunSFh$3O9L-he+$\IQnSEWVDHD=RSb87;'5B#EJR,%eU;SnKW4\N4X^=lm&4ZLHPSbgUnK;PI;Q,Bm(#T,5oGjWh]M+URk5fh49?1RGb,-3N2liUV9J[Skat$6sSX*+:H`LT!)bO_.?.78!Y*Wg'R&u0"0nHl`Z4pP,=Ss>O2T(pViF7V-9_;1J;**]%HMc>".`:[EMAIL
 
PROTECTED];4nr>DRUk.p<X:4D>Vf$2;dh"<jMMb'%gP\-*tkI\H:OjP)#!q1Wq0KJFI[_Q6cd.2rIN(AF")3PUnaD',K':e;]3-<2e./jFmVG$P8-KLJMZiMNY?hR9>^e[#s4NU57C9as`1u,%caJh/UIXOG84Bnh0*`P\nsEI8Xqe&D=:0VcJ1fL8KL0&Rft1F265!-arm6Xt*=$RZf)o5&#YrK-o`^aF5T2?iX(]lnStB<[EMAIL
 PROTECTED]([EMAIL PROTECTED];?JY=/LnBfq(6.`l-C)8KLB6NlM`1i"<c&!g'[EMAIL 
PROTECTED]<dY1[>BEARMX:]5h*qs`I:tm4`KR:EI37mSf<[EMAIL 
PROTECTED]>7F(&Go_j't1?1arfu_IC"[EMAIL 
PROTECTED]"^A]o/Q,bTlC8c>Uj<qs/,+56M>fQ!YcFiFn:4;*9B^!R9c,CQY=:H3;I8+&=g,Cqo66isRRSSs+Thq_)fERmDE'+VU;+XC\eJk6cB:H.0d._]>oR0;!<=lO)-VNZ!_QT8rE3e)$TbNuXY6E`st,>?RtGej/_R;[EMAIL
 
PROTECTED]@?XMd!<9DU!H!jAi*bjr"'RJ<qD5o&(^k:PPf$aY<`#L1`e"N?r?%Q!H#toZ/Q,'),Ll<>X"LXrfp"2444O1?
 `'q'C]&[EMAIL 
PROTECTED],Y(Y':pR9S14<e`+\>d.a"*".mL/2Zj^kH/Ou[X;J5gN:i];BP2k&AQ_Id@/LpnY)GEs:m$.?8X<c0g.&9MX2KiiAY+nSE0I:eEP+a)]m6Z^#`:[EMAIL
 PROTECTED]@h;UU?FA7lE4Cm76_-1.(l8k!B8,sBP>[EMAIL 
PROTECTED]>rnX;-j',FA=B?&ps+[4<kOao!U\+r+bR`6[h!2h#De*KR</(bYl0*K12-&Ga\q(uC_l:ap+CX!9%Hu`*Cmc+W#po,5pd'V9a>436sY=Z\``lnY;W;?`IT4XfAYc./lu&H;&W,[EMAIL
 
PROTECTED]"A<jqCQAc?h^?oYJY!nf11UC+U1NP+OVjRL>#d5rrc^fu0M7Q6+G42B,.M&6WIi5bSf7TFn*Q(NVp(F2.5\VA-kG/O+MWU>X3:eWC1edOgm'12kEsEpYF$ib?6ZoE$ZNG+ofV.FHdnja6a?ZGn[/3)7m3V&U4&2P(:d!RTN^(`9&UPL2LK[08RTM.]Boa)s&[dIr$S41\(,T(hMUI.'4T2dLV/f([EMAIL
 PROTECTED]&[EMAIL 
PROTECTED]<<;%:GQlqgc'rHL99]Dcb6VF=`<HriB53Mpkpj,C%E\1Yh^:CtM_SpkHg<+2'HlD^JZS)$s8ADn4Kgsq'9%goEVJPGc<cMBP[>!?tDKYq+ho'OfuY]]JtC!0:g.g[H8qGB)ba=k8,8ZZ2ES(kPOlhL,nm.aWp8&)[EMAIL
 
PROTECTED]'UaXacm^jpS+ki<Ba?E+U6G3Ddr1gl!!Cid5?4BZSfj*niZW>0Rr?`iHEc6%5W'!B"@<On1KK?Oe.Z<4i]W'L^ulj)@>kDSXCb?ka3Pm$P?BL*;1~>
+GatU5gQ(#H&:O:S(jY?MfI.pil4Od7Ep;_<"Ij;!p7^4G=e]akP3CG-h>D[MgD#FoaHpERCPW0TjIA4dF/XLES,>I>4A<h<WW([EMAIL
 
PROTECTED]:2RoXntTDUEhp%.dCRa9J2n`+LNV$*4T3g$Ile>g=lUAi[/"Ze`&eND`eS]PanV;C&i5+d-;0%_48cQ>60p6POk]/s8<eDH21mp1m6Iu25&jT-DT3U6.R%^:j73Yg]<2e5NAZHj:"GO)c>I`^)trQZ)=3?Fa:MWs#"b^$2g#U;5$lBA0)Ue+WM1Z(@dWYVls?O6?&cZJm>d&&j_)t%OV9/7sJB$$Q%)pX"oB#Sa7T(6lNYYWC;Nb<4Oc*F.hi4qJHru,4/8WF`9$=/(c2`G(`I$P`ER*8T=e![9Y>(,2h2fXnZ?LRcR'8Mm)LUp'GIL-lEM7/(i92\n,>Q9ekYrM*Th2"0PLFZokQr,KMnbg!:f.4B4J=4H-jnrXS=iC/=R!>;)&E8em>4DBUo-tf$?qnDNH7b%tc5WA256^4O-uqFT/G/h4hNf9h.HEoMQNGT1*`,ZD.T%gVUfJbX2[`<nX=V;Rg,q%-,NSV>"QJ8))`(SA,&\to!>mUq<:IIoQ=KR5pq0n(c7%hEN*9;'T(BfMg5'>uK#ii4+G&Y6N1Hn=1L=(e!\E/Q!\2Il6\Be6moEokM+O!61n!EIq+G3&"[EMAIL
 
PROTECTED]<0&3[HZ:gDi=fE=<.c*$X%m[682<W#7f.$gU4<$Y1+j*J]"u*O2(dY!7nD,:P#AMW;r(,3,@*\odN]Xt*^3+^Qm1l'HYRK)FD72T:TCWbrOj",ZbJHc;.\&TpZ)n(k#BpIM*tA'[M$^-p"dYE6cXAP5N3KCILcTj9XFQLb)S.1'FedKMT6[Gr]-h^\.G8_a*/[EMAIL
 PROTECTED]>*OKSrT=1j0XG12/5jt&46QIA>e?F:[EMAIL 
PROTECTED])qI_!=rBj,?ar%2RL_dZ0V3B?r-bX,
 
YU3\G1]E*$O>/>YJk`N8YOSUSsk?[2"`P9A"HRCZHH3Gj-d/f`m?btUl!D92c9%%W&,/I>i:)=jdoQnm:9Lm6U#LPC[VRSQk*;#M1>KlN-JlSOroj*dkE$uUaikYgkOKgP-n`67b.]Z\uGXM%d0[l]pg52X].JRiT$/kbkVa3"(8p'[EMAIL
 PROTECTED]@9:Ii]8)q&`kSi?r2^I:^6jc=_OaMp9,[EMAIL 
PROTECTED];gJnK+MCpf(].8jN"JHmfArA6'>UC+S<9jUU%]2&&dV[VOPRf][+Q&;Bil'QCuCNS0]?&Vmj<j7.`6b==IK%"X07_LrU3hs#sEd-t6%#<ZYP.1DdKgg9-N`/-qc6fs7j$GIB<l/@W7ijj(;^MQk\fUL$(+dQu11kTuPpc_sqa)$&V\ET_G(TK)Q[X=>1RpBl+,"n]Y<tII(Y"*>G;&Vtegb:IqY1GcN$NWnf33IWra0R>0<b^7oAuh;Zh#+-eR/a&k0:Ia\MW2pUD:03fp=:KIH'$83j2aZZ7#&u$hXJ\.,SpHWOg(IA1*e\50<N5s[:O&[EMAIL
 
PROTECTED]&f@&^6(O(eWF=)4]Kk`"&:.V#.nuB?cVW?m!H\R'3r0J%^E5<q?0RA6c7"t.1pRniN5D#cB/+Oh*.edbpmu?,[EMAIL
 PROTECTED]:[EMAIL 
PROTECTED]>fIk.l'c(n*`e^>;toUmd?\RY!^mYHe3m+18PB/q7:oO'^h%W=goTg)i9XhdbR;YT7PV'KJ=hafMo7,6A[<[EMAIL
 PROTECTED]@QNVi6uTFktE'XEU-ef1?=i?f[s7,k0B3,MP!&QX8.&J2#^F%;Mr,]tA[H2D>[EMAIL 
PROTECTED]>
 endstream
 endobj
 103 0 obj
@@ -626,10 +626,10 @@
 >>
 endobj
 104 0 obj
-<< /Length 1971 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2013 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm=9lo&I&[EMAIL PROTECTED]<hEf$pbLOF_p%uDC1RCYrXnP4[:[EMAIL 
PROTECTED])/[EMAIL 
PROTECTED]<cEX++3lg5E]VX,UUN<Y,Dne&UkM2>2G;>:$\#X5@"I?JHQZmT=i\J(&T8E+"H6r>dt?`'6!AC]kB#U3EX)*Gn2/cO!gs[\JVQ!F=U?obJ&$bSg;Ill!KZrPe2r%sca``V+Y:)=j,=ln)T&o-)G+]\!7tR%d5hr:Un/W7C`&>reJ9NqeYdDpp1#^n0r(ei(#:I$O9n[C(1q89B<Go9.63/&]W$e;P4;C[5nSqf.YV]=&CH35-sLr`2.CN$\$\:!+Ku1ARS(d[6kiJj-(7M\#Yu4Q6*D0!"&hK%I;J,k2DNLO_*49,cF8PJMJh80<f2_"dZ":k3&Ik=rd%;?LZ/[EMAIL
 PROTECTED],DUd6od=XD(fC%\=e`Og9C66DO!eDX[8li_;CprV\th5\:[EMAIL 
PROTECTED]<[EMAIL 
PROTECTED]&"]r1IZQJ4!cFnTI>%)2eDXd4=J#"QiO`R^1Vb(E9L*QZ_HTtXogpNn>\BdhS(L2:A+C5'R3B2<l'l.#)p4lE[)Ne[lR26`LbPY&n6J#!:U<N2>`e73^@&pqH3;o7WT]img#/0#u^K<MJGI_WTjN6ZrY_.2]4<=A/3^+,,sUc4tq9aLr,6O=`P'JHBp%GGhiL_PdVcd;YZcGW]!TQV,L7$6&j:1hahn9XNsIc?j/[EMAIL
 PROTECTED])G*4:a90pG!>H%p![cR-/h/C+*;)+@;UPnBs7"jKRGYIMU#64\.o),[EMAIL 
PROTECTED]/VfTg;=etHS&mZJW:=dq=B1>>sA))S-"[EMAIL 
PROTECTED],iQ/'Wm9%AC&8ui?VHY(>/(K)?&7VW([?KpW"%H2MI1ui?TJ:.1i3s>b`'I8,U7hcr7g`E+V'YV:[EMAIL
 PROTECTED](eNH21g?2$>rSIh7]!a*^`1?M;3ZQfl]Ousb&,iu*q-'BaiSJ8CnRa<9
 2P)aZ*Ca_a.*4\XQ,!BY=?5TQTl31)4j2'QJ7M)t<A=&;[EMAIL 
PROTECTED]<We@([=mZXp09\Jg6q'T+nDb!Fl-hN_n^;2bmj3>k[f.KF7Qj/^TN>d1_L>j^M-T&U#0%F-[3BcR_fdn*nQ[u[Q6`9]XPB<P_+qJ^0('Q7KNP-7:p+9:02>$Djn#j'Alm?FQe*5TnXsl:j+\U-bV/^C\NY1$7%QtRN[k8Da5j1**8C7'qs-F8d`?,[EMAIL
 
PROTECTED]>G!,e_N;k`nhV<7KP[N>]Jb`C5[15BF;6W>[1A$rNpq.6Lt%)l#?S]+8Vd<T9!a0fHm%n//hkb!a\Ff[1`&U1j%&aQB>r,;Ko))nkWP1_N&+2l:bJ8V25J\8GBcBKk(Z\Xr)eU5r#@;[EMAIL
 PROTECTED]:b0\f(3n?)'X3C!P)n-LN"r?5IY^:n)%8(FMAY0!e1R$a>$2>AUIb<NA'qN>[EMAIL 
PROTECTED]'l!1^^J)YGdU-qVY!?l;ZT2rG)"`_1$Z;E<UEFPuQ2S?`fZfm?Zh[3.3Ig8oqlO*aqBqVuRFQC"r3!6l.Q>_a+K"D.aj9ZQhR'Qn/V)[[Wf7//Ki\GrneBEOEnRFb&[EMAIL
 PROTECTED]'rT<tV<6'ApLHlBT7fG>((tJ9M(+VKXC.;[EMAIL PROTECTED]:c>H0Y"[EMAIL 
PROTECTED]@87"[EMAIL 
PROTECTED]&=/4M/.20u4?:.uR@;WEl\0_c\>kBq;3%Q6Ef2s"b.s>oF`fKScu`Ug3drmVFZQfQgP6#LpWH<f4BkM-cYtgBZ=8&lDo0;[EMAIL
 
PROTECTED]"R!MHtZV;X5`jOcUb"\T).?,*&X=q8&*>75sl=rp3ds"%EGHp7[&tAQ"K5i:q%U,m>XY36jb(]jD[0Lj&=Xg8<%Haj^KK>[EMAIL
 PROTECTED]&Eg4qUoNh"%=5`k27b(qdcTjp#6`<1L=CO?*rsr<G3J9eZ~>
+Gatm=h34<d&:aF]_.,7L,7'B^a5iCVd`G0dT0%=3q]LNqeGsXc39U;</iK@;(:NHRR5bsQqsi-R=0)#+p#<l8naD'3>PRr4&NR:0/XK-*oP+4$Nr$IaXccnX`UA_/0:kpI3e^Ah8*tDjGjsU(\mpL*r..:L$cm%*C7H;60[HSkS_[I;kbZt82f&9;P]$2Z.D;@V5M+<S'c0$(BtH;;)1RCEhX!s"?ZFKFRE!^Dcs58U2\3hN/[O'n_E#3o^gCPr;9SPWok_s^f"(J:X'36GmbAq<\Zb9==+d'[EMAIL
 
PROTECTED],>l+^rjLCmNYV>lm0&s]/<lKt/CcH;<Q2E14Y)W`D9;NePdUs\]&#P;K6&9N*^J48p0kB*\f+V2ZPC1nfP[W>[EMAIL
 PROTECTED]</[EMAIL 
PROTECTED]<G19>M3cEMPhH134XeZO)#ns_*3&M2^]RNnO:I!52+LZq:$A:5PP<2>[EMAIL 
PROTECTED]&7"[EMAIL 
PROTECTED]&Gm(JcRqLfH;_2_<-)de^0]n]n3_n:s^MQ!.&+=q10VrXQ;)!b5B!YSZ!aK^h\MO;&R^cO*Bc/G$M'"DeX$jriq0NZbY4WZmW+W-MMG#1$ClOc"[EMAIL
 
PROTECTED]@Kff2m(n[c<1j<>-Te5_'d2c2CX[d#O?@(GF%%>SRAj'3TrZ+lg']X'a5+!kjR2Z3p_I,$.X9BI\mtl#6uNPq#N!*C]If(G19[)0>lVl[+lbH>a6JrCE(LEXkh=VV-u71'n@(XnS[IA3<@=r3d7V;NQbX=ur#b)CSX16DsOWg;t[/B!\S%Asl<2j,uV5IR"O^OAaj(Z]h97JN#$NMV8sLg([EMAIL
 PROTECTED]'IpCt50f&[EMAIL 
PROTECTED](6Ee5_1YYp[b(L*5o-"=`!1/o!K&m*-G>?p<HIOddtjhmDoMaFp</B7!ZSR-Z4bVkqUU/kP=K6W#9
 
^U\*U0^mVkel_sm6[%4%_N^Mrnk_4o\lQ&/-p9L^:7V&5_q,XA*]JU!)'\ff'!k):e412gM_+Rc#*4%&f!KUA^+htFl":#*0#7[;elRP;;WO,(-CC)J#9nA?6i2DlPg3K86G/AJV$Y6Y5gR'p&/bV/8.I^#O>t&BX/$W'3G#jQ21uWdf,ZFB*7hhql]ptf7PU?o!'4WMsHB'1kIrM_mTr4]PJo.fBrTX/t'Oe+->)SRa2f`+fF,[EMAIL
 
PROTECTED],REpS>Of"lYph'T^ejjk=fi^Sgt.R2WIqf-iVHIi<t%m7Ra$qccnF(i+XMLqI%q>(Z,;5=M"V6A!u5_[G)E#)\/MBS5%V'`#hMG:g\U5]bK'iY@(?6QY7CeuaS33F_M1ICDHi7m=`kFD96k&hEY%1_"Sk/"LTX$)%RB:fSm9f<j:@s<M7,kj\79dlMj&?`ff;odks]&q7ic+a\of,[EMAIL
 PROTECTED](8W1eo#"0QE6M\cCZkCIt)[EMAIL 
PROTECTED]:U$Z-AU6aT9:X8%B*J3^Z'6MjrYEuIGF)B^Zsjq5YE*\96G5FU$F^7#>c7b6a1i`sP-[j,lEr*JNU2\S7P2DD^IJC(gP)[EMAIL
 
PROTECTED](kmBrp9\k$b2OK9P<@1,?qg%]&;_p(p!hW`HbD*4+K!-g7j1g:NI.#LXZ1&lk]8IBTZu;ESOW(popA=A4T6kpK-DhpDFV=6c*elZIa&[EMAIL
 
PROTECTED](F3U<c0[F/:\Fd*gZ2:K<:ui(n5+$%^SN`KFI?U4NKQ`dm+<i5ZZNP>F2)S[b'YKI8Z=)+*)uq>9qk<BrYcet!S)l>B.c.'TISkut:)(>[EMAIL
 
PROTECTED])s6,O#[f4+`7O4b`_=mN=(]h>U[/4FYZ!BEe?,:%oGSULSID>I2W*U3q$jU-D"p[=\pAmU[*PiU1qVWmg&sD$7Q`!SKO6^.L5cBh23.W!Mn]&<!_kdm'+(\Ut(bV3uA5a
 b%:O-&sHc&A0Lu308iT69W0L5%j-H1/j~>
 endstream
 endobj
 105 0 obj
@@ -649,7 +649,7 @@
 107 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 394.5 356.25 532.85 346.25 ]
+/Rect [ 394.5 300.0 532.85 290.0 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (hod_config_guide.html#3.4+ringmaster+options)
@@ -658,10 +658,10 @@
 >>
 endobj
 108 0 obj
-<< /Length 2132 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2055 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm>=``=U&:W67i*2b?L`m$h,Th*W3G+_eZ1?7Uq`p@<KaC0t4JJdh^>K/I7.?(KO$*QX_!Z[(rH85<eUI,UIe.E/N$n/eG2l`&AaFS%nXInjo9Nip=qhnn1EJK)[EMAIL
 PROTECTED])[EMAIL 
PROTECTED])2M'L?Rl*\$4\sE+(P6M[sZZr:2G.gM:ct^ZpcpmE^H>sn-PAcCo`Q,(E>d_[W?\^EaSR$"o?Af:rj"=ZO[DNlGm]JF>Y([EMAIL
 
PROTECTED],M"'$MYO#C&+[3`PLJNZn*UtEVoYs0.Vh>)&\#(FC[)-bj8`JcnYaleNVbkT62J'[EMAIL
 PROTECTED]'lmmBi&agF#G6YMq>CZdMc=NL`1q#2D(gm#h_6i1_DYK`j-H[C&[EMAIL 
PROTECTED]/pn.qn:ktPfG\<,-%JSVMTIYS")G,/b9)A_3ZeubAOCp*mdL6,DT3/lR/qLZ=>0qrWk4-:6qe;+M-2jddX81S-K>73[a&C!lo<ca7M?K8BB8eOm'?g<*Vf:StC'9hKBqa'B4\nu(KbXS%-A0G,T0Cc7>SKtUX1GIP53,SZ16rUm^n1^A17`=]lHW/A?bi6"Z+N[7"f$ldGqmUN8q:abWWpp?3t[WZU:#3I*5V%%P=2cW]Wn;qT&WsGG;?B6*p;[EMAIL
 PROTECTED]'D>rLZk`KG$1cu-HH2$J#5mbO;3aDp9/;)[EMAIL PROTECTED]/[EMAIL 
PROTECTED]<Fe7l==VR3_IoP2fqFC66%2iQG7R4FTFT?-8lfJ4@<:WW,'3uB,@uKi>llQC-Qi,LR?*B+SP4W*9Tf/g4T4J"U-&Eg$_#S6NREN-F4iFBU,RZ>@=TF!CRkMoU\<mNP^bhC'[sCbMj17'hn1]#NIL[:G1Mi*LZ:MHtXjC^dAP8J;A:ZC[.+$<T,>7V^#%A22,s\LGVob-'.IiKFTn4ASWL%WW8M^#>lST8#T`]Dp[F4')`Bo,Xl7;YAYZSXiFX39
 
GTp<mfAOK%;&cNdC99NS1Jdmc'iHZSm:^B&Y/H!#t7CO\B&m4iP?nAC+:7\3:#9JV(Ye2+C<^hG\.6n.GGk%2UAH8<[EMAIL
 PROTECTED]>)lm`.,3P.I"C>fGr\>/M@:]dY,;o0.:*kgIoL)>?^:[EMAIL 
PROTECTED])Is<8cA0E!g8V2I$QpqDY"c*+8W6NnHgL-[)6!bHuGS!=t_:_V*A3M)[!#jCHI4N;,'Jap-9m"&>,SpLF7rK:'C&Eg;BBjVi:'#J`/M4N>:`JgJ"[EMAIL
 
PROTECTED],[9e,'[C3Jc3+Hi*S;QU&ta$&-T4[h6YM8![VKm<"V($Cq:_9<I$TP(#6`BWigO]`AJmb"rSU<4$/#GuXb(JW.W,@lY6CFI6a1,S!9(OcDa68d)*\/C=I)r]_^K6$_JGMdDT%([EMAIL
 PROTECTED],0O%/uP6Q1u;[EMAIL 
PROTECTED]@ND/h4\;*"6K$=u$'"@\mf2M\-VlSC"7C85Etm.g.^u=aD'':2>@P]pJ-ZmoR5&CfZdW@(mK71DU4o-qMN`+`0HqpP?7nbDjp)ClEE9:mOjoW(s=%aZZY->4m'JaB9L6-MTa*F'/dL702W;^uCPa)ti:C</iuD>i+F[V5"f$-jQ#YqHUcjETOn__0aIP!>3cHoIp"S\pAM/:Eo!_3!r+p*Z+uV^Y'a-bY$\kN9XUJgSXfTl1)%ge*T1IF;duJ2V/h=Z([EMAIL
 
PROTECTED]<hDI'VBl?mJHI4YQ(1hsX`2m*6!g0Q+VW4Y,NRKSGKKjMI6hbC2ipJ=En4^OY=F,3]ML!Y2JZghW,L\BY"pMnoEY1SmbE_Ia$<Y.^5r+;V0^7B6nRt+lR4JZ9a:[EMAIL
 PROTECTED](h.H/e9G1[fN-#T!o$MjYqi;8!&?n9Xb.&[EMAIL 
PROTECTED]"-:r<lO+kpd:"[EMAIL PROTECTED],-Tdri9o6KNc
 Qu$?bq^.$j^u^NsaHAL"TN>t;Ei#$n,anTY"i.GASG3%<b^$f;pj_:sGbc8OO>)[EMAIL 
PROTECTED])Sh:n13e0BngSUnkfp:al,NTBsbEF$`nO"[EMAIL 
PROTECTED]/IilK$Cn,:4`!:N.%,Oc<~>
+Gatm>99\*g%)2U?kgj8kG/T_Y+-UM"O-q>3f/[s,*jcQnk!YLT4lSH9^6E2cTL;pnSa>^',sqh)&bl?&H+fXE\s[u;+n&#%^7DD)L$pU[9DOp[qX^5>?kG(GkMG7cO4ijRjdD?Gnh6a'>[EMAIL
 
PROTECTED],b*W.h1BVnJJ#2eg.(reW3OW\aJtQ9#/<#FDo\#=an<bB$PF+CW3IKbbRr4N*2cQ`.UVq::LC[X4eBN*t#0XrF^:ZrWWZuhrSbZoJIJJLXZDP#;N%>8.2LFo]B4UPfS)[m&AY6XBdkiT*Fd2:f<@X`IjQbl)Pe6,[EMAIL
 PROTECTED]"m_BJXZH#Z\7ULDCmY,AV0&[EMAIL 
PROTECTED])RF8SVVIIP3:W5$BibB$nJ>+i^L,SP2lbI8Wp1K11$=an5gW:GJ"YkO)*TA8QD!;J'ml<YUiu`*FQcR_l$>,XZ]#iJpVE'6PE&=V]g`Z+Le0j9BjHX7bD*>[EMAIL
 PROTECTED]>@1s'[EMAIL PROTECTED],At"g4")fMA+?E&0,V;]%qANlRm7o*LDB&VKB<@[EMAIL 
PROTECTED]:4@<(4ffEsg*\9/+f,jm99e74Q0Vs:933$:3^^'W?16dEH'X=DGO)"!,la:[EMAIL 
PROTECTED]"-4Q2]*-C1jqdU+-Z+^$R`oX"[EMAIL 
PROTECTED]@E\!!0.dJu6LaXfC82Qr/>%XsC`'pcO<cnO12]I9rp.u:Ah7>?!4Ra=aP8sejia]_M-+&$^U^&6QN<d^':ID:[k7'=n;!ub+6G,'Q*'gHF>aG".*,#(E+_XSP23Zp8u?oNDU>[EMAIL
 
PROTECTED]))@!cLK7:<OppSKle2u=J8\XU5X;*H,*fRr8uno^:NjD!=_W-)&[A!Z.hJ./JB01GO[I'A"75-qem-.k."JUrUJXG".DQCRafN,%6fNtG[=b7u!Jnj9Tr]WH/If4`1mrVJHHf\l[1"$1N#XfAp,f<"ClZB4biYS#0W-X2Fr^+
 
pUJUY\TV3f)Q54HA`3un:!3K:bV,(^"KW3'nm(%BKUmQ64K7C2YF[ZR*][g8VUKf41976iu98h&qqP_:E1pgPpH5b1.S>8Arj-"PTF<bS6(TAfTfn2W,iFhCF*uED#o'7&nr]T7'*ZN&>;?bq'41HD,`LI-cA:U"ro!jR9LD_<`;ADj%K9,YSf-QfTF%2Vr]Mb!6Ze8<An;:K3(n9Z'>NrI;(ZD?>6nhUS59$dr%QI.Es%U3>2r(>P'MTU"=:Fsn$[%AAhZ9s\3cG`8bRIn%fHGn*Gm/pc_i3A42U)!K9$X2nZ;YgV,LV\b5^i9,!KQ&5iZ$M4J!0pUG<BDW8>3NEBa,Ee*1NMh)KkZt;HYICB6;-r#B%<s0tP/!c1(LoR<StqTUf,FjC(1($p-Rj2Q)h4U)tBM+G*?"[EMAIL
 PROTECTED]"h2(k2U:>K\mJ8g^4=,L7DF6f[(DPnD1!(&<KaA%KJ;VkB3CN``Q!/[EMAIL 
PROTECTED](bfTeD<$Wb!q6)2UaOo.nMlujTuV*sN>?-k77_hd$'*nN5XXO'`##"YNFH"MR+Pr'8M*rG:Elq>JXX#m[NB9Uci0C1/POYePg;4\PuT<U07dbojUNbtZ7=7H4"SU(+i^V<(rK4j3#_j/g!pNh.7LVuUUlH8:NXd3-X4sm^5&O;O(#jQ!FbA?E\M;[EMAIL
 PROTECTED]:kI.,bY"K^/NnFg#b%Rp6#&:[EMAIL PROTECTED];[EMAIL 
PROTECTED]'"HFhJVLG6;Nh2BP8H=)OCCrNIti?n-$i)5$N+b#;u'QsR\SS3)P,h"`J$+?1g_cn\qN=UidtGEWf:dO=5j)EB^9NOLhChtlp7*dapkX^?(W$7VuT0e\Wj)T(f5+U[6\4.On.(@,@b]k<s8mIH9]C"D/;geP$>NOP2"bP\3QOD=_Md5V)X`7HM,r>r[c,P+tEBj]\<[EMAIL
 PROTECTED]>TidtW;/AG79TqA)m3?KWQd6Eca">>aW;\r7$MiKT
 7u*C0!6b`KEQ^)s:(mFBji6Q!Z*LMU09_]7IBc`/g>>K6*9,QXTAlRlSD8gqHRM-bf.+7$Du.K~>
 endstream
 endobj
 109 0 obj
@@ -673,10 +673,10 @@
 >>
 endobj
 110 0 obj
-<< /Length 2406 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2370 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!Sn=``=U&:XAWi*5Q9#j-R1c*?:KD;[EMAIL 
PROTECTED]<n(L6(!g0CPb$OmUlED9&HWa#h/C'a"nQ2LoQ#9MjiGdanGDK!d$_&IXp]_rBD6]2=;E]8=%e6*48S(&`OuX1_d`n>IX:*hL'ca2k=9j/8r"KUX&_8.F*1]VY-^ERVb<GKBG7_:[EMAIL
 
PROTECTED]/]!*.9a)]MPPUYh8_3%Z<X3]!8\&nWfZBfHB-".BR"PKjuN8biF+A-6oQl&BU;Dp6nVOB"TPGqhtE;D!bOC6PPoNr`f`haXh3cBC5*7kU<RtTMq&_&6*cRUB4u$`TIj,02IE`WED"OIqVYN=>fOi&11([!K17P#^fPB+\H5QCA?tEbM6EUTk>EU=p$+a=*6eZ*"e'[EMAIL
 PROTECTED]&<?bB]CVM&[EMAIL PROTECTED]>TkTHd)JS++Gd'[EMAIL 
PROTECTED]<!:/(tPjm&\I%/7t$c>:05H1V%#\pKV+OBoe&,l(S%peg,:[^(0A&[EMAIL 
PROTECTED](off5,/"[EMAIL 
PROTECTED]<p)7!^2WH4oe`tXljj0?)3NgC`;<MpKGdKp:Up>YkUCR,)K';>V]/a<m`humU9.L-ANb:)E!Rq@>ATAP2fO++l'5+EYB2=?Bl-+9e.d+KkBF&EB3Yl7Z)%\`<EfnGR%!dG\AZaB$l;<A_;(R8U8;[EMAIL
 PROTECTED];Da3e4=(bR/i'nG9,)[EMAIL 
PROTECTED],-e&o!Qg$!EY<)?*ed,KIt-Au1fg5.)Ag\V<aQHX>cJdN2rK9Q)-7q8sE)!T,uS%&Rslc.J]ZCrgYAN6BctpN^1$]Bh2:aPM<\ATC$#9nrmJJU/k[MKRRe0gdqa/P:_;Khn/>70klmNh:/Y/2C5iQNAP;BI+=[jXJMqPi0kn!\)g-Vh".R/9"jo^a)+:Z5j(llE=$"KL]cc=RS,r+u,G+'-Z-:@/h82n-5LW>Ad"^4HC\
 
sPJpCZIB-sn64O,Z.roV8ith-QA^]Bm3.?&h=%$0$9I?Ic_s<,LG%PT:o,eNDMmipI;CZ.l1D-=?IXm6]4hp$=7mnVb!tgC=$RoPsO-#ti6Ad:]X`tn]C2>6fN=]Tmh%N&:&"_IX9kT&C(3GK>6/jpGIH&m^Vs7%Fp*O6dNq;WV&gXITmj&u8<6ir1bXKQ*U\a+``8+t/p^4MR1%tJ7l4_%cb9SUB';33F6St%a*RN:j3d.Li3``p))"[EMAIL
 PROTECTED],DkM"[EMAIL 
PROTECTED],$&=iB`2DSZ13d9AN/coBMlA]9V(Z<iGH$C:\%kRRV6YQnqXkUemY3/$"W5FrLZQ>^nsrWm`]3PVV(biC5c%tISi2Vbg*VL9T]p5=B5Olg[]Umr_)TsCJo.*;94mnVTV7Ldr2Q5cJHk4Kl"JWjq3+5LCBQ4ert^pU'ek.,HQ;]\scE`_8ViaQNEE?Tjl#'a;`fQ%[$ZmeUdnqLb-YH\="Q)[EMAIL
 
PROTECTED];LOo<(@kA\IhcbY`S02dM]^%aR/o%:_A6`I_E0'8\b_:eB#UX3mQQj'g&sm>h_GV+&0l:@fm\(PgZ9Ft[):hWORP+2kqHa2+H"?erg[Q[7e`SILet6Im\#FlW`m?Jgk1a3`B*]6V8ZiKBfL0p#,[EMAIL
 
PROTECTED]'t0iluIm`&*e2VMX`=>$qt7ke%S>=6T4`->n5QT.D$SK$^fcVrr7.%KD3qD'^pLO41V`U=TU$B/q?fBLj?QS<nNJEg89Y+$e)PPqZM:3jeN6ZXKjQDLkPkt;[EMAIL
 
PROTECTED]@R#,I&c-GTiFj1\hhHdcab:f7636D('HBoFb6OPN)''gs-H5+T\b!.2*/ZWfC)P3l13<$K"p&M988jVU2I)MeG&N[%Fb;\Lct"SlN?=NA`YFj1W&rmn/E;X/9U_)VA9$IMDjF%$Jch_0:e&RA^jsa#':oe<[EMAIL
 PROTECTED];jd58rHJcLap<o,6jh(pd<CPH/O_Dp;5AmElibXIEC_L8e
 
FQ<Fn%UN5(FsLELHD]-=CY14rni>Z&hcS,i$70FfNh_i`;t!h!k2`2$R"s$fm=1)dA[T'RNeG`8\[q/Ge13#;*(1XM\,dmEB?"'(,Uqd<Ni8tJ_B.Un\'-6"T/8O`X=.G=B]eX(m:k'e]%7s2kV1/&]3Bj%u`^b3&*+m:lR44;mHfKlN>/1JBgcT&],T<[%^/),&7MQ=OTQ`d\I.c&jaSuMP4b4R4!""H.ORe/Y0o/me5Y,NFK-fjeqXQiVrLORJt['^">$5j.D<V7;&fMhO3kL;&Z6g7"q8K*3d$uG'[EMAIL
 PROTECTED]@`f=rsW9p:`[--k1cPES'9I<<%aK5_*!3[YT'P&[EMAIL PROTECTED]>[EMAIL 
PROTECTED]<ENFY#LNO:"j<J<Q&3,P^@',=d6*RgH,qMgu!]6kg0~>
+Gb!Sm=``=U&:XAWcs,k)(aaLVDiPLoBQH"[EMAIL 
PROTECTED]<<n(L6jbX-OfkR$P>&12_TZ([EMAIL 
PROTECTED]:\*]F+kDj,9^^4U%T.Nfe3dGo;!fI]S!4;pY%X_2:W2P\![6]0Bra=!$T#*]g01W#?TVT$_L<_Pif&O]GFUWCE8522m8?8P#+0"@@_*Kr>PMA4E.eXI3>0"3q\DX$Sa,04(B9mm,H>u;b[)DQ`H"'bL)XsFV/$R3>N^YL?2W)`-4+4e)S"6%?&%&[EMAIL
 PROTECTED],/:X\>[EMAIL 
PROTECTED];k&:*jfHr>c>*QFR'R;)c)jWnGXuZJAihYOXET><B<@cgEY618_`28Ng2R,ia^'aJ\="KMTX2])=,#b7\[CZ%hA!&[EMAIL
 
PROTECTED]>_l(dmj1rHt7c/[\kmD7jp^c`=9W/*)Y;o!!Ee6eX`lI;CDou_GVQ-b_dc1AX]PQ%#YfOg,4="BH";dZkI[7eggS3bpCasEQjcjdNW+.0(-6<=\?%o-9"%')ud4"Ufr&i,CZ]+[U62:Z0jXO&'[EMAIL
 PROTECTED])92tu^-SumCU3RuW6;JW,"Bihq-%8iC'<-8DJOp%"[EMAIL 
PROTECTED]:uArbmaWs%=4$_4rjrY"[EMAIL 
PROTECTED],X2aNcG42[=taK]SKh'NXMre3Wk9F'qH)O9-WHYLl#gJB]0hqbqH,I%^"FY%d#?`M5/4AY^Zq4!dK-4(3(2,V2hH-UY\a4&5G>:\r'm=9Mb>:!FVPX'i5TVVEh3gSfP7.IjG;pM+#g*d[NN*C_W0+^shVqLI*b,4SpHD)$VW<QTLA<r'@N'cHk'cFdQQje$MoaKik[a+',HtYM+GWHRY>*_F!.MJjN/4IVmP[q3X/L(7LlOq/[EMAIL
 PROTECTED],3oEg+9rCOcjkH_[0l>4&YfK
 7AiRK+E1MhF)[EMAIL PROTECTED]@=g%(`<-&[EMAIL 
PROTECTED]""OFW*uQAl^O#6j8%&.[1pqKPMG>Td7Q3"/<IQuMM^D#eD$'_X[bXi`b1<SfR]D5#l5F(7Bs[lAm6;XNj7U\q[&2)Abp%jMcd=u$1r!^bAid)B2qX*r7Fr`p<.DtFTp(N""N%k!0k/3Ef9Fc>[EMAIL
 
PROTECTED]"6i?Pb>o5I&_"nf?3)Q'T%th6hM356:?o&!aQL#5D4%"X1E%_[iLLdZMO+t/!l)<j9*%ifu`eahY[V8Wl*SD1K)A*c8$H7NP:1(Uoqi`?PAQh%n%Zq03U`D*hbi3>#O.3Cr>[EMAIL
 
PROTECTED]:L.oKZCk\a$516SknD+_2O/K\gfn90H^aE4:a!/e^n"jH6KKb(!%ehuMX&s&$$U0Cq%pi#(1XP>[EMAIL
 
PROTECTED]>DS$V]0f<9,B/uT)S8aenfu/d(M8sPW&Xb`Qt^r^H^KLe(H\kVM"r&]AYU0'@u$k]=D4P4GMJVi94'<"LOTieUHOKGRjrJ!6>b$jNs\[HW^-S&G[`kOb$rNS1>rao;f+F?Lt*"),IP#<oYVP\.98m[[,O:#QIHqO-NEnrZgM3G7sf=#n51"nlB$S>>8WnPh.Z0+!f&[EMAIL
 
PROTECTED]/?E&de`)"sc-2L47K=C0\d649Agj2A6W&Gn2]NUc(4.a"BaR"%]LOFF,@?J'@8,mU\u^SfqUck5ECg_O3ktE;P[$.Bf9,V&q#U5W^/&"[e/<%8$eIN=XDqLgh*dR/JVhhkp?hq2fT_/p+ALH2VA$=<O:JSpg\l4.B\hiEm+*7H*-\6/G^!g^&/KiQhAq2f9^V+a,+Ft.7Jst$l>33bq(J=[1^+qBb0a6`T5mU5/C]i2Mc5YE_)FU?BY-Fi.EA5*Z!56Jhc%ha*OZ8#a6[p"0(;M,+Q]uR?rS.UQEE%p%&9u1l/D&^qN/
 
oB+Wooq;@-Sdfp!PHK`RT_.%6d52G*kqVcUON')Hh]iFn_1hhI!l`C1UA>!gdD/i]FPQOfWXU#5>0_(UE/%^nG`b132!1SL/?Cn54A]u<:Qg.:UIO[(eZ<,m)"Q(g0a)fAlVgqtefeDQ(<Gg`.$H'Y^8$'TPpM7,D4]/Rn:[EMAIL
 PROTECTED]<$%rGHV!>!\SAlE<,aIYm'[EMAIL 
PROTECTED];gSpgO>*NpaAK`7XlYQ0I!VS?4B`FP7CI!16]m(P20X-E&2=c.qX(Y_*'WK]t[O&ZPfa`=R9?SQHlca_qFJUQC\,0.+f'(ZJXm&Y>!X*d`e<K$?E!8r`*e0?rI+K?3lBrSo,Z+rCDHZA&H;O!ghX[PVHB6IE?bg]3"8q$99)~>
 endstream
 endobj
 111 0 obj
@@ -688,10 +688,10 @@
 >>
 endobj
 112 0 obj
-<< /Length 2172 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2277 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb"/(gQJ$q&:N/3kUfPpGEs,$>OpjuY1G+(m)3r8OJH+e7Y2I3=tV>ohl"#A*lNRC43:.<AX<VM1OV93q>eiCMjr8VIR0<)q"ngb)8oY2[LN7WX876UR20ck>@q?T?Mq0T^04e!3_O5)s/e0eUUDu:%p_*%ga!rr^=k/gHbtV,^0P'[EMAIL
 PROTECTED]>t(rUO!$rSm84bC8t46[S_Zd2&oR;8h_-^[O99,[EMAIL 
PROTECTED](,A;BEMj2uZ\TO)]qh`d=H/[EMAIL 
PROTECTED]'pp79G!Gb#r^?he1b^2"7m^9p]oToMETS#cGa,-j=sBtoWnW84Z<VZ.\4Tp5G'[EMAIL 
PROTECTED]&b]9a33>W&Dr-^m:r&cR&f6Vm-Bu?!bWZK:=U1g9`:/T97Ii-k"T*X,n/YD\HjqA+7#EM.o8=_XSp\T_%SKKli!b[fZ!Nln>HUW_="(YcO4##An<66EI\F8tn8k+l'H%nM,*HMgPH"[EMAIL
 
PROTECTED]@f]6X`rcd$'(C-X#^s:E$>Jr(VHG5+Eon3%DUL;:67%FK8eo2icTU$:p6N_*`#,MH;?-%8LNBW4qu+<$!`8TTacV'YE;@5QjT!30*DUi\'_I"(iusf'tt]oQ&=q-js5ZUp6c=WT&Z^;ZdB8iCeC3M-Lc*nVlDr`Cuk+%g-/SA>NM![9T!'k%rtc#S/q[.O#+lr?!mJ$gIpAZNL,G5b2$5m?09''fk<^^gQQCbq1$G59G<9qe7G-F]:LkUfr-qt!Mu+6bsb\m(Pf*e7W*u-+!#hQp5/E/S4]=AQacFkUX,Z"7iq+g+*WNhcKO;[6^[%c0afK.5Up`+(l&"mM=9H:*XW`n`Be0aG]F->G7FlE=t%)5bcFaaEL.?6$VDSYZEDY*3HpBLX`k[u_$[<HFMo16)56=Bc-&cuN..JR/!*n&\eFnUKuj!4Lc=jciC8t1'[EMAIL
 PROTECTED]"6_/#u%!#&k2MdWg)^u"9:33[W5a"cIoA]S.``D]<:d&rnc/
 r([EMAIL PROTECTED];?go9MW4FU6[`7Q)DGTG17`p\([.0(`_(>d>=D+pF8!CNnd0m:'[EMAIL 
PROTECTED](ZSNHYS3AZ^0k1M0A3`c,,ihSjR-=Tg#\U)"ZRZR$=O'%LHhYk+79kn[?9eE.c$`[BRc:/F1B+ecK-l(065oq)kf&e?:tdMbhP9Gaq[V*o1?&t0CSS<XB#R[TV([EMAIL
 PROTECTED]";G>]*&K5uL<[EMAIL 
PROTECTED]<XqVO`4TT>2$O7AHp1at9>E*n=l&h-%RqUABRT9N:[EMAIL 
PROTECTED]:13Z5/YZb4(:Jld7aRDd6r\`W65W^rhYk&[EMAIL 
PROTECTED],;'),<.(%D36lTbZnE]!b2Pr[X#%h<5eWN.`:`0$#W,s`GRdZclQ%2-`t^]P9g+Kh2R.uu1h8Or`%bG)Aku(Mr!d`J9`aHjkU.[3Ri!YDQ#5.%nt:.9K^,g06$[%,%n'iplTT/e4$QJ3IK%/`X?jA-mk!ak#<BL(Fd9q.,$q$<4j"BH3155JH?Umd6DUpB7_"[:=*?GBT5(ghq$;HT?^YH'm;em>EFU"D(rD,S&BX^]I/'MpVSY3QZ;Fdh^s?Te#uQ-"J_Or.k;2Q2(q8Hd=$?<C$8km$;EMA_e?&5be'1i%e&e'Pbm5Z]<6V@@AlVXtAuAB)VGm'XY*$n?C/`,HijeDRRt:b93SK^c"u/8!Y>(dc47cWtTL:LSi7;%>b2B;[YY."jU8D3MrsR:*-.MOBf;[EMAIL
 
PROTECTED]<#tb/-0<afI0rbeBf*<VHAeKW3tIq8/@W-F#V<0+t/.0_eQ=9?k"F1ll18T]AQ@"$.(.gGtse_&L5H4QPETgUdl72WD(MNU!F&g-Xf^kW26*I_op4N34RQHFd9K1M$COBNGP_G#cl"pGQ[J<Z!/[EMAIL
 PROTECTED]@>/[EMAIL PROTECTED]&VpUcFf0X]U)akKct^(d
 
,;3*uHC2k><.n>_F7j^Voq*O\8!iIGNRa1=RpGSo_8DQ)$XNu$dar*+K;\5)AL4+AcFdhkG<<arW=ndD]_TS!%/^XTQFB3S"FU^CmE\%e%%a"6(:2&/)ND#ii:m8qLcS:9#>W`_I=qZ1$<Q^d!]^&`/Tgr_A]rT!*Xc'nJcMu)c[XeAUu#8*+_H%,k'kV.\~>
+Gb"/(gN)%,&:O:Sn?'fkKb31UIEKNhPK>XqUU1PK-NfKm`0ql`?EEqj]=]dFK!Lk0G!,I0ZiDZ&Sis[n]incJXY9)pW3M!4[hjTe9Z)!YphMtao?+=3i_jCL_Ur,kEq/G]"P4n_qXf\]f:WQOZ//[EMAIL
 
PROTECTED](i`:)=<EJdSpcbj&T8<PgfUgnWFrD[<JV`h)h/akpTT`8/CZ=>4YY0heTKGi[)AP+;J+taDn-_j7p_.,NJQ'>36\FF*8o.S4>4a;glB],hY?6nRrM8XH(:R2Tfa<>)I9'XdV'W=ATq`$/1VidJ&n>[EMAIL
 PROTECTED];N-R'8l^Wa>,0)[EMAIL PROTECTED],-<([EMAIL 
PROTECTED]/r?X&fL7<[o\qr7>Wt'$3aNq4siDLTpbX;WR)4%1CF;+$0u"[EMAIL 
PROTECTED]'ZZb-/-obWI1OTl=9O2qOg<5;ZNa!NL>cu5Z7S(]kbOpZK>m8'QI`UN1"-g,[EMAIL 
PROTECTED]""Zu=bYK+#)Cg$a9Pq<]JOOK<VPQ!hKcic]T^A!No8'LfiZoWj^KG^(<::>AJHa?66+&4>%$mJ%Hj+>Af22XrJ3fXk5BYgopg,`q!:&eRkF]pC],I[4Z(\"YDgB"[EMAIL
 
PROTECTED](i&$KgL'K:j8L);a&(Ucc'0)k?(]l(tN_g5J4,HY`:6*`2/2+2$p2;4QW\Tqo%_pE^)\n[f'fI4$\L9N?fi=MEQCGA[k6rHms0sFUGr0//ft?F#jD;pb/.tf27,E'"h4U`De.u75@:FNcD0-,mI;)KlSg^'[EMAIL
 PROTECTED]&Er5m)/OO09W)uXn0\\*"PJo?b#"SSIZ4X2'pa_f[7AVJ:[EMAIL 
PROTECTED]('/+DCM.F^3^.7PS*(6d`pEJ.,l6IP40H(pd3>X2=iK"(EWQ6_M4"8%5jg*HS*#(N-O$M/>6%:5coFRq#4VM]InIEFM:dSC:OePIj6?aJ]YY[/>"[EMAIL
 PROTECTED]@QuH`:5
 ][1XoTFkA+h6(P4rZR(>8c5sn=En\8_?X"A!?ZnFoSBZu#it:/TqRl%Xo&<[EMAIL 
PROTECTED]<?;kIn3`"22up":C++-ZP;b9_>[EMAIL 
PROTECTED](\seNO+YK4ZJ14M?Kf4Z%ZTu(NE(nuC2J:92N`h&.LJgOECA`0'c9mknqA]/@'='r<.hQb':.D=r8rG1N(3>[340M(s!?^Za+qnCtNMd+B!s41k4UB4KLmhXC#!<&E:_#aQm'_X::SbcNk&bLq-(Kreb;Z-+GPe<I&:P^ir/:OG.uXsC(&p0S23DHqN%gapO[YgK;H9;0VO[r0c*s5r,U=_W6Dp-qQrgU#C#i;]Fuh,EEU<mMZXSkrWj0jHKX&h65N-=u2pdJj1Yhsl=5QDJiBoGU`nB,[M+r\OEDY/1Y1i+F.s+-4Y[TfF*TI:A;[.d;,,XfUqQY&O&Pl&;,[EMAIL
 
PROTECTED]&i&iCLV#Y)IH?6LBUHieGLs"p?EBQ6dpU(:'k'!B.%Bm3#!BSpT688lQ3Z2s/>i:8a3WZs)fM)ejC;8#B?>:cC-8_81AbL0lf_dZd_$NpJ#FYA[D4H:c$m\aV98cbVdLH7ah\XlftXpit&Gu<Q<_'[EMAIL
 
PROTECTED]&W7!U_$C9H,cLUYb/k?HH)UhTU(K&;Kn/A)$<&!dtFZk0aQ2'&`Pg5hP]GQc,4$/BNZ)W4Jl:@)FVB$'spD&[EMAIL
 
PROTECTED];5RpaN%?]MNNuOHhbZhiPTQ4.D&1$+N%7:rD)]Z"6":mJck)mIH0)FC6rBBh,AaC_O&OKn^X0rg`)bJQcT2FfIN%OF_Aso]*CB$W<[bf+oEQ)B4+RS[SQtrdOB2o$+"oLp*B<'9OXlh.Kj>jD.;ga^-:p0/pEH#4f:I0^*>FI+b!l^5&[EMAIL
 
PROTECTED]/i=8-"&:iQ(tlLL7SPcFlOF>6e5FCe0j1P1<A4b&ejK=[8UqW\d9\l>9X[,pj'CK'LS')9
 2LldM)qe.%3IYk+^UIVR.';[EMAIL PROTECTED])"[EMAIL 
PROTECTED]:B90;@f-h=a0<h?>b!/pr[0fZ]D(@HmAJI).%_?=pZ*R]WL0a\]M%iLhnMJei,`4VkLG<C.`Dk9%0c!%NHAQ1BJtr^!=Pl]_r=UfSqV-aL]?,^A<MhGp!.J(SK8t8DlO`%rob'];F18HcY7'^&cKZi<<OKF<!$aoYsap?e`E?N/)ZU=`2DmGQ$")\X$56nUW[U[$E0.T\6qBA*EXWHP)AP]RKoY]*[a~>
 endstream
 endobj
 113 0 obj
@@ -703,10 +703,10 @@
 >>
 endobj
 114 0 obj
-<< /Length 620 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 958 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gat$tbAQ&g&A7<ZGcLpG$qZSUFDTYXD(fa&p!a0H'iC#Y+rrfZq!Ukh9Zg*3'[EMAIL 
PROTECTED]>0IY.dj2D9J&;HnSVJLYS.>&dW,tP^Rn*5Bu?XCbQ'D"SSHYC!DbQe6/[EMAIL 
PROTECTED]<@>H=&)Xr)4FL"[EMAIL 
PROTECTED])iumgjlL_g5/k_bCPq)]$<!q3f\,^^qq.>H9Oa&/]U'O4m;Kt<ac]6>h;Zbum3W4^Ep'1OP1^tR5q7l&.^aG?<h*DPeA6Q\4/M*\"Us_V->$S%3[uKT%XkpfZf8,%_cU'X.]sdC#gSQX#"cJAcJ2/,b=N`'p^J%7$'2Nu]&1":e8Qg30`e.)'UiPLQK2P4g??G![hr9*4k!#L$J#1Q$YO=-]i2S.mo?_FC#rdQ:-<K`:F,i$31dX3V\l-s/)$(>FB04+Q!&9>n5$p^TomS1E*6()d@/!rDi$Z(D30o#]ChsG;6^>cim?G[H>Z3G;[EMAIL
 
PROTECTED]/QlnV[Lh'LmJ<mtW=PVA0CWGo/,9L(WC/\VXo,`ZYEr2-TOoohk/gD,lhL;Y"gA9Z.dVL`jVf8nQgjn6msk>l7O`rNg1.b-`9i2PgU=fBV(AWH[N5Bmb;k)77]f"!!CKY5~>
+Gat%"a_oie&[EMAIL PROTECTED]<BN_,[EMAIL 
PROTECTED],Uuu\qX7'ok")qN)MSY0WStL8Ho'jNC2p^d4>)Gte^(irL_7'XcdVoY2=EFH"F4#kXS(T=iqDBXYO@<:*'LWc(V'[EMAIL
 PROTECTED]"O6'[EMAIL PROTECTED];#5C\:OdZ%LN`5]G(sGe!LXq^XRI,n<]/YnIS/[EMAIL 
PROTECTED]/?eb-F1c?s)-fH*:3;=GqslCAf9M1LOIY-(_9_1[SX5/J$#mWB\D&F7W`*KJB'C;?Kk:POE*>UK#_$:(R\*aMUc<e]U'Q(X^&Nk64XM,mk;jAi"s;?0-3_beQr9(aDtA.-FWn?m_!FaMB?MW_NP>[EMAIL
 
PROTECTED];k+1S'&G_YacGdjBW;<<uUSJTSRI+WGZ4mt4?H,Q!`%Jr!I"V`p/%B4^X<hUlCj76LO`7)<>\mq%"k]C=rdRB%Oq<>`([EMAIL
 
PROTECTED]/1M_f'E:&NLFjV+S63c2`M#*pW)@2B(pM99oXS12IAoYiQd;pQ)B_tn1fC;DU;gP>X-92RM_d&7I\pQX>[QPjOjcSq^D5f%]m(T#-!:\/sje<o]omdU>)ZraXi,*fhC7D9MP&[EMAIL
 
PROTECTED]@j.o3RHS<c`5H*=Mca^Or0HM,h=h("S!b#du2Z'8n&i!X^O)%E#YC.FT>MUVe[aEA_H(4Q&J(QZ_tW!Y&+[q2<<4.B(VTgHp'/h$"c;2%V2HbFF;T[9GimP<e0Cr`dHbiie1U-pH2?R4V>)^6Jljcjl^Gj^(j"[EMAIL
 PROTECTED]'[EMAIL 
PROTECTED];Gc"b)O$$f?h=.)uMU&_u8U:uM,5JNF<L%##b/!ig;fh-+_r^+\Pjf8A!p7&*D6&S!g<qo7pU;[EMAIL
 PROTECTED];=PnUA=36!F-B6N~>
 endstream
 endobj
 115 0 obj
@@ -1130,43 +1130,43 @@
 49 0 obj
 <<
 /S /GoTo
-/D [109 0 R /XYZ 85.0 155.0 null]
+/D [111 0 R /XYZ 85.0 627.5 null]
 >>
 endobj
 51 0 obj
 <<
 /S /GoTo
-/D [111 0 R /XYZ 85.0 341.9 null]
+/D [111 0 R /XYZ 85.0 280.347 null]
 >>
 endobj
 53 0 obj
 <<
 /S /GoTo
-/D [111 0 R /XYZ 85.0 216.647 null]
+/D [111 0 R /XYZ 85.0 155.094 null]
 >>
 endobj
 55 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 659.0 null]
+/D [113 0 R /XYZ 85.0 598.2 null]
 >>
 endobj
 60 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 533.747 null]
+/D [113 0 R /XYZ 85.0 472.947 null]
 >>
 endobj
 62 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 456.094 null]
+/D [113 0 R /XYZ 85.0 395.294 null]
 >>
 endobj
 64 0 obj
 <<
 /S /GoTo
-/D [113 0 R /XYZ 85.0 266.841 null]
+/D [113 0 R /XYZ 85.0 206.041 null]
 >>
 endobj
 89 0 obj
@@ -1189,157 +1189,157 @@
 xref
 0 152
 0000000000 65535 f 
-0000066235 00000 n 
-0000066455 00000 n 
-0000066548 00000 n 
+0000066561 00000 n 
+0000066781 00000 n 
+0000066874 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
-0000001718 00000 n 
-0000001838 00000 n 
-0000002024 00000 n 
-0000066712 00000 n 
-0000002159 00000 n 
-0000066775 00000 n 
-0000002296 00000 n 
-0000066841 00000 n 
-0000002433 00000 n 
-0000066907 00000 n 
-0000002570 00000 n 
-0000066972 00000 n 
-0000002707 00000 n 
-0000067037 00000 n 
-0000002843 00000 n 
-0000067103 00000 n 
-0000002979 00000 n 
-0000067169 00000 n 
-0000003115 00000 n 
-0000067234 00000 n 
-0000003252 00000 n 
-0000067299 00000 n 
-0000003387 00000 n 
+0000001711 00000 n 
+0000001831 00000 n 
+0000002017 00000 n 
+0000067038 00000 n 
+0000002152 00000 n 
+0000067101 00000 n 
+0000002289 00000 n 
+0000067167 00000 n 
+0000002426 00000 n 
+0000067233 00000 n 
+0000002563 00000 n 
+0000067298 00000 n 
+0000002700 00000 n 
 0000067363 00000 n 
-0000003524 00000 n 
+0000002836 00000 n 
 0000067429 00000 n 
-0000003661 00000 n 
-0000067493 00000 n 
-0000003796 00000 n 
-0000067559 00000 n 
-0000003933 00000 n 
-0000067623 00000 n 
-0000004068 00000 n 
-0000067687 00000 n 
-0000004205 00000 n 
-0000067751 00000 n 
-0000004342 00000 n 
-0000067815 00000 n 
-0000004478 00000 n 
-0000067881 00000 n 
-0000004615 00000 n 
-0000067945 00000 n 
-0000004751 00000 n 
-0000068011 00000 n 
-0000004887 00000 n 
-0000068076 00000 n 
-0000005024 00000 n 
+0000002972 00000 n 
+0000067495 00000 n 
+0000003108 00000 n 
+0000067560 00000 n 
+0000003245 00000 n 
+0000067625 00000 n 
+0000003380 00000 n 
+0000067689 00000 n 
+0000003517 00000 n 
+0000067755 00000 n 
+0000003654 00000 n 
+0000067819 00000 n 
+0000003789 00000 n 
+0000067885 00000 n 
+0000003926 00000 n 
+0000067949 00000 n 
+0000004061 00000 n 
+0000068013 00000 n 
+0000004198 00000 n 
+0000068077 00000 n 
+0000004335 00000 n 
 0000068141 00000 n 
-0000005160 00000 n 
-0000068208 00000 n 
-0000005295 00000 n 
-0000005898 00000 n 
-0000006021 00000 n 
-0000006062 00000 n 
-0000068273 00000 n 
-0000006195 00000 n 
-0000068340 00000 n 
-0000006328 00000 n 
-0000068407 00000 n 
-0000006461 00000 n 
-0000009091 00000 n 
-0000009199 00000 n 
-0000011644 00000 n 
-0000011752 00000 n 
-0000013980 00000 n 
-0000014088 00000 n 
-0000016499 00000 n 
-0000016607 00000 n 
-0000019085 00000 n 
-0000019193 00000 n 
-0000021582 00000 n 
-0000021690 00000 n 
-0000024001 00000 n 
-0000024109 00000 n 
-0000026775 00000 n 
-0000026883 00000 n 
-0000029581 00000 n 
-0000029689 00000 n 
-0000031697 00000 n 
-0000031805 00000 n 
-0000034308 00000 n 
-0000034431 00000 n 
-0000034465 00000 n 
-0000068474 00000 n 
-0000034600 00000 n 
-0000034771 00000 n 
-0000037229 00000 n 
-0000037352 00000 n 
-0000037379 00000 n 
-0000068540 00000 n 
-0000037514 00000 n 
-0000039438 00000 n 
-0000039546 00000 n 
-0000042415 00000 n 
-0000042523 00000 n 
-0000044523 00000 n 
-0000044633 00000 n 
-0000046615 00000 n 
-0000046725 00000 n 
-0000048790 00000 n 
-0000048916 00000 n 
-0000048945 00000 n 
-0000049139 00000 n 
-0000051365 00000 n 
-0000051475 00000 n 
-0000053975 00000 n 
-0000054085 00000 n 
-0000056351 00000 n 
-0000056461 00000 n 
-0000057174 00000 n 
-0000068604 00000 n 
-0000057284 00000 n 
-0000057450 00000 n 
-0000057749 00000 n 
-0000057977 00000 n 
-0000058270 00000 n 
-0000058494 00000 n 
-0000058841 00000 n 
-0000059172 00000 n 
-0000059421 00000 n 
-0000059718 00000 n 
-0000059967 00000 n 
-0000060287 00000 n 
-0000060607 00000 n 
-0000060940 00000 n 
-0000061259 00000 n 
-0000061455 00000 n 
-0000061701 00000 n 
-0000061929 00000 n 
-0000062193 00000 n 
-0000062484 00000 n 
-0000062872 00000 n 
-0000063338 00000 n 
-0000063598 00000 n 
-0000064085 00000 n 
-0000064496 00000 n 
-0000064843 00000 n 
-0000065105 00000 n 
-0000065339 00000 n 
-0000065453 00000 n 
-0000065564 00000 n 
-0000065680 00000 n 
-0000065792 00000 n 
-0000065901 00000 n 
-0000066008 00000 n 
-0000066125 00000 n 
+0000004471 00000 n 
+0000068207 00000 n 
+0000004608 00000 n 
+0000068271 00000 n 
+0000004744 00000 n 
+0000068337 00000 n 
+0000004880 00000 n 
+0000068402 00000 n 
+0000005017 00000 n 
+0000068469 00000 n 
+0000005153 00000 n 
+0000068536 00000 n 
+0000005288 00000 n 
+0000005891 00000 n 
+0000006014 00000 n 
+0000006055 00000 n 
+0000068601 00000 n 
+0000006188 00000 n 
+0000068668 00000 n 
+0000006321 00000 n 
+0000068735 00000 n 
+0000006454 00000 n 
+0000009084 00000 n 
+0000009192 00000 n 
+0000011637 00000 n 
+0000011745 00000 n 
+0000013973 00000 n 
+0000014081 00000 n 
+0000016492 00000 n 
+0000016600 00000 n 
+0000019078 00000 n 
+0000019186 00000 n 
+0000021575 00000 n 
+0000021683 00000 n 
+0000023994 00000 n 
+0000024102 00000 n 
+0000026768 00000 n 
+0000026876 00000 n 
+0000029574 00000 n 
+0000029682 00000 n 
+0000031690 00000 n 
+0000031798 00000 n 
+0000034301 00000 n 
+0000034424 00000 n 
+0000034458 00000 n 
+0000068802 00000 n 
+0000034593 00000 n 
+0000034764 00000 n 
+0000037222 00000 n 
+0000037345 00000 n 
+0000037372 00000 n 
+0000068868 00000 n 
+0000037507 00000 n 
+0000039431 00000 n 
+0000039539 00000 n 
+0000042408 00000 n 
+0000042516 00000 n 
+0000044492 00000 n 
+0000044602 00000 n 
+0000046571 00000 n 
+0000046681 00000 n 
+0000048788 00000 n 
+0000048914 00000 n 
+0000048943 00000 n 
+0000049135 00000 n 
+0000051284 00000 n 
+0000051394 00000 n 
+0000053858 00000 n 
+0000053968 00000 n 
+0000056339 00000 n 
+0000056449 00000 n 
+0000057500 00000 n 
+0000068932 00000 n 
+0000057610 00000 n 
+0000057776 00000 n 
+0000058075 00000 n 
+0000058303 00000 n 
+0000058596 00000 n 
+0000058820 00000 n 
+0000059167 00000 n 
+0000059498 00000 n 
+0000059747 00000 n 
+0000060044 00000 n 
+0000060293 00000 n 
+0000060613 00000 n 
+0000060933 00000 n 
+0000061266 00000 n 
+0000061585 00000 n 
+0000061781 00000 n 
+0000062027 00000 n 
+0000062255 00000 n 
+0000062519 00000 n 
+0000062810 00000 n 
+0000063198 00000 n 
+0000063664 00000 n 
+0000063924 00000 n 
+0000064411 00000 n 
+0000064822 00000 n 
+0000065169 00000 n 
+0000065431 00000 n 
+0000065665 00000 n 
+0000065779 00000 n 
+0000065890 00000 n 
+0000066006 00000 n 
+0000066118 00000 n 
+0000066227 00000 n 
+0000066334 00000 n 
+0000066451 00000 n 
 trailer
 <<
 /Size 152
@@ -1347,5 +1347,5 @@
 /Info 4 0 R
 >>
 startxref
-68658
+68986
 %%EOF

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/CHANGES.txt Fri Sep 12 
08:07:04 2008
@@ -7,6 +7,11 @@
     HADOOP-4060. Modified HOD to rotate log files on the client side.
     (Vinod Kumar Vavilapalli via yhemanth)
 
+  IMPROVEMENTS
+
+    HADOOP-4145. Add an accounting plugin (script) for HOD.
+    (Hemanth Yamijala via nigel)
+
   BUG FIXES
 
     HADOOP-4161. Fixed bug in HOD cleanup that had the potential to

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py 
(original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hadoop.py Fri 
Sep 12 08:07:04 2008
@@ -451,8 +451,43 @@
       raise Exception("Invalid state: Node pool is not initialized to delete 
the given job.")
     return ret
          
+  def is_valid_account(self):
+    """Verify if the account being used to submit the job is a valid account.
+       This code looks for a file <install-dir>/bin/verify-account. 
+       If the file is present, it executes the file, passing as argument 
+       the account name. It returns the exit code and output from the 
+       script on non-zero exit code."""
+
+    accountValidationScript = os.path.abspath('./verify-account')
+    if not os.path.exists(accountValidationScript):
+      return (0, None)
+
+    account = self.__nodePool.getAccountString()
+    exitCode = 0
+    errMsg = None
+    try:
+      accountValidationCmd = simpleCommand('Account Validation Command',\
+                                             '%s %s' % 
(accountValidationScript,
+                                                        account))
+      accountValidationCmd.start()
+      accountValidationCmd.wait()
+      accountValidationCmd.join()
+      exitCode = accountValidationCmd.exit_code()
+      self.__log.debug('account validation script is run %d' \
+                          % exitCode)
+      errMsg = None
+      if exitCode is not 0:
+        errMsg = accountValidationCmd.output()
+    except Exception, e:
+      exitCode = 0
+      self.__log.warn('Error executing account script: %s ' \
+                         'Accounting is disabled.' \
+                          % get_exception_error_string())
+      self.__log.debug(get_exception_string())
+    return (exitCode, errMsg)
+    
   def allocate(self, clusterDir, min, max=None):
-    status = 0  
+    status = 0
     self.__svcrgyClient = self.__get_svcrgy_client()
         
     self.__log.debug("allocate %s %s %s" % (clusterDir, min, max))

Modified: hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py 
(original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/hod.py Fri Sep 
12 08:07:04 2008
@@ -252,7 +252,6 @@
     self.__cfg['ringmaster']['max-master-failures'] = \
                               min(maxFailures, maxFailedNodes)
 
-    
   def _op_allocate(self, args):
     operation = "allocate"
     argLength = len(args)
@@ -313,6 +312,21 @@
           return
  
       self.__setup_cluster_logger(clusterDir)
+
+      (status, message) = self.__cluster.is_valid_account()
+      if status is not 0:
+        if message:
+          for line in message:
+            self.__log.critical("verify-account output: %s" % line)
+        self.__log.critical("Cluster cannot be allocated because account 
verification failed. " \
+                              + "verify-account returned exit code: %s." % 
status)
+        self.__opCode = 4
+        return
+      else:
+        self.__log.debug("verify-account returned zero exit code.")
+        if message:
+          self.__log.debug("verify-account output: %s" % message)
+
       if re.match('\d+-\d+', nodes):
         (min, max) = nodes.split("-")
         min = int(min)

Modified: 
hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py 
(original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/Hod/nodePool.py Fri 
Sep 12 08:07:04 2008
@@ -116,6 +116,10 @@
     """Update information about the workers started by this NodePool."""
     raise NotImplementedError
 
+  def getAccountString(self):
+    """Return the account string for this job"""
+    raise NotImplementedError
+
   def getNextNodeSetId(self):
     id = self.nextNodeSetId
     self.nextNodeSetId += 1

Modified: 
hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py 
(original)
+++ hadoop/core/branches/branch-0.18/src/contrib/hod/hodlib/NodePools/torque.py 
Fri Sep 12 08:07:04 2008
@@ -51,6 +51,12 @@
     self.__torque = torqueInterface(
       self._cfg['resource_manager']['batch-home'], environ, self._log)
 
+  def getAccountString(self):
+    account = ''
+    if self._cfg['resource_manager'].has_key('pbs-account'):
+      account = self._cfg['resource_manager']['pbs-account']
+    return account
+
   def __gen_submit_params(self, nodeSet, walltime = None, qosLevel = None, 
                           account = None):
     argList = []

Modified: 
hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- 
hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml
 (original)
+++ 
hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_admin_guide.xml
 Fri Sep 12 08:07:04 2008
@@ -351,6 +351,37 @@
         it is better not to run this inside a tight loop without sleeping.</p>
       </section>
     </section>
+
+    <section>
+      <title>verify-account - Script to verify an account under which 
+             jobs are submitted</title>
+      <p>Production systems use accounting packages to charge users for using
+      shared compute resources. HOD supports a parameter 
+      <em>resource_manager.pbs-account</em> to allow users to identify the
+      account under which they would like to submit jobs. It may be necessary
+      to verify that this account is a valid one configured in an accounting
+      system. The <em>hod-install-dir/bin/verify-account</em> script 
+      provides a mechanism to plug-in a custom script that can do this
+      verification.</p>
+      
+      <section>
+        <title>Integrating the verify-account script with HOD</title>
+        <p>HOD runs the <em>verify-account</em> script passing in the
+        <em>resource_manager.pbs-account</em> value as argument to the script,
+        before allocating a cluster. Sites can write a script that verify this 
+        account against their accounting systems. Returning a non-zero exit 
+        code from this script will cause HOD to fail allocation. Also, in
+        case of an error, HOD will print the output of script to the user.
+        Any descriptive error message can be passed to the user from the
+        script in this manner.</p>
+        <p>The default script that comes with the HOD installation does not
+        do any validation, and returns a zero exit code.</p>
+        <p>If the verify-account script is not found, then HOD will treat
+        that verification is disabled, and continue allocation as is.</p>
+      </section>
+    </section>
+
   </section>
+
 </body>
 </document>

Modified: 
hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml?rev=694707&r1=694706&r2=694707&view=diff
==============================================================================
--- 
hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml
 (original)
+++ 
hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/hod_user_guide.xml
 Fri Sep 12 08:07:04 2008
@@ -412,7 +412,8 @@
         <td> 5 </td>
         <td> Job execution failure </td>
         <td> 1. Torque Job was deleted from outside. Execute the Torque 
<code>qstat</code> command to see if you have any jobs in the <code>R</code> 
(Running) state. If none exist, try re-executing HOD. <br />
-          2. Torque problems such as the server momentarily going down, or 
becoming unresponsive. Contact system administrator. </td>
+          2. Torque problems such as the server momentarily going down, or 
becoming unresponsive. Contact system administrator. <br/>
+          3. The system administrator might have configured account 
verification, and an invalid account is specified. Contact system 
administrator.</td>
       </tr>
       <tr>
         <td> 6 </td>


Reply via email to