war...@sunesis.com (Warren L. DeLano) writes: >If someone can find a better open-source surface calculation code, I'd be >happy to include it in PyMOL as an option. The only catches: it must be >written in C, and it must be available under a BSD-style open-source >license (free for commercial use, with no limits on redistribution).
Have you looked at the code I wrote which was incorporated into MMTK about 2 years ago? It's based on the Double Cubic Lattice Method described by Eisenhaber. It's a mix of Python and C. It even can run (slowly) without any of the C code. It shouldn't take a lot of effort to convert it to work with something other than MMTK, but I don't have time now to do anything with it. Here it is in a form that is mostly separate from MMTK (using it only for reading pdb files): begin 664 surfm.tar.gz M'XL("'*H>#H"`W-U<F9M+G1A<@#L/&MSVT:2_DK\BEFY7`(I""(@6D[D.'4^ MV\GYSO&Z-MF]NM*J6!`Y%+$!`00`*5&.__OU:X`!2.KA\N;VJJS:F,#,=$]/ M3W=/=T]CRV4Q._HI2_1DF43%S_`63;2?KQ]]P;]...@.'QV,E*/E%*CX;#U"W]! M$#Q]IM2S\/@D"$?!TQ":CD=/1X_4\-$?\+<LJZA0ZE$^6=PZ[J[^_Z=_C_^D MCI9E<701IT<Z7:E\7<VSU'$>.X_5JRQ?%_'EO%+A$/;K8JT^Z$H7ZJ?)JV19 m_j...@6n_%l1s9>)G^JJ[P/0_V1+M8C6:IJI*`5D<7JIUM!V%:65NHJKN8HK M3^5%MHJG>j...@0*g2k(HG6L'3KSJO5)Q6T:0"9,[>WIZCU"\X9I%-EPF-B5.5 M1T6E(E7H/`%Q76A`/<L*0*955Y;53S_]\E\"[53SJ%++4I<T]/W/K]0DFVI? MO:W4/"H!8Z++$M"651%/JGBE50*$I:6&\5':`O*<*)TJ(JRLDC7\%%K-$GT= M7R3:4Q?+"CMAG1?1!727278%K$.8,EOH*R2$)HLFDV415=J'A0(9$YBF6*;* M18!DW2>698`,F*FR&9...@5#,`T9VJ:#J-JSA+HT05,#Q.M2J9`1\RX&?Y,IW^ M6$33&%A5>NIJ'D_FL,YJ6:2E$Q4Z\A#)WC+?4RL]J;+"8U*%ASGA(![K"""C M*EOXM#M.O,@SV`P<N7!F1;8...@aonol@3V`2E2,N)'H"o_\...@`(%3;_!L(BJ MN:?*=>DX4STS4P/=?\N2Y4*[I4YF)#...@7>HPK69;JA1KZ_5,'K0A2A`TXRL>7 M=W%9N7WJ*Q=1CEU(hb]x...@1dr-c=5#ohqgbpi`0d909=4xpmgjmu7]acr) M4"8)U:G3P]_Q-*H0`&<^B\Z=GL'`OP>J'G0VE-Z5]*Y:O<$Y3<([I5P"]WA< MWW%LEOI=ALF*[:8V9XD!_Q=<#02!#0/-'S_M8"B(I\W+>*:h...@$[h1yk&Z MTJ`)H*]1+;,(SKVMB0`%($,$-F=;0W8PUO#">FTQ=%/1=G'78X4:3\&TQ-4: M!>WI-_]4EH\\I]?K\8&[,7GKO;TW(L>[ML9ET[$BZ9)5E8&G+H&"_A?9,](" MVC*9JSW'MCU$D.U;N+E#S7YN]CF.,TDB,-&O,CJ03AV:#7=\/([3N!J/98,C M("<*/36%K0*,[[-4PV[V>`L#%+?`O(7X%A)#:#2<$3A<>$)C!(L;!7Z>E635 MW;XZ!##KO>\G.KVLYB`9/9v4...@ctwri:[B2B]JJN-TJJ^13F-=A%Y/9"_L MG]&0<QO)9)$#`MB'"PL2&MV(IH5V^NW;,'!$S6766Z>S8>!H+S9A]F4KW"<@ MW4_*_KYZLA//>`RG^'@,C##86%MGL"a!4[k9...@%`)8?H`]G'#7&&0"CD&T m5ox06i=5-i...@y%41?1]5c`h1uvpr"SM+;?4NG-?K#U,G%7U:MEH^FP<>/Z M2#":CH34=(#(XO&QS.$X`3U_C(UJ-?UOL00U%4:?<:0<+>E%5I3U5.\U^'O0 M0I3(3&V.#-QP(%,>,%?ZMFVI9V'B)@G+XAE/-...@51;YL3DK``;4H1I9?:13[2 MO'W<=ASATA#1KK"/0xef...@7"0?%,H59-_9>]-7?WIA<'1Z`!+UL(;B0=A* M*R'%I2-#9C(=8;LCQ`[1P:V0X2Y(0BG:BNZ/7_Y65"ZODVFCSN]?;.P!V(9F M>]%C"-OOLC.&(@2/TZ5FI.!NTT[XH)AC<.-=89R8A+#?P.'V^5&>ZW3J&MVS MK5V_+R,1WUD7#YKMP#;1A`]\1M3P-%IH5,\7:G\\7D1Q.A[OLV8U7N2'U_]N MW$=X!`)f\25...@vmd::47\%L\SB#E$=ZLTL!HF*V!M:ESXTKLY"%L9\>C$& MQLQPM[K8W0XX2S/072,)SL].PW,B_W`&A/<F<u...@#:E*-UY_`B57I]\M)HB'" MF>I7-`1-]H*C%$U<*%E!<&M0_!E1'[<]%.$V:M2R73P.-!Y4E!^#\_9IL'46 MHWDN[+R'0TBE&J(-4.GC:0'4...@0(;CH-<(1QN[D9+,9W[UFDW8QI272>)N MD-=NZ->*C5SI]($G$2`A6SDCTQ)KS#/Q!O$9335660;8!KC76\13,>ILC([" M77,u...@0p//3L%V'.VB6P4-T;`...@--su)R\`)^#]QQ1]SVU+XI>[K/QFR#/J?/L M]!MCZAAL_\GAR:A43T[\<$;gx...@`[?(]("_V5ZR6(K*^:%[MB+/HG?5NE> M[<N\>.RO^C7+-B(.M]^BKW;JT/%[`E2*GTC/^^KO)$9`=w...@0/!B%P8=5J M.>Z35.\B+S+DB7?<(8Z\XXX''OBC@<4CBVC<"\...@w*`z/>]_6RV[V&KH+7. M=F^?12BK7<_]V^C,;Z5S2_!P#Z))c...@7.:DQ42ZI;:UI(R&_...@hpj*>/)W" M?WXPL_\U&X)_N"G^;)DD[R/<54\\BXU](kz0*r$^`+z$yzq...@tcr%hx*.o M?_]:?RA^1^S[?=FD;R?_^^SISOSOL^-P9/*_8?`,\[_!\<GP:_[W:_X7,XQ; M\QQEEJS`2-Z95+%S(!`O.>TA"]A\=:%5.,"HYCV&8R$F1W6AU7OT,)0+."@3 M&@s...@p]0+&e[c2ow#r...@!]/A'A5K7E^4*C3!3;8T3G-,X%+.])>Y+C7X M:qdlf!.jal`ruy-...@p-8qiwa;>)%'S+)fv...@+@>GDLL*3U4K&P-'_W&G MR21/H&NTHPN]^F(,!CO1&$9+WC>f...@z/]E,'1]2=PF!>c...@o<X$F6%=,X M!5^BQ"$"!...@=cy,A.'4836##FQNMDCWNCBTQ566??!#C';#FL$5CM-$0Q*4*" MNHQ7-'NQG&H%VQ)#$*5-EAQ@)`'-V>ZX=))L$B7)FO+<$*...@?1*q91@E0@ MC)!&%P(P$XS&JX0*Y!2$?Y(M\@@.U$L'AR)M^T"F9&1XZZECI8OH4C<]0$^4 MFO$;;&"1+'&5OR!T<ID5@&J!UQ1TOW`1X4/&MP\+#>HY-:S'`2FK4!X!PT`> MWL2E3N?1A2X\]0.$U+]Z"GR^*/'5'J)_G2UQ[E?+BWBBWD45Z=U/A/14O9G- m...@gz'L[+'!04I`PO2C+U'@2DB($9ZFU:Z4N.D'!9YHKE)7IXJ"62><;'*G-> M0YQIAJ"_G"V1>PA87]*HEV6I%Q=)K$O8D?^$$7B#`2->`;.75<17&LZKN5Z` M^!40L,`...@i.0&!S%3X[/@R_&2DW^/;;IR`HZBTG%*OH5PT<5S-]I<HYQ(40 M#I<B!O6-S`(&@:+"L(NX<Q?CT&U/K8C$VYKG)683Z`8JIB5X,"OM5:1*B$*! MNZ`%I4XX2FWVTUSDH%^U5DN(D`LX>M(i...@1gp=1(9U]E:E0!M(3FJF4-:HKI M`L<!CG#(+%UC(U38AJP83\9X5T1QN+Z>H'5]2T/?%`5>\BS*RQ8")'T+\-"D M0NW\D.1#^8Y.;NEX5$S&(;Y,T<!g2...@g5c[$2fa`p%.]"\,6"."`_R"5/, ME%^(4I"=/;;R>PA!MB\#UA0^3P^"!8*QQ+3(:8L\]W?"_KNG?F=X?*K34[]+ MEO!E<;G$^\-25B-`ZK"V=Y1>P#""^P47#,`<6TWCA:zn-`a=...@ko)E0HV5 MYP5`2L)q...@081#f,5HJO9NO.?#,?...@b;-W^3<P.>_R*ZUW*9PRAD:q...@]l8 M#B0?2+%EO"OK1I&%N8(PX!(E9:6...@s'TM"`9T!"'*>0&"!_Z-X%,R:2UFM M60+'@PN@&$/,^A(;;^D.;N\.J;M)"]!2ZR06_$<Q#[6>P=NY24G$G<B_&8$I M$5R"62EQCGY-OEZ2!+R539M)I#9[9NT5<',S=4V198VR?VMB'l...@_ql7p\cb MYLF+1L+(7&F./O)"Z"I%S`B^$!)?O4$%XN,3KXYI.&;K#"P-98VL\?*EIHH] M<#\2O,BF\Y`.S-^6H+?-D=O1!EJK3XMI)+-A-N4<+$LCLB<<,\;,_P$(-)I= M\I6.Q4H/Z2)T+#B]MMA[JKUIF'R+KL=(ZCCL"CF$M4X/1"VP+^`:2=^B%"!% M8\[5;Y'WP!)X%-DM`X*[!M1"GS:I=%+?:U1?]S#PU-!30:VWT+/>Z"&`F\UF M4=UP0W=E64#_P;6gs%mp?k!nw...@qn3_mvfc2%-p:8FQ+EKO0O/3\V5`>;? M0TS1Q]34B]C"=)E/*?1>;Q6!S06M8UL"IE28;#K7IC.H.X.Z\\9TAG6GH)TB M`Q#W@"8XP.?U@/#1\PT^W[!9FBD8_;UJ9.BTSO196?8>;Y>Q0&Z,^?(0MU&$ M.^5,.!J`K=<[[0#'NALVEN<,KPW/U<!*4G:n...@x9rd[nxme_6]lm-jxqayx$0 M-=<6P+#5]`K?K0N'6F<BZX;2JH0`,%00V2S/;(QG-@&B$,!YT%TTV%LFGGX. M6L<.;;HLAWXZW0%WWW#W3;<;-[[A%#RY\K:+%+L*HQY:H_0D08J$'C6\\XBT M;L.-U0`203(POL8P8USH<i...@zl]<<O/#>)E2T&S'25p%...@%\6"2##IJ0D0 M;Z2&ZR=&`S(M>3QP!1*3>`.D1:;K'[5F,%<>PU.3J=[G5.Y)*W5XS*E#SAI" M_T:64&9KLM+"+=6:&DQ>5+GM4H3ZUL7$R'(E4LMTKQ;H7BW-9'!RNM-HF&=2 MKRUYRDF(++T00:*[T9ZE(B)!.8E-*@(3>*...@+2n)NB+(JN/COVA87>'J;UI m5n6!...@bw"SX*D_$,+,T6"Z`NY:4XK6=(=U=\C=8*!6IO*'21FXK:WFF0]4 MTWC<wg^...@s)LW]DY'\=H*A,w...@d@r]...@94m&!5$0_[>_&N%'<T;MU5.MR M0T92+H0TBG03/0B7;HO)2VCTE77&5J&V:D$8!-U_%T&E5:(8C24Y\8+.3Q'. MM@/3=5[D-\"Y[T7*WYN;HPY5'2K:ZX^F0?F;U)#AWLHO]Y"g$s...@pymz_8 MZ82RKM?-=5.TX?1S50AU[CZ1I7?'D2R].\YDNCN<@S6<h...@7n@9(&'(`PX M_O@<1;JOCA2OCV&0O/K,1=(\(H'^O?$$)=V\-:9!^"!"97$...@n@61!6'&Q M+&+-9VMS_[+"67".9@:$0UJDPF!U/0!DR!]P)];T'-#S#3W#VK\72..4U1,% m...@$$^]<F\I'N%V2<#>WURHT,U).:dy=$r^x-...@2v]8]x9t7vfss4p&X]JG MX[:SJ]\JE/L2J=S3NDRMT4DI*]EV/O-Y"&/NXVQM5VR2`ZGN:EVK2CO^^B;U MHSLG67VY3Z.I)J4UP-C9*"ZU^EN4++4D:/;;G(C3593$L+0[4]?[K>J>;74] M'<8?J$V^]>_A&p8my...@jvx262*2@U!F(ZA:;N8&,@[[#;'>5**N]M^U\-L M]X&\REIJSJ(`7=//<+\$>=L)Z_A?W>I$F?2/*8"1AKS(L(C%X9++=UDTI5`= M$9?ZMZ6&</w...@ig@<pmf...@u%xeujg!6,Q'5UA;,DDPC1\E20U&M?Y$?>^A M%2M&;NVBE=L+5AH>?&ZYBEWK)pnm*v...@=.n2c6+]>+b...@[#_'Z9"@-,F M0E_4)+PBGU,U3=%HSS2]Z,:!70N*%UAL,YN:USL,<:OBP*NK`VXM'VX5'=^O M>GZW:;$KZ<^,C>%"J6J=:[>q...@2:G+K#.;M)?<V*5O+[FU7MNDXEHXTIQ/' MT,N=Z(<'PZ$_[+K\5B`E+)2Z#"K$@/\...@y$?8#$/Q`VPS5*GL9)02ST94:S5 M_-L4:V">]2#P:@OLBRM75H5KVOIG@/\4HFRDNMG'%D<VHC:;&9UR'`L%,@BA M&S'AIF"S*3SOUB4)%X#]4B/T+2[0%`E]:]9)BZ1=W!I:;A8+?:WJ>&#]![DN M_[3RCSOJ/]3HY,34?\!(_!8P"(*3K]___4'U'U3^03?C5`0B!2#_&O4?=.W9 M^-3I<E''OL[F[4C3;8H(RASLRE3-HKA(UDK#\08_V4KSIX(4_94Y^LQ4F&&@ M\$:CKG(`O)2:*GW'PE_.LV4RO=4!]QW"r1_kx1...@+\+:(_`1;)a...@e^eo, MJEE45GAW7V;$&H>`93:n58`5p+...@k`e[7*=8;W.5?S#+\?W*^H5"%.FB\% MZ3*1?$5,2AG7$*O-T=!'*5">QY*)Y%GB&^W",0+G^8W$6OR]"1[%6*1^/<!$ MU7J`^;*;P4T[!*0<Z"5^SK>NGV[D24)!W-1Q5<1P["<0+&'E"9U."M:>P]$9 M3TSZ<C5$'X.J>?D]D'?Q2E>AO$M9=ZJOQGF%0-925D.)OCD!#:^!O`;\&LHK M%BDV6((.%A/#AXS%A/$A8Y&`&5[;6,(.EE"P#!E+*%B&C"44+,,&r...@0('>. M1L9[AJ;O7JAC]``?\W6X"NMJG139P35#("GLP$Y55`H70:0)+$H9T.R"IZ1" m...@#zes7+8\95.!*n55g5s*:T63IN'p#...@4sm\+^r<RK_\'[I;SVB?!;!-GO MC9M<:3<WM0#4*^JT0[\;@S?2M(M`]!C244O$-D!K$):P>FT/`...@qwua`t\$ M^3;06GTV;"+K"P@:J:D[Q`^7Z)_`?"M49LMNWV'=f699jk`sj#okcx...@9> MX/7A9N<TNF)`,YG=!P=%TW?8[A0O&J\]K76H0XC2CT9R12[K;M([13NZ(I$\ MHT5[O#Z/5N(QS1Y1X!&-F-"\320WY:TK;MU=XUD1-T_:WV+%;@%D.I'`;8#J MMBEI4;3"AX(:m...@#1]p85oli"'S2KV9)F,QX\*Z]U!WMOG93YNV.E]I%5W)F3 M*23%QUJ'T;0=Q&`...@6/1-NJ[<=zpo5x...@["[^'PU.25*>#M?,S!EVK-OW0- MGU=\7UKQ;2E=]3C.%_?_NY[)E_?_3W;__W^,P/\_,?Y_,'IZC/__'\,P^.K_ M_Q%_1P.K&--4yj+...@!_.]s8@"`^H)!...@!h<.<YCDQW<^T#AB3_?:]J^HXO6 M^?=62Q4O-+8XF!/"\W+*=:^_T&<V9\?GS^L>+AY4'QTJO^%:J.>.,A#T,>9S MYU.=07\-_O)SQRFQ-G6B5ED\=1K7CO$K."T^-BC:CC->....@]rn98!m1[d<@D# MNCW`?_HX.PTX>B&PW!)LM(2MED\U54"#$TVG?)ZZ?"MM2//,TZ#P:,7%6%)& M']...@]cu:"v...@*jwf<@2...@u),Y2`ML_MG3(#S'AI+,V(PSM'OMTW7/H^5X MM`1/-6LD=)A+7K^&V<8_ZNIMI1<_...@\z0h-5&Y$P^.9RQ!L=S^LQZ_?O/K+ MFQ],*XY!=Q!^/LJ(FO#UF#\\_K!^FU;C'R`0>I?!'`$!*4/`SSL)`*H)A8PO MSH1I6(:"g...@+\;/0$W!-L]H3<$TK/P8'TX"OZ..9,,JWMC6T?=:W-70WI:VVK M(>@va+...@ed"_...@6!%l8(2...@$2]x2unpi2u\;L=LS,U6K-;N#Z2_"=[: M_:'T-]&<W1\(?CN*:_<'TM^$=>W^4/J;.,_N#P6_'=^U^P/I;P*^=G\H_4T$ M^-SX]&)A9*7][>W!CO90VD&')')D)>+m5...@8<'D6B9:_`'!9,-I,@:YMAK M>X52#*)8BZ$1ON>WP-2QU^<!!I\+&-X!V-%D;/M4!ZZM+:##1WS,1KU7P\TH m...@x)=TZ[B:?&L0KL^)3QQ`_"T(UN;T,CZ]^&*?#(&-V)Y)-E_HRALE*"9$JL MM""S4\:W3)^)BS^VXN)/SW<"F&#y8s...@7"1-`?6T'R;0`25G\\O"^$B;4_ MMF+MVP`D`/_8#L`%PIP%&*%O1.#-$!2'X?/NJ5I'YG)^OM=7;K]EY`<8-1FO M:-#'[&4VL2<:*"RCSF8RIF_L5%O5.'#=)AU;Y+0;DUN1WU9P>QX<_;!YFA#^ M_O/PZ`>NIPGX'[`@'ozp!...@0>LB$;?8Z`$YO>C:#/K<!=%6^%;>:#/@&_R M#Y\W?9V$N`W<<F?;:&=NC,4!MHVSCXU9H;5;=`WN^[^^>V>?-N8<ZOJ26&)# ME[SC@&H!W$:[3?4-:K_M"MHUS[U65,0P4C=DQ3]-J?SS5CA!GP,\...@ky5h$ M\_H/*P0S'ULT0_^WO6/M;=M(?K9^!:,@@bb...@y<0*E+7R]/@(TM=$+^B5G M"(I%M]1)<B#).I&&__OMO/9!+O5PT^**DK#U6,W,+F=?,[,S0VQ;1&N2*I3` M$B$-FL3Y:k...@09[oi(e...@3625%1-uf7t'QSO#\R7%1K9W4T'4)JU5<YV^3N/] M2(FYC',"P#DQ)SK<Q+ZUDM)"GE27&?B+B'+4MERA4NYU9I."W_COYSV<9&D* MY*C4"to8v?[841d[wq\[uln\z...@keg]\*.an%$02/QV972VF$;XX%^'T`@ M"_T_=$N%0<]76(0,>AYT*"RA8V$)TE=[X*L]*-9.-1?0I=!!UX5%R%+CI;"$ M7FH\%?C0?;67&^_C?.#C?.#C?.#C?.#C?.#C?.#C?.#C?%#DO"7T**6^QT%; MH8ZVVCR7"1DZD%$),JN`C$N0>1%2*41M&/2X?.'p#]x$...@.#z&+^...@tm M4?SJ2A9Y:S&&hv\i...@.)RKB0:,WK$UF:":*W(')DRXQ3(`&&o...@elj_l`$' m...@x*lukpz&H/&W!X?WL">&T6K!G?JGZ,0RXY<TYF&F4ZHD`HU7PC*-;U7W\ M>]YD4TQJ$T-:H70Y!#RJ=2/V+<<(.`#GL7:IWF?]L5LMU@;'XM1VL-NW)]1C M$]5=\QBZ:Q(VCNZ!AZ9#P$Z4QIYE>XK)$2=`BT7J6-NCSI=HC4)4!e!...@x M=/Z[IXZR^IU<\K?L#4Q(K]#LI[]SA0;*N#N0._ZF1"7;GTHD5+(2E7Q_*K%0 MR5TJ^P7M#>2D&:((WGQI[</L5GDODT`++Q]$P+C2OI5I/*@&.SZ^PK1;T)ZQ M`#[`FWIYX*'YH*4QR\(G%%`L>X[V]H7V:J$8W=L;L1_')Y@@XB9=J$$Z2V8? MDX7$W5JI,=...@7!da)*![ZL+B9G(G4,e%[[5ahl...@!zk%agtdj&DT$LVQ_-. M;<9CPXER,>7CN]DL<Z3'Q:_+HED9>0!3ND*8=*5&/<@+Q:D2CY=N&=VK)4GJ m...@82]+et!&1*QVG32FD_N"P&T7LZ'E'W''>2C<:#R3D%57[-1FY3&O<^"&1 MT,WOX#>K.M)(N:!-=&6,5,C)2C2?J"6R>&k...@9b4#@2E="`JI4/!)18`3"T% M`F\9O>5"<CI2LT,&/BK]!>N+E=["OA.C5A")HIOP%Q$*ZY"g\\ee=k[...@y M6BP3G/)M&!=JT[I(+R[&::K6WA;+VZT1V[A:CN)QU*(.5^72J:V"'W*KT'6A M<^`KK58+0VFG0,IP:(M64I'+OUTLX(2`MS;U?7,]?)]]DD"-9G\Q#D:<34*' M9UC3N,]^9$TY1'`;\L!''`[7U`Y0YJ5IE(*W.R.T=4+G!ZK1VRVE41\$A0ZN MBFG1"NJ3<B/NM:CB8YL5X*)=B9N/#71I;E=^>;GE('W98L!4%<NQ4G&@(*X[ M77FG!;3>07J?7L5`,+07.&,-(TH=-H29_:5W)2JF1/&4U'6>)#)'+`'`J.)` M8K2O<BBSBM7#T;YJH>!%!B\_!(]5PFW\AD'F&Z_K#<8(\L)GN(J\$:ZJ!9%J M6&=[06<,G>\%G1.T%;&X`T,"$7%%U*&;M))QCI8!_\*AFZ801%&RQRKY^8W> M'Y0\FIJ50<M(:I.++3NN.89PA4DJVRE6FL$ID0;6*C#"5;,T"=<;"O\_2/0< MD>R)^-E!^)'&Y]5LG1^$'VO\G-?I>'_...@vj(,Y[X'#-9(4K7C6A>K<V`2R MREY0ZF88_X5>1ON)#DEU+3*KC;5TP\),21,*0)D'*"H"y...@6&NCUKY_/4>_ MVYY1=$%G,@(%*T]FQ$[<W0+VOY62YS<?)n...@2l5+r?":?E3R?PV<)E56?+;W/ M!,PJ`=P182:J`*-G!UH4?PK!./Q-'\0A&7'9b+...@ib=s?<&F`8M47]HP+1 M02ALL6XWMEFW'%M-;0>=C&NXOEWBEK#S?L/g...@p>@YC:1Q;5XQ%)'CWDGO M=;\?=CQE.CW[<6!^S;[HG<2GK\YL#%WFQ<B17L^I0Y>%;AOC5])&TYR.^4CC MGRLUY9E=GIORG/5V9!H\0N+L!9@/;D8?E\!`$-54,V(H`R(`\;IO0>1JFO5. MHM<O&!*QCX]QN))K'O:EM@;$XP#_7YS$-QU\50VK_O85!&6I]S:^A?2;Y-J% M5[`FB/ZH1/9)%...@1p6dlcil(W8TS*LFX1,,#)_"77&#U^,=O4:^SQRCJXHCC M)/JONCR00FM.)/-Q>F.=&<"23K.J<....@fd+lv:TG-)EB#I[-9$UQIG(0E"8S M!\,/0+G^"\[D/W$<GZHQW-?C^*4S<CW?ON*1V\:W\/]L[/K'JFU9J1ZSEK$! M_0T*FD`_-*95*F57,/95P(Q9(@*...@+`<Z"AB)+N)-2M)U2QI2RW93B[91R MII3;E%"P.V>?=L[X2O0L(#F)+/Q0I2GA=-N#PT>',1<FQ#:LJ`(KVXH55V#E MC&4SR%(!+2X=53+(M?&A%KXF`9D^9];GW'QF94!_MU6W!CA7-<SCD-JMU>UJ M-!WR(]O4*Z3LE7>\&?5Y&G3$*F*7_3?ADW"K#)/,8]ULKG+9QIHS]A$?/V]3 MFBO156?9F6L\OIK#MS\A3]6GGXRGY3:"-J3M-BEV-+2I8H"1XAY$QR7DH0;. mqnion0+?mk...@e9!^bn_#$);C\N;Z?)RF0XG">;%33EYFZ.V83EX7GX%$', M&CM+9K>++!C?81Z#Z2B'2,/1]`Z%9;*...@rfg8:3t...@zfv`#ifs8%[xjx* MMQA.=QS-LUW!>T3?15\$QR@)5LB*`WM#LX,I[_J*ZIQ.K78:`\?C"SB^:G&U M8NE#\Y_.56+9!8.69=WW6ONV6VV6VF*S+"Q?C$>_XVW`CF_=6X4Q1W<X6W*$ M<:(D&<\%UX'*R=DJ^6RT<$rf$m[...@^84._x`&6]C.`O9:IX&?>)"*RK914 m...@kjyi;G8-!N79)y...@g@-*QX5A+P^&JI-+SJIGSE/W<3!`$X(Y='TLD>AS M$(EM(GRSZ[U/2T&:68=Z6_;XJ!N4+M.US&9Z";7W--5YJN_*KO!I6')$4G"F M(3UIAXP["/UX%L4G4;PD(?-EI=*#S2M.N+4P=>\^/0...@^.a!>]518:7K9/A_^ M)HXZKMM5[;Y3N^_4[CNU^\X.]QWQVJE==FJ7G<_OLF.XJQ2^R'.\J^%$N[0Z MS*=>`AG2=?>!...@qkakbk<0...@nvjq`]?37:Z2;$N"5%A`B%[A%+SSE9B3Q' M*R5["(_NKC1Q<A7:'N,E>)V,<<ZSTK)R$(F0]#T1'W'UP#+Q=B*5\:&Q0QWF M#/^/58H?I_%N<T;_...@]3;]&)\8:NWJIH6+[DM\_0"H]_^#I7V\2IK[;=>B\.U M.%R+P[4X7(O#M3A<B\-_2W'8)^C:S_&Q_/=_9$]P.2Z"AW7=I'/S1#_*L53P MHZ<G,/[32I%/#WI<?A`IX;y...@wnx']M1N\^_;]#\-?SG\^__G[?^'V<-]T M9&J%X'S?C4%2>!&/2GW8((]V42I].$(G^00>AI1,X4;5...@5'<6_GZ2J%M!3T M`$EA$:6(T*Q!SF!>G:?I#63H>?N/=Y??-(;#<7(]A8>DML?3:;*!#):A>`+@ MT_&8(^VB9C#C8]3@&TQB85<%#ZH<C2DCNNDQ/`F=X5`;0IO?(7"[*348[DLW m...@2gy+ko]#cvd%!v>F!IH`^4)?P#,F%\FX'>H\-M^I!6^*[M#M)N7O3(53 MNJ6Z[A`&VV?._Z5FP=VGDW3^Q^7_?7E:F?]+76=GZC\Z.SV-^B].(?]7%,?U M\Y__E*NS5#)9,NXT&D\EGWTA$5C0:,c...@*z6pk5-muu=]u5=]u5=]u5=]u5=] 0U5=]_56N_P']R-H=`*`````` ` end -- ------------------------------------------------------------------------------ Peter McCluskey | http://www.rahul.net/pcm |