delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/07/01/01:14:57

Date: Fri, 1 Jul 94 06:53:29 +0100
From: buers AT dg1 DOT chemie DOT uni-konstanz DOT de (Dieter Buerssner)
To: morphine AT whatever DOT cs DOT jhu DOT edu
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Long floats


Here are the files for long double support in printf, scanf and
friends. The zip file does not contain any directory structure. You
have to copy the files to the corresponding directories and then
recompile libc.
Before doing this, you have to add the prototypes

long double _atold(const char *);
long double _strtold(const char *, char **);

to std.h
and

long double modfl(long double, long double *);

to math.h. I believe the functions have the same names as
the Borland C functions.

Note that printf might have problems with long double subnormal numbers. 
For 'normal' double numbers, this version of printf is
more exact than the original. Dito for scanf.
It also should be faster than the original for large ore small
numbers. 

The normal double versions now passes extensive tests for
IEEE conformance (I believe the tests are by Steven Moshier).
The long double versions are still a few bits (1-3) wrong sometimes.
But the relative error is less than the djgpp1.11 version.

Unforunately I don't have the original source code anymore, so I
can't send diffs.


Hope this helps

Dieter


begin 0 longdbl.zip
M4$L#!!0    ( /:VCAO[FLG76 ,  -<%   '    051/3$0N0WV4[6_;-A#&
M/]> _X=;"S22H=E-^K*D>T$5VUG4.;8AR>N*84AI\F03E4F#I&P8P_[W':DX
M#HIAWZP3[_<\#^_D00_*M;10R1IAPPZP9CN$):*"C1:RDBA@>8#11QAAK8U$
MB#XR!>=75^=Q'R"KP.JDV^GUP*W1XD,39TYJ98$9A*$^&+E:.XB&L>][_026
MP,4;^$T:ZT AT OW6%+RC4GED,#T]L$7KV^?/?#]Q=7;]\DL"C2/AT9=#O=SJ#7
M[4"/\-LCGWO^Y24%0LAQA<I9T)4W!@LE=VBL= =?&;):5MHHR?J!D=8U!(8%
M0R',#D5X$5[F**1U1BX;GPF8$M!04*DH>6,XALI2*F8.0-!-FWJ+9B.=0Q$8
M6Z-W4M!5NC5S[R$ZCX_-3]E>W3$".S\1LB\)Q(_Y DAI)Q\DN=YLZ$P2'J*+
M^!N45+QNA%2KUIM$ZP]L:W8(('\IE:YKO?='&/^J]+Y&L4+/? _PY4M8"S(N
M&NX>:,2PNG)["A@@ G<TQVV[(O]WS0E<H_F*-1Z"6TD7S;5JW6ICS\X"+B2G
M*]&\\2["#H$VH*EJ8,,<&LEJ>[K-O73KMN5)]( **C0L&BP39,E)ZW.>&%Z 
M#OMBA<PU-'<OY2<;5D;:P#G&[<,49;#AY13;X']LEM*GUV'S*&>@/,T:/K(E
M>B4!3M.8!571BU.NC79XO'0:&)G=/:Q012_;Q3AZ"O%UX\!ND?N/CAHE8?;&
M+YYJ5]!:2MEN>7F;%5#,;LI/:3X&^CW/9[]GH_&(AIT65#@[@W0Z AT D]9>3M;
ME/3[,XS_F.?CHH!9'A#9W7R240,1\G1:9N,B AT 6PZG"Q&V?37Y+%SDMUE95IF
MLVE"JN-C6T"<6F%V W?C?'A+C^EU-LG*ST'_)BNG7O-FED,*\S0OL^%BDN8P
M7^3S63$.:<)?P M9T1U54J&()MGU\+X8#HL87KZ$[X[E6BH7=SO6;Q,'OF8&
M+.=6BC__ AT I_A^8?H1<R<KOK\V=O^!43'-8WAW>!\</7J^8^D0B,BH4$/'C7"
M?BGMP.,?S;3?"/QDG:CELK_^Y9LB>0K%;J?6:@5"-\L:NYU[,E"+B%DN)5E]
MQK6RKK7:"T7R\#?5#;K&J.C>.G-J2"!J3_;BZ6(RB6,Z_$^W\R]02P,$%   
M  @ 3'R>&WIJGPGT&P  .E0   @   !$3U!23E0N0^4\:W?;MI*?E7/R'Q#?
MD^A)6;(=-[8B9Q5;3MRKVCZVW&:W[3J4"$G<4"0O2?G1)O>W+^8!$)1D)TW/
MV2^;TR8D@!D,!H.9P<Q0FS4QG/FI4/]-_$"*H[/SB]-A\U#4-I\^T9W8,W?O
MQ<R]D6(D92CFD>=/?.F)T;TX^E$<R2!*?"DJ/[JA:._MM:M-(4XF(HT:3Y_4
M:B*;R50RT-C-_"A,A9M(<1C=)_YTEHG*817 AT MBUD#;&U(_[I)VFFYNO=2,)T
M$8T5KDPFXO1]0[2V7^W^X&SMO=QIB*O+7E,-470#Y4^?B)I"'VO\8\#_ZI6X
MD%,99JF()D"4N K]&YFD?G8/+8=NX$^B)/3=)L+W AT D @?"H2M8#D1GK8 AT 9T7
MTO/3+/%'"UB/<$-/+-0B_5"M>I&,);:,_-!-[H5".J<5QS*9^UDF/1$GT8WO
M20^193,WVQ>5=E4#V[AA]LQ5B#/8#46^KQ"-S=K"*/-I.D0UCN9S-::!\U>V
MJDNH_' <+#P_G!)MODQA0!RX]\B0210$T:WJ1ESN^%,8W0;2FTK N2_$QX\H
M$HIX;S'.&)O"D4:3[!86Z,D;&40QB8;"B'@>8G-#O)7))QG(>Z36SU)%?DC4
M1DE:+@M<-2'QHO$"J$#Y$5$B(M63B+F;R<1W@]1P5-SZV0Q7L[)#?DCK"@+A
M>HJDS$^!%3D.F$ -AL:)=+-%HM:FIH*=19'Q\Z62C)Q*'\F Z4)W+M=(5ACE
MW2AYR^N$PX7(1A)F\D06"1EZJD?"Y&I=\RB3FNFI\!2Q-VK81'44:<*E1XL,
ML:6Q',.!4X"^0G.;@."%)()IJE9)*QB^/[D4EV?'PU]Z%WVAGL\OSGX^.>H?
MB8\?>Y>JH5P6O=,C\<O)\/W9U5 ]_Z?H?SB_Z%]>BK,+<?+3^>"D?X2H%(:+
MWNGPI'_9$">GAX.KHY/3=PT#.3CYZ638&YZ<G3;4K'T-:H&)LV-$]%/_XO"]
M:NJ]/1F<#/\3YS\^&9["G,=JTIXX[UT,3PZO!KT+<7YU<7YVV<?5X/'_AS\1
MGISXH?0J AT Y DOT WA]>7AX>75?'BA7BFFP,_S*I/GZ0 AT 36,QGKF)2,?CU/=^_5UT
MQ<9_5/Y1]:(X";/FN/2RN;TG*EI2JV)W<^O5YEYKHZ-FDJ&G)MNL"3,/RED8
M90*FT 31M.*:<(IK]8<>@5 AT Z0^)U>I]N9O>Q3)NS UR$@E)#AU<7;\\.KZ\+
M0S//3:8T3@:IM/MNW$3U,1*D;PG2CW@"W3:&69?:U+C 'ZTT)G[(TRY")$\O
M \U%N^V,_$S(NS@*I5IGY>?>!_%.3(+(S>!(Q1&P':S-=NN5\.38G[N!\/PI
MG A@%3.J]%/O0__#>:FDAN7<H\;!D> _.WLOMX#U> )R3;08A5$">,/%?"23
M5-NR]M8K =1-$G>,"B%S/ZGQBUAL[RW1TA%S]TXDTDVCT!T%</14/QR992J/
M+WJ'P]+VGK7+I:/^\?E%_[!4VBVT#;"QO6,/?7MU7"I5],+J&F&]72TIBNN&
M+&1<49A*YU?#P\IX5BU5;B+?JXIXD8W5>T-,XJHM=+V+=Y61FTK8Y*KX[>F3
MTO4BB,*IZ(I)X$[3%X.STW<GIT/Q1MRXUVXRK:C_XX; ,3G@/H("WPGJ\OW9
MQ9# *NDL2K)\; $-[G AT  DOT O-('I/(QA#6&;J@(:W7T.6[E"\XBW)W*6"T9#+HC
MRJURU>Z'<UP)H3NLBKKNI AT -BS6$0P;$?JR%_/GTBA)JL,G[=!2 PN(LD1#*X
MXZ!;WLL[]K"#7\:.@E$-7XKZA,G!1=ESA ?=/8-((35SA*^[K;RC5;;G".MF
M#GVF4:C1)<LBX4DWR.U>**>*#G#6%I.)5&N,%HJ*3\'"F\J"!)_VW_6&)S_W
MKP_/KDZ'U_\<7!V]Z]M"QK)1*K7N6NT2""6*A5J4G"K$-BX8>O1V@$.W\J%>
MM( 39(_4H@,C=W D"= ZK+T!3?X*Q[E!)I/0S22Z5,7I>T<_7EWBX':+II>3
M3+C>_RS2#,QZ8?1_]2_.SGM','J+1O\ADTA4W%1$<1RQ$1X%;OBI*F+7*P"_
M1_-W?/)!0>\0M.MYHG4'UKKU ;3%Q+_+C=&*'N>3N;A&05F$J3\-U8SP9O<B
M_TPOO-F[KV7M)@LJ-J=)[>'A0KU%3WAH&R29-< 8-_A$,A63>0;*@P=D;I+%
M^DU-&5<[1>FN)=$B](HSHV:EZ6KR+BX AT LW#!Q#@SG;]9@:J5>;0Q">BXUDAM
M",1ODPZ AM?OSK:W@-/6H?=3](?<H$BSIV<?+28X>>%X>5%8SL2MBTI#&#LX
M=[-9<W: .VPCFT?>I("^43P#@-]N2,=N,%H" )W8>4!P8!UL<2OC*$PSIGTR
MSUH-4*V!K]I(MQZ?#/JJ9VE-B./I$XV$  D S49I&:V"+MF(X5VC[J!66P;I
MP'F X^EF AT AP&Y%,)B!_/.B4\+S#:'<,]#IU8!68-"A4.&,2Z[\8-%E*XX_%B
MO AT C<+$KRH2&C2]S04VAFZI_[@AHI$5F,D-4A6E,]P-Z/ZX >< G<!NZ</29W
M!=QDBA>2%.09)?KYH/FK[$^F[WXGW'R$R=X2"9HX RR>_^KYT>+NP^_YLL"2
M,L7J"9 AT IS*!Q%.+%@GT1'.\!401@/ 9#IA^*U1DFO AT R\] ^"P1>1^G](.%9J
MP71[@_/8$#(;6V"@11@('H6K_AM%-](:$N?$?)1W6>*6+0>P0)7-*JVM"# ?
M1^)!TE1YWMSVJ AT W0LDX[!TND&WQE*:M<,= PEF 1*IHPA^&.3MC4=,MR?.M[
MV8R@\'&)S%=,9<N20>"FGF<::AM1*8MR0Y3K\)=31J#?6E4;+)ID DOT 6 AT FYW&4
M0$C!F'C$!A*"3$YMJ?=\O5GL8C\J2 @S6DQ^?7MU_#M3&KMC$K_GXT8NJ/!H
M[1VJJG!95Y7 I9G$SL$U2(IX(:Y/SBY^J0K0&*6\_7,7.GZY&':*[2^ZXM\5
MU=,_._X,D/W>$6BRTA?&O(Q:8:B*;E>T0(F56'-4%'11_Y5 TW2%UFS (;CO
MM=I;VSLO=W]XM>>.QFHE&YT'%@6\J(S##'W4CJC7%29>$_BM2!3H+UP,C(61
M;+FJV!MG20=:5'L- AT 5^\$.KM65>4GY<[VC0JS&,(XM $J&!@U8X3BM?H$Y-Q
M>,!_(VT$F"O/EADU>'M<%9\_"X7I@ D>+2:I_T<UYQ/#JU%(J"+MM[ ,Z-;@
MXM7SWA%KPH[5I!:LFC)NXLN*0I*J:2L5,N%5OK?PH!56EDIK^8A=7P0Y^#"J
MEM7K:N!XEDN33=$2/7PS>&Q3L>N1_5K=)[PAV7<Q2_YH$Y^-9[2C6DK'9/+5
M;*A3 AT 0I2Z?1(&I6>2=O0!:E4XG:GC6^H"6"O\*:0 +)]U7KK9XK>2LU>UAC,
M2EF4]Y$.")?"EM?$QX\G%+ZBDP^VK\Z:?A2IB=TXEF[2R(=H0)2)6S\(((:E
MZ(@2Z37+9>XN.8[HG5Z>B _;/[;;W+AII/H94$XL,8L0=!9*TRB+!*ZEDQ/^
M#R:<*/O<%;W!\)'AM37K[.4:E+0\<5:;98A10'P AT 1 NGP1Q:)P5)R;*X0L11
MZB\C^LK:Q7 F[]F[E'?D55K0$/%U.;Z'L9P5EE6T(*S<IZMPK%O,S25VE#24
M0P:,N2*.>X/!\/W%V=6[]SP),<Y9YC-?LA[A=9U!]#[6']O')@^&%9%\HK*I
ME:NY'EA9(.&#HZLU3V AT  DOT A%KA#+(5%3]UT['O5\R1]5.Z\V,#HT? =DO41"CJ
M)BH (^IUK8H<!UQ:4C3X-Y\YU,/B#3 AT B^UK?K5UC:XWPG4(X%V+^"D5!T%"^
M&A@^5*\8^2:8D9SZ(8:EHPD,^V9)VRQN(-]['Z&W7=X7]+1EGK;-TPZMAEY>
MFN9=\_2#>7IEGO:8!=8^>9&]>6OWH*K5^_*6LB);V=2BB/.>6/NW=KF#%1&G
M,,8C(+-E$!W/> 0F6#?-XR!C!JFA#S%:3*H/GP9T7;NBW2F</3($&G\\B9);
M"__1HR1MUBRE8.L$SY8 GW% C#&G!A447'FJ'&E\+5K&33#!1X>O146][Y3M
MPX;7'Y /:QT4W[ 6(FV*^O;+Q'Z9VB_O+,U##'BA=[YJ_!]]'5SFNW4=M+31
M.C#[:E\,BQ; <]U )L&+Q"*$:XV?9IB_X5M+1T P"^-1?H;A/@T'T2N9B@ 2
M60V11OJJBX*19NY]*A),G+G!JC%!E78@=/39;!6J95#*X.Q,T0',W]^5T3^D
M8'!O,*P:K6K\%?S',7AYI[FSV/HE5^J&HBYX-H34(J AT 0L]93,DX=9>>9<K_0
M&I#W?UGBO;YJ"1=\U#1W$%I TS5OJI^BYL=T*\&%$5[",+<-EW&Z:VEG*)U%
MM^$*RXV,V$?#$&"=@Y(E38Z)3RSQ; 6\M2Q7XYLL3^&#LH'H'>0^8C?-T)W;
MP##=!N<OC=U!,6H(ORF;XN-'/\PFE8WGS:W)1D-46(;WFGM[>]5.F2E64#XY
MD1/(WE- AT R$]!KD^O!H,&B*[G>T4QA/";HAL&%#0:1C?ULAL<S^18Y AT N]X 9Z
MY AT T@MF%.(2"LH_Q'DPIH3TLY&4Y!2C!TEWU/S?L\%\$7$*3R#:+>YPG:CVC8
M\ $EDPMN;56OU$#-FWN/.1$:7MN:M0 AT HC+Z*8=U8C-(61HX2Z7ZRR#_[/@,1
M639!!Z^9]ZS.7]G:/,+H1 AT X>K_&7AC.9>^;IS*63Y9I GL(#1[8IP*_68!0V
MY'2\'NFG5GA'@;DBE?]:R#"_R2B .%&#,>]GPI0I,$RXH?#G<2!-&8)C]#;E
ME<7<#4.9?)-/MED3IV>7PXN3PZ%N,K:Q0I'#HLF )5(,V;*,NX_Q,K4$\!FZ
M$06$?)W6BAOZ-RKA(@BJ&YTEX]"UU!3O#*H5%XXU5$>D61+(L ,M(@J#>Q%$
MT2<,'6EM N-/KP9<TL'*X2.@+Q?XK#4KJF3$6JF2-IU&8K)(H-RBJ4<0WSC>
M%6_6&J(VE_/Q+*E $ WCZ-IP5&*U/N[,&J)%VJ2:!S"TSHF%8\(5I"Z AT _8"&
M<[,9"R%+:K/C$*O==B]W\N)R'^Y;O+:K[SN4BZ\>RJ*/M2Q)'QA^-6#6>WMX
MU#_>^.I=\N[K%.P:)(%TL4:I=;?Y@<3)GRBB0@>S=)8=U6JQ-QB",N<#]"R_
M 1L^F:2=%@HU39YY,[%0"J#2^O?7[8JMEYK-IH"8Z(>[ @9H]N&:9H6[4^-E
M4%6.]"B*TOK.T EYP?M:MCW+Y2I$ )A!7?'O_.JW5K\F,ET$F17_!OZ[E!8E
M58KI95?[,A!?#_RQGUFK5, XWD_!*<H/]3?I0[[EB+IX>W6<ZQ]K2\'AQ'4^
ML]51?I4LU1P'L("0_LIPSS&%\KL^SMRZV:4<BSZY?,6D7GWU?RPX7/!&<_DC
M2>Z*5_!2(T>YI:,9FCS(Y$/=2C3.W" 7=<V'+[;_8QC".NGI$U0(RR82*Q7S
M<A5*1( /2D[>3":R*40OHUH9-(8-L_U9F5I2-HB4Z[B=^1 VQ'.7Z4H1"O]4
MC2S/HD7@@=S&K@>IEFB!B=*/> E7: -W+%.L!;4#A>D+ED7T!1D)V8.1Y,P(
M1]?">S,7'$13]4>#.O1VZZ?21J608.9>@S)Q(SF)$DGN &5?H)R2RC&!.Q-P
M$*P9H7[ @90B(L#C ,\(JMX:",LW+PV3R'\M_$2'!G7:R>1<S%'!PQ^2IZ%A
M,:A*S(^3*)8)#[*F*>(ODAK=R&1-IJTC)G[H!L%] W02[V##8 AT V=:V28'6A<
MOD!$\WB101HV6Z AT 5@7CB/?-6"J AT 1%3/U_WPQGL'V*Z1FNRG/J(.<:2$3U^'4
M75Z\Y6?%L!5#=^D>6]?)18Z>(VR70^4'9JXWW+)OLIRYXY\'F AT F\7N^LV!)C
M*0HC1;TKMBS;@<6W#I678#DM,-!(BAVJU7 AT KS/S/+/U52EB!JL#SHC4VI!S 
MYG!>$T.-%*\58;VNE0F6?Y5%V800[+*3U>7B<'Q_;,%:DQ+RED9.[YA^J=JA
MN8=X AT 4;@K[-"OWP''UH6'[1&Y2.#4?0'$L#6+%I6<!I*J%O3V+/H>:SSJI"0
M0>:3J[&'++H/I1-+>984\D^.P*0<BL3:O%W7-GPY6)YQ&T%=.+BWR[FRAM [
MGV?!Z AT 9.>Z=6 E!'TAU*%+8*_*[E$7)@1.+Z 99,-^.F9CMSP&#AJ)"%:MW.
M36PQTA)4<8-;B&!Q.=8:]Z]@F+[_!!E-233 U5C/!H_U+F>)#K3B>L,-^WJJ
MM1?IWUKE?4"_\?S-!JG\5+QIB$48R%0]@1F"P(>>:B4MZ,F)NP AT R,OKKCZ(:
MRZKL"R?)\7HYO.CW#M_WCQ#U%ZMJK%#1DLD0RIZY1E&(MFP/&NKO+?Q[!_]^
MA7^W=_&?;>K9I:[V%G5NO52]&L/+-HUIM[9HU%9KAX;MM/9V!XJ:SB/DA'*Z
M1)%#)#F$U2&<#F%TF"R'Z7*8,$=3YA1(<S1MCB'.,=0Y!?*LTN-S 3UYT^DY
M(-O*&^!=5':V]G;V=G_8VMMMM@:B)I;?M]0_535P4SW^]^Y+W)@U3#@Y_1D"
ME:(KSCMK!W!O6Z';A"%<CWUN/GXY JK@]!SW+H?7 AT Z DOT SJ[<#J!,X_;E_<7ER
M=LH.?XIQ#1'X6::P8GVT"]_7( Z^T338&9SC]R8C*5!NH2 K AT 5+,BCL"OZ\-
MT%6\\E.IHM U5$UQK!K+5)9=UBN ,& D,2XX=[,,+_6Z5EOS]"':R4')J_N>
M/OG^,LAB 20)R<-ED"B2I41.??P*R=0DUC!BL%(-V=$56E&6^/,&7)JP7F!*
M+OHR#%>'-40VCXM%@+JBD>PHH1%=NZI1+YB(YJ AT  DOT Z1(>OU0*0S0I) 8;4Z6#
MGJ 181$0-\'*1CW%"Z:SVC$E45C4ULV3,P0^E1D$S; ,3*0!7"2BA(+/\"$!
M00/^>IW()DB(U "WA4/Q55BSGI*L'U9T-D00=T_/&R+.NG!"+2O[@.  J,UO
M+*OOYFSWO"Z<J)62#;W  WTPM1$VM89=D2<6T DOT 95 AT K@8-BO AT Z9+6#>+?\_ 3
M;T,=^DSX*<>O]:*"^;:%PA76TY :S#+P7S@?DXF# Y,[+ 6QXQCW[EMFR3<?
MN+GI>59E36$!S+H"%4@#W3) 9^%] DQI !5N$**%^^H;ZMXT!3D^%</XXC7+
MKGIFNPZ'MZ:6P/=L-H;LG)F=AO:OB39*,-1(DQCKA<11DG&L AT X4=OKR [@@]
M0K4T'72FY$F'(Z *3[/5!F-/UU%8"<Q=V7ZYVVR)3=%N6=-S\2LH\.;+/?K3
M;#81SZ:N6>J8]8AZG<\XB5,VC\W2S!:(5K,]$$MK+#&W^',%3.-6*@!?!WH'
M5077;E5-\1W5$U6HYAHG*^1:L6P7[(919L2:0@$#)R=I1^%<,.VY1PX+BF%[
M0R_N""[KJG&!F!$N;N>-SN7(GUB.OKDR*[S6]P/@6*<2OI/T/+2!#%OXY*9I
M29X)AG_^+/*L9X&.IJ8#*.!Y4S&'J(-5-AQZ(HWF,O\0"3]4R"?!=J-@>-;J
M2K"K*+_T!EO5; T:XD4V-]5TFCQ[AZUN$_UR'%P>E/DA!=9%$=\Y>(UZ&IQK
M^@" B_XKE$^B#!_;30* $PE7FS9?2JJMAC"E_JP!>,]A?L<Q^VWN!L:AMA/^
M5KY?DMW:MV6)^:1%IUZ/.\6<QNHV+N_CMVZD%G1K'^T5 4=M:28^%Z>LQ<O1
M9?B&,0J7YT,26+WH:2$T AT Y](F*@.9W?QVU8_Z^CK#,D(!6VHT""1#HXU<20W
MT\F50H'>ZC+R6RB+H2[ 6I:/0 AT D$"R=[04]U+H7=+)82<*<L <G##+P,MI/ 
M8<RUP^F=)%&(P6M]?)EZQV$#81D;L0 AT S/^" HSZ$^MN_!F!(,,.7?\=(R/)<
M;.& JO[O<4.*?HCF(I^F=7Y(R;AI7.^9'TWQ6MA.">])P>26'O1+;#0%+R,?
MH:=V;-<DG\7V+[[)+7G<+]&.R;)G8KDFW^J;&.DD!M>6G)-\"2N.R=^2.CS\
MFS5A[9CJ$ATX^T7U].U:''8)7ID7>8R!*7U4R?\%I??%B'I!@6H;^Y=1_7\T
MAEK!%0TAI+@>-X./\\IR@!\RE4;!T0V]X.TT!%[WW/!>3#??Z8]53.RN54XM
MMNN;(!3(V#5>S'!F4B8.>(F8[\+TEF6VJ8",VIHZ"Z8&46>];FGEC*ZA_*5?
MEE^4S;=]*U[ U/("WAGGTTZZ1A.NKU6 4.^!%;:%[G;36O.S7+3J=9-G,$XE
MI4G3[#[@7VGP9"Q#+Q41%310DM14EW1XJ&1PG>%%4)W2Q AT N#MC(4D,$X*OVP
M AT P:UOM11J\&MS69N*)P=\&FGN+J$FCBY12ODM.NZK.N*[\WU#5C3]XR;M/#G
M#Z]%L]5JM8T<Y.Z*)5+XM7$J-E:+XJBRF0OD(I,3M'-5_%L9<K//Z!IT!Z1X
MK+M(96KEH*/)Q!G=.^0G1:- SKE4#<B![Q)]#WX!@'X+9&JR2W8JL/B)O4TS
MZ":@@Z-4>28,/J;VL4([9W7!9R+E06*. @R6<XN^J7KG'/0;8NH<2#TZC[K8
MQ60RCQ MW9*_]7[5X/%AE$G;K3%$KQ6$KU_"&MJ#_;^^C.%O"H61%J!["\!D
MT;]^8V/1-=$O9OI#9K XN/5W+WBL.8O&A4GZ5B/VJ ECPV#6L&2R_L+UC?UQ
M-E[KC-;*%_DN[4B*UF2"OUUC$M[H4R ;BZ9FR8GXRE70..&T)=]GD)[9!LFV
M0U\PMHLA4U@\AU([Q=P)Q7R?/OD;7\";3]\YW"P*G\!3C-G&J\/!Q=W\L["_
MF!QLOJ3Z]3\+W]C7) 54.[H5^2 +AEFRT"QUM[#,FU^V[)<=JNG)&W;MWE=E
M$XZC':*(U';3+C-#OIA9OQB9I8\$'S\&,%"?3\*=_ZP'_XA @BDS=IS%@=BI
MY AT X4NN*A9WN6L#/+OHIF&@ZHUW'(ZRY\TL)#+#^<X(N>,J-$8 AT J18'D'5V AT X
M07*S#W&\!RZ=%MZV+@DO 2%W<:<0QB67G=*8'52+%'6GRTJ.#-=41.<X^488
M?,L7#,XI?ORX\;RY;9=_.RWP"7;*93'U;V0J[J.%<*WB>7:QS,$E(4=&.^6_
MN2,XH%!D99&]PG^^I/#\K,NM(T^C'CCMW_P[%&LS1,A<?%0 \)&U_LV?W^E<
MUV)4<XA!9SS42.OS 'CK"D?O.P-PK;I]&'0/?7G'CC75D>E)[1D.Q![/8*Y3
M7*?&]@4&/8<0,+%+7Y"P?1/J1JN(@ZA:AJQVK#M+1O'Z)5H$$VQJ"O1BB!J]
M'#Y5_+HT@[6)N;KFW-DLWFZUGCXQF;**AU\*F" 39L+HMT#,)M5H (E*9VE'
MTRR!W[X[Z??[7DQ$FD)2+!LEC\*T*2+WVTMM<S><[6^U5AJ#_>TM7)"H^;#?
ME>)DM>H++S<$?NP<P"Y .>3=#Y.)G?&C[=*C8#I0SOP<5',MJR88Q_<56O#&
MJ7NZ AT 9!:FM8- DOT  AT DG-(CGVJXN_S+1(S_$8NW$8[_$\C#/[Y9Y;K%MB<'+C;@3
M+XMM^8ZMX_G=UWC^ --SKK_@<?"GNKP'N) '=H _/VECK2C]=M-^'KGE[)CD
M7^D0?E9.\785^OI;!OP()K/J(F^CY!,I8UM??-\._R]02P,$%     @ 5;Y/
M'-FJ$9KB"   >AP   @   !$3U-#04XN0\T9_4_C1O;G(/$_/%0=_D@"#DNY
M+HFI*+O;TD. %E8ZB7+(.)/$JK$CVX'E"O>WW[SW9L9C)^S2K4XZMKO,S'OS
MOK_&W?;A<I:4(/^;)*F =V<71X>G6T?@;Z^O:2!![J)'F$7W FZ%R. N'R>3
M1(SA]A'>_0KO1)H7B0#WURB#P=NW V\+X'@"9=Y;7_-]J&:B%.I2'%5)GI40
M%0*.\L<BF<XJ<(\\O/?&(M:#G5WX1U*4E>1W>"^8TL<\EK0J4<#I+ST(WORP
M]_?^SMOO=WOPZ>)P2Z)(N4GR[\9BDF0";L9Y&4NI;O!'K1'INR2+T\58P*BL
MQDF^-3MHG:7)K3P$D+0F>0%1E4]:%^/J<2[XXB*3[#0OE$"Q[UR<'W6"@;6_
M/.\$.PV,7\X^7G:"^N#C^Y\_G1Q^[%BW3LY.?^[LF#W AT _MW9IY].WL-NC75\
MVJ#SX>3L\!*IK*^5E31Z#$E6P4V298L[%Y>^/Z^*'IVB)KQ*1<:+,OFW//IP
M+'GX23[OP?H:+/T AT HNNCTC=34<6>R_A>SX8L,H;)(TW0>YF<+_*)E,L;ML4N
MJ\*-9U$!+XK]_R!LG$M!@>4D-G'J\MDB*Y-I)L8*6.*E^AJ>W91Q%=U>[7R_
M=PTA_+&^U AT EZS3]T='%^M/37 %?@+QWI"U_#>]71LZT&VB1#74JI0$ 0/%I?
M4ZGA6BZR+36YD]:^SY,Q^'Y43.?>^AJJ7XAJ462NNGR3Y@\N79V AT 87O OI);
MO$W7T*;/BJMA2O<LQM\>!\TP>)4"TX2J%5*.9U*Z#IGH+JKB68^C-IX-]+G*
M2"RX(AN+<8^RD,S8:9BUPQ3TSEPP!WD![G#H0?F0()Y+N"AEM^M19,51*<#Y
M+7#VI7<ZRM+@,ETTH\+XF[./\&0";I-(&"+00V!GFE<YC,5DJ%$14\(SAB._
M#DCM5-GQT$+=KB3&2 AT T9?EN(Z'=:/VLZ1C'FH^*!A?Q1F7$?^@,2N".-IPV@
MI=B04OA*2 AT 8W92!<D9:","P%"2#]8PBB)^1&56<Z>IAA9W23<IQ,DTJR\]BV
M^J+\UQ\$T)4NACXX AT 3-<R<5H2[<D/\^B\2:0/Y9&8>BDCF:C9,)V\ )I0-W 
M7)VUKU+W>=W=DU5LN0N]CL"5\H/$D(BZ.*ZNCIY$\HS:2;F8ST5A6WC;!^)7
MY6G^P""68AK',$WN10D/49$EV70?#D\OCN$(V_AM,B[AMHAB,29D3.-ID2_F
M$CNI9DD&XO.\$&5)(PJV>]:K&X(3.>C$0^7$MNF?6Z'_6^ T8E;'***H'DRY
M;LH ]ULJ4*8TJ:6J<UKBS3HK8',3L/\0B--!&;^9/:!2$. K*41JF$3D$@!4
M E3!R.Q-Q=5#[0H;-+$W]UQ$5+ZX+J=]MTO%3UK1*(SEW?,VPO=G'T AT W5[5$
MB78-FW!Q?N2QKE9&###)\8(I-1W+:HA 9K7T8_;]_M!65J['8A(MTFJ?ER3R
M*OE6\0:M4AL8SW3$JL,PU+(NQ<87Y&[*W"R$M6;/JOO5W7A][9L'/M/L_L+<
M9,](K8[(>9[-*<YP+:6\74RN]G:OAPV\'MQ&I= M4GR>EX+R)8Y2*6\FII-T
MVH-86BNC.HR8:9Y-(8WOHU3?B^=YR5Y&/Z#Z8>C$#CP]@=J4]D;5*CV \/0I
MM?@1?#6$^I[<[H/:>:>?3DYZRJQH4E->X(LY#<HXY$,2V'1X4D;O2%NY.3ZE
M:FWI()RG)[6<U,LIRZ^OT5L +Z(IY7X0M*CDC*_ /R#4%&^%\KF!,M AT C(>?8
MQ,EQ=(6=8U0 AT W^C=JNQ?SGV34';V-W)?2QYCG;5RCW.#(%+:ONY6+(1*3#_C
MN2.FW3+[85T>ZA& "=O=3-+O:OH&X37D,$DQ$AMS&@RAWY=D#L)@"$;"5=;I
MF3*CF",MN^90ZPD<-!ZSD8["#;J08 D[$<#VM)KN".$S90&O_^EXK<LVX1U[
MMFM$18=FXRK)%J+9&\VDQ$)(1BY>#,/!'OG;=2)G%,;$983Q[!&.<VB??G \
MSXP!G"7*!,2#"?Z@*BRGU&@4OF$,XT/%-VC AT A5($6HU&.QYTN8)XH]&@OMPB
M"[MJ]AF8J&IIJAC$T _K$="(L:2PC1TY?4Y4FS6##FL0R](U[#%L8B5QTPW-
M"-YR[,Z$]MB0]D"#4]4(P^/32R5./9FW#/X2?6* E0E_O^<P4L4A#(.O\\4=
M<T+T)2$4*2U%,ZM?RL-F7G.^;& B;V[B[[[\[4H''<12Z@/GK>,M\64%Z=0<
M/JN:PV6&KNA8ZM<-B')35[8_5&6N6[W5Z%6WU 6B9ED#R+?MFB=!88A-B$PW
M#T DOT NRI0_J AT Y+']2 [L #;]N'J<@$C!]_%R5/NZKC!22--BRW('I*NBYY:33:
M]>")9 AT 922,]Z+G4:!:7'Q?Y*D'I&T8SE^^XDS:-*]53)#S^VN2RGUQ[2EFGA
M#*X)C?/%;2K^"B5^T6AZ-$BTB=Y(JNGXRV2/3Y>L@/3*65Y8BO+>,X'R)3HM
MDZEG;/VH?1T5;:Q5YRM4-QR6B5/HJW 9F \OK='SSWRT^Y\/G,/E^3.7B'I$
M3*92W#F;K96&.:\U<F."W-Q$1<*07NI>_=F O^H034W&NEARJ3?PB_,C>TBR
M7T AT O#DG(VCR0<$9B:O64U"+>D+O)/E AT U\5VU9;P\MV2,9_1.:S[3KC>5#'69
M5]6)JRF& =?JF9D\:/B!D?GP41?<%;JO'*GJCSUU@=4?5 X4V54OPQ<?6,]_
MIA0K!=5;?"/$8+&$0&-N&(O7%L!/!$.KY/(CT$JJH)U4]@?'];6O?%UN1W\/
M*@[MRHY&GT8YYU]Z%M"=W3(NS:@Q78(81N!BT<\G*O)@&QK[J^#:DWC=KF?T
M9[VM63Z$_ZA0JN>:&OQD DV/I:@.B7EM#:<TX.-GH G^/R)6.RFAG(LXB5+U
M[68E_YK!*O:V=)85=&*R.#B ;Y! EJ-C,ZLH![JVP[Q^O_0,4ZC']3Z5$.D(
M)HB;\JJ_<RU-C7ISW!HG,*@+ W:&7];&;JC[@L+V)/F"TM88]^VFL\*X:852
M!?5_ 5!+ P04    " !*B(X;7+R:;Z<    S 0  !P   $U/1$9,+E-UCD$.
M AT C 01=>0<(=90())(96X,%[&4%K$I$#3#LCQG1$17;B:OO]?IXU*- LF<53>
M[*@L7/M1MS:)UWFAPDVALY 9Y0CZ<>9S<.(=A(DNI2?!&6%K-<(YY_*PZ95<
MF9QZ86<(V#R AT J+ZUG46FV1J]@E0NLB'N-H<J49P^]^@U7O030!8PER_P@[X/
MN'O5'R^@0\CY=RM.RCNN!2M'SJRI9T/3&UKW!%!+ P04    " "N#8\;DI$-
M^R8#  #<!P  "0   %-44E1/3$0N0YU576_B.A!]ODC\A]%>:2&A!&CWJZ)4
MHK15V>VV%:5:]>G*)(;X*K&1[<!6;?_[CIV$&+;5?CSAF?$Y<^9X@(Y?K_D^
MC,3R0;)%K*$Y\J!W>'@ IY_AE"9",KH'^^_@"Y-*4P[#%<83$<840PE7%] ]
M^/3A8WO_\/T[0V7IIC%3,&<)!?R,F-*2S3)-(\AXA" =4T!PJB#!&J89M[E(
MA%E*N;8<;T+4Q/@BB/Y_LP=D15A"9L AT XER)UQ '1%DNB2%*E@,S$B@:680B&
M L1\BPM4++(D A*&(ET2_H#P0FT?V!RXT-C.0BU+<7U&=S6L8RII!88U42!F
MFC!.HP J#RQ+2AX,LZ%Q_5 AT SC?0:^ZVHG!'-TA<U![]V]MMX>G%]-X7AU3U\
M&TXFPZOI?7_#3U<TMYBERX31R'*MB92$:]OMZ]ED=(&8X<GX<CR]!R'A?#R]
M.KN]A?/K"5IY,YQ,QZ.[R^$$;NXF-]>W9Y6H,"9\@1I0C181: '_V2/:UDP$
M7^##9L8VG%$QP3T+.@W@),.$XE1BHE.OU6O_,AXF643A*"4Z#N)C-Z5TE+#9
M3C+4#TMJ<_6:VZH4T P%5]HHE."KO>+@*TDURGBLUP!<F.S_T_%!4I4E&HPF
M ,;1/INFWY>"4UX67%QD+ZB0X+F"*;;@MM!J0R_HNH2V5$9L<YHG9*$&W;X9
M!T#" +I!]]*6#0+C7AE34\Q/9:F K6.6T*:OX.U;8$HM26 AT BSS,UY&FUBGML
M#N;68 "-5F.KBIR)HNZ%=G[AL;B5-VSW^MNH9T< - WV&+'=AF>DF/ (P\.&
MYW+9D>$IEV\2^#X8;.8VB=8 'P_:ANKECH[28$MI9"WL7>[ ?E?CAL?1N=\O
M4U98!+Z%677>IE9U,B(ZVQ,][TC/N5%]U]5N*G91P>XK3J)*1ZC.)"^>W^$I
M/: XS=/3QI*S;<<K:2]M@%M_90L<5]PQZ>Y:/%==K+&YS86PXQ==?GWFS=2R
M8O_+IZ2[&V92/^^8.UWY8KG"?-*CXKD YD)"D]FO(##3U?R5M%I>M2B^LX;&
MU3_ 54)?,Z<T!GPH?E>L-S\ 4$L! A0 %     @ ]K:.&_N:R==8 P  UP4 
M  <          0 @         $%43TQ$+D-02P$"%  4    " !,?)X;>FJ?
M"?0;   Z5   "          ! "    !] P  1$]04DY4+D-02P$"%  4    
M" !5OD\<V:H1FN((  !Z'   "          ! "    "7'P  1$]30T%.+D-0
M2P$"%  4    " !*B(X;7+R:;Z<    S 0  !P         ! "    "?*   
M34]$1DPN4U!+ 0(4 !0    ( *X-CQN2D0W[)@,  -P'   )          $ 
G(    &LI  !35%)43TQ$+D-02P4&      4 !0 - 0  N"P     
 
end


- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019