[alt.sources] Psroff 2.0 Part 12 of 16

clewis@ecicrl.UUCP (Chris Lewis) (11/17/90)

Submitted-by: Chris Lewis <clewis@ecicrl.uucp>
Archive-name: psroff2.0/Part12

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then feed it
# into a shell via "sh file" or similar.  To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix@uunet.uu.net if you want that tool.
# Contents:  debug.c fonts.lj/B.10.pk.UU fonts.lj/R.10.pk.UU
#   fonts.lj/S.10.pk.UU fonts.lj/S.11.pk.UU pkc.c
#   utils/fonts/cmtt10.pk.UU utils/pktype.c utils/psxlate.c
# Wrapped by clewis@ecicrl on Fri Nov 16 23:37:04 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
echo If this archive is complete, you will see the following message:
echo '          "shar: End of archive 12 (of 16)."'
if test -f 'debug.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'debug.c'\"
else
  echo shar: Extracting \"'debug.c'\" \(2293 characters\)
  sed "s/^X//" >'debug.c' <<'END_OF_FILE'
X#include "defs.h"
X
X#ifndef	lint
Xstatic char SCCSid[] =
X    "@(#)debug.c: 2.4 Copyright 90/10/22 14:53:06 Chris Lewis";
X#endif
X
X#ifdef	DEBUG
X
Xint debug = 0;
X
X#define	D_CAT	1
X#define	D_SPEC	2
X#define	D_CHAR	4
X#define	D_FONT	8
X#define	D_BEND	0x10
X#define	D_PK	0x20
X#define	D_VERB	0x40
X#define	D_FLSH	0x80
X
Xstruct dbm {
X    char req;
X    int bit;
X} dbm[] = {
X    {'c', D_CAT},
X    {'s', D_SPEC},
X    {'C', D_CHAR},
X    {'f', D_FONT},
X    {'F', D_FLSH},
X    {'b', D_BEND},
X    {'p', D_PK},
X    {'v', D_VERB},
X    {'A', ~0},
X    {0, 0}
X};
X
Xsetdebug(str, df)
Xchar *str, *df; {
X    register struct dbm *d;
X    for(;*str; str++) {
X	for(d = dbm; d->req; d++)
X	    if (d->req == *str) {
X		debug |= d->bit;
X		break;
X	    }
X	if (!d->req) {
X	    fprintf(stderr, "%s: don't understand %c debug flag\n",
X		progname, *str);
X	    exit(1);
X	}
X    }
X
X    if (debug) {
X	if (!(diagFile = fopen(df, "w"))) {
X	    fprintf(stderr, "%s: Cannot open diagnostics file (%s)\n",
X		progname, df);
X	    exit(1);
X	}
X	fprintf(diagFile, "Debug flags: %x\n", debug);
X    }
X}
X
X#ifdef VFPRINTF
X#include <varargs.h>
X/* VARARGS */
Xdprintf(level, va_alist)
Xint level;
Xva_dcl
X{
X	va_list args;
X	char *fmt;
X
X	if (!(debug&level))
X	    return;
X
X	va_start(args);
X	fmt = va_arg(args, char *);
X	VFPRINTF(diagFile, fmt, args);
X	va_end(args);
X	if (debug&D_FLSH)
X	    fflush(diagFile);
X}
X#else
X/* VARARGS1 ARGSUSED */
Xdprintf(level, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
Xint level;
Xchar	*fmt;
Xint	a1, a2, a3, a4, a5, a6, a7, a8, a9, a10; {
X	char buf[BUFSIZ];
X
X	if (!(debug&level))
X	    return;
X
X	sprintf(buf, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
X	fprintf(diagFile, buf);
X	if (debug&D_FLSH)
X	    fflush(diagFile);
X}
X#endif
X#endif
X
Xchar *
Xmustmalloc(n, msg)
Xint n;
Xchar *msg; {
X    extern char *malloc();
X    register char *p = malloc((unsigned) n);
X    if (!p) {
X	fprintf(stderr, "%s: Out of space! (requesting %d bytes, key: %s)\n",
X	    progname, n, msg);
X	exit(1);
X    }
X    clrarray(p, n);
X    return(p);
X}
X
X#ifdef	BCOPY
X#ifndef BCOPYLIB
X/*	"slowish" routines when you don't have memcpy and friends
X */
Xbcopy(from, to, len)
Xregister char *from, *to;
Xregister int len;
X{
X  while(len--)
X	*to++ = *from++;
X}
X
Xbzero(array, len)
Xregister char *array;
Xregister int len;
X{
X  while(len--)
X	*array++ = '\0';
X}
X#endif BCOPYLIB
X#endif
END_OF_FILE
  if test 2293 -ne `wc -c <'debug.c'`; then
    echo shar: \"'debug.c'\" unpacked with wrong size!
  fi
  # end of 'debug.c'
fi
if test -f 'fonts.lj/B.10.pk.UU' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts.lj/B.10.pk.UU'\"
else
  echo shar: Extracting \"'fonts.lj/B.10.pk.UU'\" \(6381 characters\)
  sed "s/^X//" >'fonts.lj/B.10.pk.UU' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 fonts.lj/B.10.pk
XM]UD``*``````````!":N``0FKM`0J0```!@)"/P<%%4W-D955'+0$:@````8
XM"@CV'$151S8V-51B@.`0LP```"0)!_,</C&P>#P;&/BP$R$````/!AW\'!0=
XMCG%#XRST',%!T!\B````&1$._AP49"]D8?<W%!%$$?89'U&17QD4*"09%<`Q
XM(P```"@A)?T<TN(W/6XS<];C-SUC<X`U$!.S<];D-SUC<\!5@W/6XS<];C-S
XMUN(W/2#`0B0````8$2']'H\L>+5"(C,T)"(E)"$U(W]2*4(J,C,7$HI\;&QL
XM>I(6(5(E$T(Y\R1T)%8D(B4C,C0C)#,A1:EM'R?`<B4````H(2']'E35)R0M
XM(V-2T$4V258W$I$V1RHW1RE'1RA(1R@Y1R<Z1R9*1R5,-Q8]`V)3TC4533)!
XM5-9&-TU38D'3134=(U-BT#8W'$5'*D9'*C='*3A'*$A')TE')SI')CPW%DPV
XM)CT346/3)!@M5$#`428````E(!W^'*3=,RVC4=E%+8-BUT8M=5+75"V%0=E3
XM':4AW&N67)9=(J;0+%PL>RL2:2HR:"HT9RE%92I&8RI6<2M7C&=Y(EEH(F:D
XM-<.X>73`%2<````-!P[]'!0O8=$4$?8?45\4)!70)B@````3"RG\'J&1@H."
XM@H-_-T?S?B1E;H1U?B2/.$CSDY*BDY*QL=@F*0```!,+*?T>&QLI.2HI.?.$
XMCSCB1UZ'1EXF1_-T?S<X*"@X*!D:T"HJ````&!$2_1YSU=.!4U$4,SDC*Q,6
XM)1$5?W=1$5)A,;(RDS-!%348/5TWT!$K````)1X?_1D!#M/07.T!`]#`%2P`
XM```-!P[]!10O8=$4$?8?45\4)!6H"2T````0"P3_"M'`#"X````-!@;]!10=
XML4'0*B\````8$2G]'@$2\!`^+3WSWB/>(]\]XCWB/>(]\]XCWB/?/>(]\P$"
XM`1#0(S`````8$QO^&F>D-'-S5'1#DSXDE!ZUE?%)0SDT1T4W-T-*=L`3,0``
XM`!@1&_T:DM!*=K9"7.UE?]/`,C(````8$QO^&EB<8U<T=A9U%GSX44E=!OT%
XMT%T%T4T3TCTCTB@F*24J)!LSTCTRU!_5$,`P,P```!@3&_X:9YQD551E-74F
XM925U,X70]=!-%+?43372]=%B*6%(SWQU)'4T96R88,`N-````!@5&_\:TBU3
XMU$TUTFT7T"%<(EP36R-:)%DE6"97)U8H52E4*E0!WEQ;_1#`*S4````8$QO^
XM&C*B70;'N*E\XRU")I13<G51E-)='B84B_BX44E2*50V5LEWP#0V````&!,;
XM_AJ6JH1B9&1$931U-(,_31714U91)#11%D)H,FA!XUE?%)44E#2$-'145(JG
XM8,`G-P```!@3'/T;$M3]4=0OTR.R,K)"HE*2T_+3+3\])-(]+C31Y5TCH-`R
XM.````!@3&_X:9ZQC=$*C0K,CLR2C)H,H4SE"6A)[FYQ3&D-))&R:J>*T%*,D
XMDT5D7*=@P#0Y````&!,;_AIGJW145'0TA#24'UE!XUE12&(X8D815#0A5E-=
XM%?T4,X4E=#5S1'135(JG@+`0.@````T&$OT1%!S!3:0<P4&P&#L````-!AK]
XM$10<P4VC)1QA7U'B04%!04"P$[@````/!AW\%!0<P4S^,CYT'8%!>`T]````
XM)1X-_1"T&5![T=`AN0```!<0'?T45+XVM`3^0M/?+3P\2TM7,?5J=!2",V-9
XM0-`A/P```!<0'?T<2&)D,H04>O91-UI;2SP\/?+>0@3TOC:T<+!,0````"4>
XM'?T<N,<X/"+"*RQ"DL8G+()2AH)!<T*!,E1Q<B)4=3(?)4A43D185$]4A4(2
XM5'5!(E1U,C%S0A0Q0H8V8M$M$M$L9(.GP;C`-4$````D'QS^&]'SWN)=SWVI
XMV?(6V/(VUB1]4E;4-7T_)VTBEM'4T-;/*VORT&D]!X+29/I]$,@N0@```"(<
XM'/X;V'VX:6=J9FM6Y&ME:U9J5VAHUI:E=K5FME;%7D;&]&ME:7+;39;`.$,`
XM```B&QS]&[AQC0,V=W5<5%T4-=,R74,EU2%M4A76CGV5UB%M4B75(EU"1=,E
XM71)UPI=SS1TX@,@P1````"4?'/X;V*V[:7EK:&T%=M!F;15FT67VTE7G;2;B
XM1M)5]M%6;05VMH:77;?8H,@V10```!\;'/X;_;=I5VLW;"?VPVXF4F)F4M%D
XM/1_0T60]'V4M'V4H)&T3]&T27VT#5L16I2_<(,@I1@```!X9'/X;_;5I56LU
XM;"7VPT;0+T928O1E+&0\_0QD/.-E+.5M+].0P#Y'````)B`<_1O(@<T3.G>(
XM;&==-&7416U35=8T;7)%V"/E;=]KTA749&TV5=-E;29ETF==%H;&IWC-$DTI
XM8C#(%T@````E(!S^&_T4T>E&QH_;CK;&3]%-$+@-20```!(0'/\;U.RU9=3`
XM&TH````9%!S_&U_2[4ME)V1&8_96-E5457-%J(#(1TL````E(!S^&_T7M&T3
XMEM`Z;#MK+0:BT6@])G/39CU&4]5D358VU&)]21;3@GTG1M)F;19GT&=M!H;&
XMEK:7IJ:FMI:W3]%-$,@=3````!T8'/X;_3SM%M7B;"]&LT:R5J-6E%9V']H0
XMR$!-````+2@<_ANM?8U;1]5XXB%=,A6/(ET2)8\C7"-8\D6B18XB58)5CR96
XM)ECR=4)UCRA2*%CB*7E8\J6E3Z<WT,A23@```"4@'/X;^[I(T2B=`H(7PH(G
XMLH(VLH)&HH)6DH)7@H)G<H)W8H*&8H*64H*70H*G,H*W(H+&(H+082@M"8+1
XMB"TG@M-H+46/+51*TC2M,D#`-D\````D'1S]&ZG455T$E*6U==!63215TE-M
XM)B]=11YVU&%=12]M)C725&T&5=!76UI)3055U)K((5`````A&QS^&]AMJ&AV
XM:E9K5>1K;T:U5J5FAGU9ZFU/T=#`1E$````D'23]&ZG455T$E*6U?UT%5=)3
XM;28O744>=M1O%=12;28UTE16-E54$R-74A4A6D$6709%U+<=8G'6-2_6K]>-
XMEMM#R#12````)"$<_AO7T-K1:&T&I<:UOD:VIK6VI<:%T=/49UTFA=%H;0Y6
XMEL]I9B1J9=-U0AT9@L`W4P```!L4'/T;6%%,$S1V)*0CPQ3#'TT"%=)]"ZT7
XMT6TGT7T:K2;273;]%M$Q/0,4LR:$(QQ!6&#`'U0````A'!S^&Q_=)&9D(W9S
XM(H:"$X:%XY:2[2MM/]50R!]5````)2`<_AO]&*[51M,I73*5TBM=`\6ST6=-
XM/1V)L,@Z5@```"0A'/\;_1FD;4*?;2*GT#MM`L>ST&LM%Z+2]I+4]G+5=3UF
XM4M=S/88RV7(MKV$MSB?>]0$//2#(6E<````Q+AS_&_T3T5I&MM`H:WPH>VLY
XM:VLJ:HHK]IB2QW(F<]!G(F<M%F,G8M%U)&4])E)&4M-D-'0M3V,F8RU7$H83
XMUF$H82UYB=>*C8]Z?:]<7;313<\]$]#`0E@````D(1S_&Q_13'>RT7D])W/4
XM9RU74M=S/88CV7$MN-WWWGWGW(VZVB)]@D;7-'U39]0H;3*7T3I]`L>RT'7\
XM;2#(+UD````D(1S_&_T9I'TCE]$K?#M\+0>BTG@])X+4=BUG0]9T+8<CV:VI
XMW(W>EMK]&<`X6@```!T7'/T;']@FAC27,Z8_.F0J92EU*6TVTWTVT_;3;3>"
XM9I)6HD>B1J,VLS:C-K,GI":6']D0N`Q;````#0<I_![,[63)N`Q=````#0<I
XM_Q[)[63,T!1>````&`T'^QQALY5S$T0T$W,1D1#`%6`````-!P[^'%%"3Q7Q
XM7Q810='Q8D'`*6$````7%1+_$4FS5(55961E96-UTUR88E9554=45U/B6%1'
XM$454$G1T8,@F8@```!L7'?\<^-7H754GF$1V@V647UI$Y5I?-:1%E%:#9!)4
XM<T9PT"!C````%1$2_A%H<U-35315)&4D<RY5U-2B))(S@E-3AT#`)&0````;
XM%QW^',^-7H6F)7178X94E4]*4^5:5/2E5)5CAG1+9RC`(F4````6$Q+_$7>4
XM4V.#1),DHR2I^M_BTDTELB2R-))48Y=0T!MF````#Q(=`!R7E#-T-51%145%
XM4UY%G]GM6OQ0P#1G````&!4;_Q%G-%-4(S14(S-S(CXT='-SA%234Y(7L=?R
XMUM"-)])=0DJN+003T#)+1$=(M<@<:````!L8'?\<^-;H765&E2(TA1%D?V=6
XMZEA3^RN0$FD````."Q[_'31N-F3<^&ZC4ZS`&VH````/#B8#'92>-I0$[X[4
XME1-:2D05-#-#9E#(+&L````9%AW_'/C4Z%U/5)16.%4Y5"M3+%$]"LNV%+4E
XMI3651)5%A55U93^CD,@-;`````X+'?\<^&[;4]G8(&T````H)1+_$81G9H(C
XM1"-(419"%D?V=G5NI86%/[*RL-@8;@```!L8$O\1A&:"(TA1%D?V=6ZEA3^R
XML-`?;P```!@5$O\1=[14<Y-4E#]+0>5;7Q2T-)14='14MW#()W`````;%QK_
XM$8)VM$=G1EE%651:1.5:4UI$651916=&=4=2:N5=+[S`*7$````9%AK^$692
XM=$(C9&94A46%1)4^595$E46%5(5C=G-7EB74Y5T?L-@7<@```!01$O\1<U)R
XM$S3B01-3533I6?Q0T"!S````$PX2_A$W$C)4(H(?."%*EJ2UIIE_EH:"%5(B
XM)D#`&70````3#AK_&6XROSKTC=Z#6>-4)$060B=BV!9U````&Q@2_Q'X6&ZU
XMA65V=':$0AAV.,@B=@```!D6$O\1^E<UDF9S=7*&8I]5*_4RT/42T8TO;4]-
XM8J#(-W<````B'Q+_$?DY-_-65R9E5C=592A4(44I4R%$*E(Q4RIA(T([42-1
XM+'5!+0]E;15UTD=-/SDXR"=X````&182_Q'Z.39BE5.E,\43T7TFU%U5TWT3
XM%<,ELT6B98*%/X60R#)Y````&18:_Q'Z5S629G-U<H9BGU4K]3+043T%$M)]
XM+VU/36\M8[-2M4*U,L4BT3(M-=+`*7H````5$1+_$2TB15,F8R93)E0E9"5;
XM6VIK5216(V8C5C)7(F8R5D'3$,@)]@```!@7`0`+VM`/K````!@/!/P<-'$L
XM+"%T,-`3JP```!@/!OP=(U,U-1]C85-3-3+0$/X````@&QS^&M["P#CJTL`X
XMP%32````(!L<_A>GU2<M$K*QTAD=07'4$14=03%!TQ03'3%A(=(7$1TADM$:
XM+0&R_!PK'0*AT2D=(1%QTA(6'3$Q0=,4$QU!41'4%QU!D=(;*RT2<M5ZP!]^
XM````(!L)_@Y5TQ.-(2O0$45+6%A;14$="R'2@QTU4,!,^P```"HE'/X7VBHM
XMA(362$USD]=(362$UDA-<Y/72$UDA-9(37.3UTA-;TA-I(3:.3VDA-I(3:2$
XMVCD]I(3:2$VDA-HY/:2$VDA-HJ+(3/T````J)1S^%RHMI(3:2$VCD]I(3:2$
XMVDA-HY/:2$VDA-I(3:.3VDA-KTA-9(37.3UTA-9(362$USD]=(362$UDA-<Y
XM/72$UDA-@J+:T#N]````$@LE_1PU4D$S42)E]681.2DY*BDW(B0S(R0Q-2'B
XM-3$E,30C(S0B)SDJ*3DI,19O56(A4S%"53"8"5\````5%0,`]]6("7P````,
XM`BG['MD8"OP````9%!7^%`\@P"L\````(!D8_179/7363636363636363636
XM36]-I-I-I-I-I-I-I-I-I-I-H\@K/@```"`9&/T5/:3:3:3:3:3:3:3:3:3:
XM3:]-9-9-9-9-9-9-9-9-9-9-<]G(+%P````5$"G^'O+2XBTN(M+B+2XBTO+2
XMXBTN(M+B+2\M+B+2XBTN(M+B+2+2$-`;>P```!4.*?T>I(.CLK[#LK.3A-/3
XMPL[#PL/#U-@;?0```!4.*?T>33T\+.P\+#P]2#H[*^P[*SDX2L`WNP```"`9
XM'?P<U%UB0=,V'1-QT2D<.1PW.S<\.!T//8XCU;U.,]CC/4>A6:%"18%15T-1
X',SB$=8#U]M,V
X`
Xend
END_OF_FILE
  if test 6381 -ne `wc -c <'fonts.lj/B.10.pk.UU'`; then
    echo shar: \"'fonts.lj/B.10.pk.UU'\" unpacked with wrong size!
  fi
  # end of 'fonts.lj/B.10.pk.UU'
fi
if test -f 'fonts.lj/R.10.pk.UU' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts.lj/R.10.pk.UU'\"
else
  echo shar: Extracting \"'fonts.lj/R.10.pk.UU'\" \(6323 characters\)
  sed "s/^X//" >'fonts.lj/R.10.pk.UU' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 fonts.lj/R.10.pk
XM]UD``*``````````!":N``0FKM@.J0```!4&!_L<\S0S0U)1X`ZH````%08'
XM]QP<<\YS"`#@#[,````?"`?U'3Q"@8&!0CS`$2$````,!![\'1(=_L$MDA@2
XM$.`<(@```!4-#/\<8&>'OC[0T("$!"`B`A`1`1`1`0"P/",````C'B7^',+B
XM)RQC8\;B)RQC8\;C)RQC8XT!TN*B<L8V/&XR<JTAT(-CQN(G+&-CQN(G+&-C
XMQN(G+"#01B0````5$"'^'H\<:",2)204$R45$A86-A1?839A0A-1=$&&$9B9
XMB9BA%9$SD4,244?T%545-Q42%A42%A04%1,6(Q(9;?%PP&\E````(QXA_AY$
XMTR<C'1-B4K-C8X1B<2MC@9)S@8-S@7.#@7*3@6.3@6*C@5.R<5/#85+1)14]
XM(C%3U$8F34-2,=(U)1T24V'#4G&S4X&B8X&38X&2<X&#<X%S@X%RDX%CHG%C
XMLV%BT"46/1(Q<M-$P$XF````(!L?_AV#VB(=CR0=;C-!UO,QUS(=@Q':2)8[
XM23PJ/!H1.QD2.AD4.!DD.!CR8V&#<T&3=#&3@R&CE*2CH1.4@3*!(W%"4D-"
XM=85`X!`G````#`4,_!QGOM"$(A$1`-`C*````!`**OT>D8&!@8)_)_)_)S?B
XM)^LXXB@X\I\I\I*1H:&AV",I````$`HJ_AX:&AH9*?*?*?*#CB*.L^)R<W\G
XM\G\G*!@8&!G0(BH````5$!+^'GXR@5)1%#(T(R(C:*]*AC(B,D,C014E&.,G
XMT`\K````(!L<_A?>PL`X[-+`X`XL````#`0,_`-O]Q$1(DC("2T````."P(`
XM"=G@"BX````,!`3\`V_VT"XO````%1`I_AX!#RT_TM/2T]\M/?+3WRT]\M/2
XMT]\M/?+3WRT]\M/2T]\M/?(!`-`D,````!40'?X;9*)"<F)?*",X,O*B'L.C
XM\2HB.#/R@E)B<D*64-`2,0```!4-'/P;8J-V4C.N`7.53=`O,@```!40'/X;
XM59)288,QHC&C%(EY^#$Y/$_#SSP\/2TM+2TH%"D3*A,:$](!`0$1T#`S````
XM%1`=_AM6@E)O&#-&0D<R1D,V3//2TM*F`1(!'S`0/?03B>)X@R&308-24I90
XMP"XT````%1(<_QO/+2/1]-`1/"$\$CL3.B,Z%#D5."4X%C<7-B<V&#49-"DT
XMU>:SN]`N-0```!40'?X;(H)+6FB.40$1-7$A0F$18E)S09/3WB02F.*%LR&4
XM(9-!<V)#E6#0-S8````5$!W^&X2B0G)A8F-"9#)T,H(_/2TS53(4)#$6(T@B
XM2#$Z(>0Z/Q*C$Y(R@S*"4F)R0J50P"<W````%1$=_AL1T]/QTB'!+QP3&QTO
XM'2'2+2'2\M$]'RT>,]#E31*0T#0X````%1`=_AMEDD)Q@5&20:(N(J(CDB1R
XM15%7$GBGF&(V0E8BA"*6M>/"$K$BH4*"4U&64-`W.0```!40'?X;9*)"<F)2
XM@C.",I,?.B'D.C$J,3A"*$,F$30D$C53/]+3,H(T<C1B0W%A<F)"I7"P#SH`
XM```,!!+\$1(8$MXA@2&P%3L````,!!K\$1(8$MXA@3XS'R$A(3#`$;@````,
XM!![\%!(8$MGL(=\2$,`0/0```"`;#/X/'<'>#+WAW!#0(;D````4#QW^%&+/
XM3"!;\=XQTM'2PL.SL\XCAY,2H3)R9T#0'S\````4#QW^'$=B8S&3$Y?B@\+#
XMLL+"T=+>406BSTPGP%)`````(!L=_ARGU2<M$K*QTAD=07'6%1A8%!8T%Q,6
XM-A<2%B@T$A4X-!$6*34N13DU)BDU$14X-1$6*#02%C9$$Q8T$B,4&%1&'>'>
XM'>+22"ELI\`R00```!\<'?\<T.(MSB3:XA%-CB$TUN(534\732)UT1E-'1T"
XME<\;2RM:\=!)+05TQ4E\R#%"````'1@<_AO5I(2$HW2D9+-N-+14LV2D9)1T
XM=8TI24=*1DM%3#7D3$]$M%2D9)0]9<`Z0P```!X9'OX<MG&#8D)RHB)3T$0]
XM(S/3,SU"(]4O%-81/77GV3UQ\4UA(]8?,]05/2%ST!HK'#<M-W#(,T0````@
XM&QS^&]702$M*24PX]-`W31-DT47TTC7G323T32-4T45-$V301DT#=,.$LY23
XM?5G8-T4````<&!S^&P&&2D9,)O319-)?0!`51A<5XD8=12V]12WB1AU&&!1`
XM$1XD0!`5]-)4PF2D(!@@V"A&````&Q8<_AL!=4E%2R7TP53"]$T41A8>)$8;
XM12N[12OC1AOF0!1=V<!!1P```"$<'OX<MG&S8D*BHB*#T$<](V/3-CU"4]4D
XM]-84/7$^5-M,T]-4/41/3313TT;STD<]%(/!$Z*A,K-B4=%KR!-(````'QH<
XM_AO"SK1*2-6.Q*1,+,@,20````\,'/\;SMQ$3-`:2@```!40'?\;/87.`41#
XM5#XE1#1$46-Q0Y6`R$9+````(!P<_AO&E4Q(3"I,&TL<2AT$D=%('21QTT8=
XM1%'51#U$-=-"$4TT(23201--)531]'302$Q(6TE+]*2DM)2UA+8\6\@=3```
XM`!H5'/X;T,73[234XDP?1+)$L52B5)-4=1UQR#U-````)B$<_AN=*?1=)8XA
XM%-`12/$DL22.(321-(XA1'%$CB%4452.(60Q9(\701=(XAA(2!DI1S@I1)4E
XMP,A&3@```!\:'/X;B91;-UP8$4L8\22A@321@36!@42!CQ5'&!9&&/%T48&$
XM08&%,8&4,8\:0A@;01CQQ8\=!('1.!TB<]$DG!3`.T\````@&Q[^'*?5-3T3
XMD[.SD]`W/2-4TD0]0S]-1"/6,>=-9!/6,O340SU#1-)%/2-ST#D[.SD]$U/5
XM>L@B4````!P7'/X;U*2#A)1DI%2S7D2T1+-4I%249(.-"NM-++#`4%$````@
XM&R7^'*?5-3T3D[.SD]`W/2-4TD0]0S]-1"/6,>=-9!/6,O340SU#1&-D4U$Q
XM4W,Q43.3(6$3LQ%DT40W&I<=0G'5)2U3,_U8UVV4,,@X4@```!\<'?X;T]-'
XM3024M*2DLZXTM)2SI*2DE+1TT,TT9-%(/02$SE24OTE&%$HV%$I$$<<T'94@
XMP#A3````%Q(>_AQ644-2(C*1$B.C(L(3PAXCT!%-%=%=":N,BZG07171323B
XMT5_0(3LB(1H3(B8D%77`(%0````>&QS_&QW".$<R*4@B\:21$J2BXK2A[3Q-
XMEM/34,@?50```!\:'?X;Q91,-^UDT!D\&DL;.AT"H=$H'3-"UEK(-58````?
XM'!W_&[F#711DTB=-(870*?30&^)+'0])'16!TO1QTU4M3T4=;B0QV/01V6VO
XM3<XBT,A(5P```"LH'?\;M;6#6UI%3$PGXDM;&4I:&O21))&T@22!ST<41QQ6
XM%$<=#B119%'2XD,80QU$(841U?01I!'66EU^),38XBT2L,!$6````!\<'/\;
XM&TIFA:2BT$DM!8'21QTU4M1%'60QUU$MA!':3;7;3;]=D237$UUA1-4573)E
XMTAA-$97"I,'$HL5UISILR#)9````'QX<`!O)E%T4A-(:70*TT!Q;'16ATDD=
XM-8'41QU54M9%'80QV5(=I!';;<ZDV<G`.%H````9%!S^&QUA65$[0O*T,;1!
XMI4&D493332327232]-)-)=))'U2A1+$UHC2Q-,$TLB2S%94=8;@,6P````P'
XM*?P>Q.V%PK@,70````P'*0`>PNV%Q.`/7@```!4*!?L;#`2"$0*`0.`08```
XM``P%#/T<"(B$0A"WWF#`*F$````5$A+^$3>B4W139&-B<]+SMX0S8V-3<U*#
XM3B.#,1)T,2)1(Q%&0R#(*6(````7$QW_'&T^D],S6#$D)T<F.24Y-#HDY3HS
XM.B0Y-#DE1R8B%2<45M`?8P```!(.$OX15G)"4D0R5"-B,KY3PL.1(I$R<5)"
XM=4#`*60````7$QW^'*;3Z3E2-R41-B=%*30Y-"HSY3HT*C0Y-2DV)T<D(3A3
XM8-`A90```!(/$O\198)"8F)"@B.#$J6@%N/2TZ$BH3*!4E*%0,`89@````T/
XM'0`<A9(R8S121$-27E.+CM(YI,`V9P```!42'/\2T3=#$B0D,R,T,Q0F)^,V
XM-R8H-#DD*1)+'3+4+3J-!=$RHR+%XM$A+",J)38XA<@;:````!<4'?\<;4Z3
XMU#-9,A0W,18G1S;L.#.2D)`1:0````P)'?\<,F]&+99NI3.0@!AJ````#0LE
XM`QR"CT@ME^FH,25T(4,R)"14R#!K````%A,=_QQM/I/3-(0V1C8H-ADU&C0;
XM,QPR.S%+0CHS230Y-$@U.#8W-D8V4I*`R`QL````#`D=_QQF[=,YV!]M````
XM)"$2_Q%C9FDR%3,5-S$7(A<G2$@V[#DY,Y.3D-@7;@```!<4$O\18UDR%#<Q
XM%B='-NPX,Y*0T")O````%1(2_Q%FHT-R@E*B,Z,BPAY3PQ+"(Z,RHE*"<T.F
XM8-@G<````!<3&O\18U@Q)"=')CDE.30Z).4Z/S.30Y)4<F,14G,EGF/9H-`I
XM<0```!83&OX19%%R0B)B<1)2A$\Y,^4Z-"HT.34H1B=')"$X4S`2YCV0V!5R
XM````$`T2_Q%B-3$2)/0D,T).LWHPT")S````$`T2_Q$V(3)3(8(?*1$X$5F&
XMEHEI2D^5@1(14B$V,-`9=````!`,&O\97C&O*3A&M.@YY#44)10S%T+8%G4`
XM```7%!+_$65F[#@V-T<G1S0A.5-@R"!V````%A,2_Q&%8D@U\Y%_-QGB-1OS
XM,<02T/,1TN(]09#(.7<````>&Q+_$8*"<D9&-3<W)3<W%C81)Q?S41-1@T$R
XM49\S$S,:,A4C&_,14Q'$<A'0\W/1*2TAD8#`+'@````6%1(`$1@X5&.$8J-A
XMPT'1,ATC$M--4]5--=,2/1%#P5.R8Z&#=&4X2<@L>0```!83&O\1A6)(-?.1
XM?S<9XC4;\S'$$M#S$=+B/4\=3QI$&D,;0BPB+130T"AZ````$@X2_Q$=$V,B
XM<R%S,60Q8T%3I*.CI%%#83-Q)&(C<2.!(V,=$,@)]@```!44`0`+U^`/K```
XM`!4.!/T;'`3\)#\@..`.JP```!4,!/P<8&\/\/8&T!#^````(!L<_AK>PL`X
XMZM+`.,!4T@```"`;'/X7I]4G+1*RL=(9'4%QU!$5'4$Q0=,4$QTQ82'2%Q$=
XM(9+1&BT!LOP<*QT"H=$I'2$1<=(2%ATQ,4'3%!,=05$1U!<=09'2&RLM$G+5
XM>L`??@```"`;"?X.5=,3C2$KT!%%2UA86T5!'0LATH,=-5#`3/L````J)1S^
XM%]HJ+82$UDA-<Y/72$UDA-9(37.3UTA-9(362$USD]=(36](3:2$VCD]I(3:
XM2$VDA-HY/:2$VDA-I(3:.3VDA-I(3:*BR$S]````*B4<_A<J+:2$VDA-HY/:
XM2$VDA-I(3:.3VDA-I(3:2$VCD]I(3:](362$USD]=(362$UDA-<Y/72$UDA-
XM9(37.3UTA-9(38*BVM`[O0```!(+)?T<-5)!,U$B9?5F$3DI.2HI-R(D,R,D
XM,34AXC4Q)3$T(R,T(B<Y*BDY*3$6;U5B(5,Q0E4PF`E?````%14#`/?5B`E\
XM````#`(I^Q[9&`K\````&105_A0/(,`K/````"`9&/T5V3UTUDUDUDUDUDUD
XMUDUDUDUO3:3:3:3:3:3:3:3:3:3:3:/(*SX````@&1C]%3VDVDVDVDVDVDVD
XMVDVDVDVO3636363636363636363637/9R"Q<````%1`I_A[RTN(M+B+2XBTN
XM(M+RTN(M+B+2XBTO+2XBTN(M+B+2XBTBTA#0&WL````5#BG]'J2#H[*^P[*S
XMDX33T\+.P\+#P]38&WT````5#BG]'DT]/"SL/"P\/4@Z.ROL.RLY.$K`-[L`
XM```@&1W\'-1=8D'3-AT3<=$I'#D<-SLW/#@=#SV.(]6]3C/8XSU'H5FA0D6!
X,45=#43,XA'6`]?;V
X`
Xend
END_OF_FILE
  if test 6323 -ne `wc -c <'fonts.lj/R.10.pk.UU'`; then
    echo shar: \"'fonts.lj/R.10.pk.UU'\" unpacked with wrong size!
  fi
  # end of 'fonts.lj/R.10.pk.UU'
fi
if test -f 'fonts.lj/S.10.pk.UU' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts.lj/S.10.pk.UU'\"
else
  echo shar: Extracting \"'fonts.lj/S.10.pk.UU'\" \(5603 characters\)
  sed "s/^X//" >'fonts.lj/S.10.pk.UU' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 fonts.lj/S.10.pk
XM]UD``*``````````!":N``0FKL!#(0```"`?*?X>`1$!`OWRW_+?XBW_+?\M
XM_RW_+?\M\M`M$L/1*TT"L2/"H3.RTSHM/SDM7S<M?S4MGB,RV_,2W?3?\M7`
XM1B0````J)1+^$5;2:9M#)R58*!491BH3&T0=`2'$(M`1'1,2TB_233+]--(M
XM(A/1$1T"),$AT!1+$QHF2148*%4G(TN9;290P!8E````(!P6_A3$VO;:0*<"
XML*=-KVVDP-`S)@```"`;$OX15=0YE$)4<G&#4G&C,H&S$H'&CQU)\0$$@=:!
XMPA.!LC-RDE-Q@G1B-)95U-@M*@```"`3%/H3(!%=,3LS.34W-S4Y,SLQ/5`1
XM\P$5TQ.S,Y-3<W-3DS.S$]4!$J@)+0```"`9`OT*U\`K/````"`9&/T5V3UT
XMUDUDUDUDUDUDUDUDUDUO3:3:3:3:3:3:3:3:3:3:3:/(*ST````@&1C]%3VD
XMVDVDVDVDVDVDVDVDVDVO3636363636363636363637/9R!M#````&A4<_AO7
XM5(14HE]+%4LN)$P>TT347-"`P$1$````(QX=_AS1\M[TW&VQ%-H279$TV!1=
XM<536%EU1=-0873&4TAI=$;30'%P=!+'16ATDD=-8'41QU58=9%\=A#WQ`O#`
XM1D@````@&Q[^'*?5-3T3D[.SD]`W/2-4TD0]0S]-1"/6,4UH,;$XXCT#@QL3
XMC]9!/6,O340SU#1-)%/2-ST#D[.SD]$U/5>@P#%+````'1H=_QS.(MKB38;7
XM\136$EU?$TU"-=/Q5-(E71XA=-#B&4OB&TD=!(+$=*8Y7)@:3@```!P7'/X;
XMW..K'?\:,8XJ6/&C$";C&KW`R`]0````'QH<_AO=[<1*1,+`R$%2````'AD<
XM_AO;)-%272,UTB1-,472)%TA5-(571%EV$V%V$V?39+:':':'2%QTQ8=06'3
XM)1U"0=0D'4,QTU+:';'0'E,````/#Q;_$8=B4D+"PM'?+.(]/%MJ>FM-\\+1
XMLV#`*%0````@&QW^'#6U6(<Z:2)35$(2<S-SDR."DR*1LA/8;87:[339;4T6
XMP#I5````'AD<_AMM'2;7XDU9T3)!.C1#-S5$-39%,T9%0>5'1D%&14,V134U
XM1#<T0SHR03T9UN)-=M+14,`R5P```"`;'/X;?1U&V>)+5T9?)&147F141'-4
XM1']$0TDT0SLS0DPR0CT3%]5]GB39;4T6P#Q8````'AD=_AR7TD5+.3@]`U30
XM1#TC--)"/4,>1-1!/4,O320STC7ST#<[.?*R45*24O89%A$5)R42XH>!R#59
XM````(QX=_AL"\=\_/9%?/7%_/5&?/3&_/1'0\\'2\Z'4\X'6\V'8-!V4,=HR
XM';01W/3>\M'00EH````6%!_^':720K&!D9*"DF2"9(-BHN(!0H8S8U$C4H$3
XM0I$3,K0CLS+#(\,CLR\\,CPC.S,[)/.B8I*"<J)"U;"@,%P````@&2+]&;PK
XMI+A+A+A+A+A+A+A+A+A+A+D[Q+Q+Q+Q+Q+Q+Q+Q+Q+Q+Q+P@A->H+UX````@
XM&2+]&2O$O$O$O$O$O$O$O$O$O$O$O#N4N$N$N$N$N$N$N$N$N$N$NB";UY@)
XM7P```!45`P#WU<`P80```!L6$OX1A-,D+#8F$S<U$C@T$RDT$O.4(2\[,1,[
XM1.([-BI&*"$S$R4D(A97,\!(8@```!<7)?\<TETR0M$7+!@K&3D:.!LX&C@;
XM.!LI&C@5B104*Q5Z&RCQPH\<-N(<-QLW*S<K*!$9*1$8*1,D.A5<\=CC'8\=
XMD,`M8P```!44&_\15*$WD2EQ*V$B<E$BD4$QH4'2\2'3XA$=3RU>(=7B+4XR
XMU/+5&M`R9````!(/'?X<E9)!<6%BSB+3Q,3$M9(48S-34S-C,H(O."'SD2."
XM+S@3-R0G%287)!E7T!AE````$0T2_A%V4Y*BHZ*CJ3Y#ORPL)"94P#9F````
XM$A$E_QR^(=-J)!D221TATATBT2TATBT?+2'2XBT3T?+2XCTCT4T6R+?&T4T?
XM/1*B,=`VP"YG````%1(;_A$C93$C(D(A,A%C$3-T-'0S@_0X/C,X,^,X,S@U
XM*#TO/1XST?/2)L`Y:````!,0'?X<E+(BDD)R4F)B4V)2<D-S,H/R.",H,O.#
XM+1'B.#(X(S<S*#,G-/)R4F)B4H)"@C&TH-`8:0````\*$OX14GXC;C-N(V-_
XM-4]1(C)$0-`L:@```!@3$OX14H-39D-1)$-!0D-!LS'#$M0!"I-3CS8VXC<T
XM$3<S$3DC$BI"P#-K````&!,=_AQ4U#U//333XCU.(]--/STTTSTDT6PB.R,Z
XM)$@F-S8V-S4X0SHR.S$\02T#P"IL````&14;_Q%RDGXC@VXS@VXS@VXC@S$T
XM9#$E0B(A,Q533SU.,]3SU2U@T"=M````%1,2_A$6HN)#D_,Y-#@U."4X-3<V
XM-R<V)S8H-2DS.C(K;4`1P#1N````$A$E`!R^(=-H1!<R1ST#T.4](A:308(6
XM<=(M$M(=+RT>(](]%=![BXQM!='RH4'$4-`D;P```!01$OX1A:)"<V)3@D*2
XM,J(O.FXJ,?.3(X-"@E)R<D.E@,`J<````!@5$OX134/5+5(E%!@6%!<7$RT?
XM%"T/)"T!4L\D.S0[)3KS8Y)R<,`Q<0```!43&_\1M-`S*B8H)R<W)R@_4X/B
XM0X-3@E.#4X)C<G12<Q%"@R2O/2XSTO/3+4#`)W(````8%1+^$7T6TDTT1$DG
XM.#@G\Y)N(Y-CDG.#<X*#<J)BPD+170#`'W,````2$Q+^$4TCTRTR)2H6*1<=
XM4=3B+3XBT^(](]0LT"=T````%A,2_A$SL3$C@Q$S@Q$SD_0Z'T.QXC.Q3SH5
XM*A8X%S<9-1QGP#]U````&10E_AS2'5XQU>,=7QTVPR$B@S%#4E%20F%3(V%B
XM\3877W%F87;V%C(F%3,E%34D%"@R$CMM/C'5XQT`P$%V````&A8:_Q$TT1(3
XM.Q,32A@Y&3@:1APU'0-!T4,=(R'3,1U$UO/53573$CTA,]$4/0%4OQ<Z&$@:
XM-!(<,A(=%##`2'<````;%R7^'-3QV.,=CC'8&S@6$Q(V%3$3-A4Q$S47/T-1
XM@4-A@4-1D>(S88%#48%347%C46%S45&205&S(3+1?6'8XQV.(='`,'@````:
XM%Q(`$4'3%/'3/R'5(1UQ$:&1$9*2^B@1&2@A&2@2*"<B)D8CUT@95S=U5'"(
XM"7D````,`BG['MG0&WH````5#BG]'J2#H[*^P[*SDX33T\+.P\+#P]38&WL`
XM```5#BG]'DT]/"SL/"P\/4@Z.ROL.RLY.$K`(7P````@&Q/^$E73$XTA*]`1
XM14M86%M%01T+(=*#'34-`"D8#7T````@&Q3^$U3;5-M4R"Q^````%1`I_A[R
XMTN(M+B+2XBTN(M+RTN(M+B+2XBTO+2XBTN(M+B+2XBTBTA#`1G\````@'!_^
XM'56%B4E34R-3,W9S(I22$Y25XK*TXMM=D_$MDB/7,SU34M4F/3-ST3D\.SH]
XM`X/2-CU#0]8R/8(BV6VDW/+0P!NA````%0XE_1QQSRM)$2$7$B(4(R,A%24>
XMWV)@@!JB````*B4._A"D&L\:P:P:P3T:@:H:H:KQJA?0&Z,````5#B7]'&X!
XMXF%241(R,D$B(7$2$92_+1:0&J0````J)`[]$&&X\;@;@;@;?>(;H;H;KQNA
XML\@JI@```!42%/\3+331;"([(TDE1R=%*30J0O+&I"*30G125'(TDB.VQ-$M
XM,,`JJ````!42%/\3TRT4QK,BE#)T4E1R0Y(DIOPB2B0Y)4<G12E#*S(L;133
XM()@)L````!45`P`?U<@:M0```!P7&OX8[5+674,2U"(](S/0-5=8T-!XP!JV
XM````'!<:_AB'T-"%=5/0,STC(M0A/47M76+`*K<````<%1K]%IQ]%4TSU#U#
XMU2U3U2U3U?+6`?_6/6+6/6+6/6/6/636T9S`*;H````@&1K]%ITWU537/8/8
XM/9+9/9+9/9Y2VCVBVCVBVCVCVCVDVM6=,,@INP```"`9&OT6TYU=I-H]H]H]
XMHMH]HMH^7:+9/9+9/9+9/8/8/71=5].0P"R^````(!DB_1F=-]54USV#V#V2
XMV3V2V3V>0MH]HMH]HMH]H]H]I-K5G3"C_;#(++\````@&2+]&=.=7:3:/:/:
XM/:+:/:+:/DVBV3V2V3V2V3V#V#UT75?3"K_;$*@,R````!P7"_X.T^BZ(,`5
XMS````!40$/X15HI</]$04_'1/%J&4+!6S0```"HE)_X=PWS\'*5UQDP4PSQ3
XMP3QSL\DY/+-SS38L\E//-"T2,]$R\M,A/37FU5TS\2TR(]$S+1)#SS4L\F/-
XM-SRSD\D[/'/!/%/#3!3&5URL'/?#T!O.````$@TF_AQAOE.^(7,A(QT3(2-_
XM&^`2.^46P"7/````$@TE_AQAOC._%Q04$=WB8;XSL=P;XSOB%MT104%_&^,[
XM%L`KU0```!$1)_X=P]`B&R,J(CHC&N0M'D/1+1YCT2T>0]'D*A,J,BHC*Q(M
XM`\#0/-@````5$"/^'[\I02<D-B4U\F0S5BXB8B(34R;B4C9#-N)"1C-&XC)6
XM(U8B8_$B)B)E,_1B4U)C0G(4GRO`:=D````J)2?^'=&=W0V4E-5-!-(]0]`M
XM@K+:*2W"?RWB7R`0(RT8DB+"8X(BLF2"$K)TE*."I*+83ED]@A*2UR(I.A@B
XM*BH8(RHH&"0K)2DE+%HF+>)RW"DMHK+8+0/4/2303524V=#=G1"X#=H````9
XM%!7^%-[L3$W@F`O@````)0PI\!W7ZY>8#.$````E#"GP'^N5?2#`&>(````E
XM#2GP';*4A(2$A(6$CTA82.)7[<6`T!OC````)0XK^1^>U864E85UA6:#MK6E
XMM:6DI:[5R!CD````)0TI\!_MQ9XEE)6?2DE92DI*2DL@F`SP````)0TI^!W7
XMZYA0D`OQ````)0TI^!^.N=S(&?(````E#BGY'2Q+2TM+2TM*6DI:2N):2NVU
XMV!OS````)0TK\!_M65E)65E:6EHX5E975UA(5^U8P!KT````)0XI^1^>VUE)
XMXEE)64E924E)24E)2BS8"O4````E!2OP'PV0N`GV````*BD!``O=L"G[````
XM*B48_A7!\M;RUBUBUL^=%CU3TTTTUTUSV"V#U]&<^RV"V/+8\LH8"OP````9
XM%!7^%`\@L"G]````*B48_A7*\MCRV"V"O/G1V#USV$UTTTU#U2U3?1G/UBUB
X<UO+6\L'0$/X````@&QS^&M["P#CJTL`X]?;V]CUS
X`
Xend
END_OF_FILE
  if test 5603 -ne `wc -c <'fonts.lj/S.10.pk.UU'`; then
    echo shar: \"'fonts.lj/S.10.pk.UU'\" unpacked with wrong size!
  fi
  # end of 'fonts.lj/S.10.pk.UU'
fi
if test -f 'fonts.lj/S.11.pk.UU' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts.lj/S.11.pk.UU'\"
else
  echo shar: Extracting \"'fonts.lj/S.11.pk.UU'\" \(6107 characters\)
  sed "s/^X//" >'fonts.lj/S.11.pk.UU' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 fonts.lj/S.11.pk
XM]UD``+``````````!":N``0FKK!+(0```",B+?XAU1U"_3+3\M/B+3\M/RT_
XM+3\M/RT_+3+#+#+"/#+!3"+!$4P2LB3`+%2RQ4HL=)+'](+)]&++]$+-XD(L
XM_VT?33\L@,!*)````"TF%/T39=-:JY<S:2@5)U<J$RE5+!(;4RT!(<42T1'Q
XMT6TRTETRTUTB_3;1$1T2%<$AT"-;$APE62,:)U<E&"EC-YNJ735@H!TE````
XM(QT<_1BS&_];Q[SUOQ"1WPD1O_6\>\];\;/`0"8````C'!3]$U711(HV%4@G
XM&#8G&C0H&D(H*S(9'061T$H=$Z'2.1TD@=%8'1$C@<(D<;)#@9)C<G*$8S.F
XM5=%`R#<J````(Q88^A8M5=,Q/1,SPU.C<X.2@J-CLT/0,CTFU/34;2,CT#0[
XM-CHH*3@W.C4\,ST3$]-=4J@)+0```",:`OP+V<`N/````",:&OP7VCV$UTUT
XMUTUTV#V#V$UTUTUTU_3;3;3;3;3;/</;3;3;3;3;3;/(+CT````C&AK\%SVT
XMVTVTVTVTVSW#VTVTVTVTV_3737373738/8/83737373738/:R!Q#````'!<?
XM_A[9591DLF],%DPN-4T![55-5M#2@+!01````"8A(/X?Q!T_/1]<\17.$DS1
XM-<P43+%5RA9,D77(&$QQE<8:3%&UQ!P$PQP5PAPDP1PUP!Q$L<5:'&21QU@<
XMA'')5ARD4<M4',0_TQU0P$9(````(QPA_1^VUD1-(X/$I)3$@]$W311?330_
XM734DU4%=6O08%*XDI*]!@4K57Q350ETU/TTT5-%'/1.$Q)2DPX/21$UFL,`R
XM2P```"`=(/\?T1WN,]SB7:XA)-CB%$UN(634XAA-+B&DT!M<\<2QT%KQT4DM
XM%7305)?0B!I.````'AD?_A[3XYX0'_&6&.*8CQEA!1XQGM/8%%`````B'1_^
XM'@'T6UG@'$M)6U33T,A)4@```"$:'_T>W"324ETS-=,D34%%TR1=(E33%5TA
XM9-(7397939797939/;+;';';'2&!TQ<=06'4)1U20=85'5)!U3,=12VQW!#0
XM'E,````0#QC^$X9R4D+!TL+1WC+?/4MJ:VM;3>(L*D;`(E0````C'"#]'S7%
XM6(@_IJ$U1$570D<_DR.1XK;:[53:;4TVP$!5````(1H?_1Y=/2;8XTUXTD%!
XM2D-#1T1$145%0U5%4D9&0>161E%&1D)515-%145$1$=#0TI!04THU^--AM+3
XM4,`T5P```",<'_T>;3U&VN),5T=?)&1D7H145'-44X1$1)-$0Z0T-+,T,]`R
XM0CTLU8V>--IM33;`1E@````A'"#^'ZC5-CT3H[/#E,1TT45=%4330^9=-333
XM1%T57TT4<]$X3$D\.RPL.CT"HG%BHF)QH7$18H)A(7&!<2F)/XB"N%!9````
XM)B$@_A[5\=,TS!1<L53*%ER1=,@87'&4QAI<4;3$'`7#'!3"'"7!'#3`'$6Q
XMQ4H<99''2!R%<<E&'*51RT0<Q3'-0ASE$<_UT?/3'$#`1EH````8%R+^(+73
XM)2T!@K&BD<*#HH239*-RL]?B2E1()1-&-Q(V.54Z5#M32U,\0_3$-+0TQ#],
XM-/2S5*-SHH.2HW+#0])LH#-<````(QHD_!R]*[2Y2Y2Y2Y2Y2Z.Z2Y2Y2Y2Y
XM2Z.]2]2]2]2]2].]2]2]2]2]2]2]((O9J#)>````(QHD_!PKU+U+U+U+U+U+
XMT[U+U+U+U+U+T[I+E+E+E+E+H[I+E+E+E+E+E+L@H]F8"5\````7%P,`]MO0
XM.&$````=&!3^$Y4!,T+3<F%#@U$TDE$SHS$THS$DLS$O2S(23#$3],1/3#8\
XM-CI7*1,D$R4U(A99,L!-8@```!H8*?\?TUU"4M$7+0&2L:*ALOD;.!PX'"@<
XM.!PI%8H5$SH642GQPX'$;C'01>(=!&'$8L-Q$:1Q$:.!(8.!0D.A9<\=GC'9
XMXAV@P#%C````&!8>_Q-EH4B!2G$[84)S43&B42*Q03'!0=3Q(=7B$1UN(M?B
XM'7XBUN,M;B+7&L`Z9````!01(/X?M+)!DF%R<7+1/1+2\]%-%=!=!:>#0V-3
XM5&)3<D1R/B2"+TD32"/T@5-R4W%R89)!M8#`'64````2#Q3^$Y9SH[.SM+._
XM2[/B3.(]`M$M$E)V0,`X9@```!03*?X?SB'5;"4:$EH=0=0=0M,M0=0M0=0M
XM0=3RT^0M/C/4+4/372;1C0C0?234XRLC+11PP#%G````%Q4>_A,T95$R,D)!
XM,Q%R(42"+Q0Y1#DVXCDUXSDUXSDU.3<I/5\]3C/4XCU2<,`_:````!42(/X?
XMM,(RHD.#4G-B<G-3<T1S0X,T=#.$XB2$%(0OTR2$'B2$)(,T=#.#0W1#<U-R
XM<F-R4X-"HC+$L-`>:0```!`,%/X34J..,XXCCC.#<1-A$W$383)10C)D8,`S
XM:@```!H6%/X34J-S=E-Q%&-2,G-!T3,=$S'2,ATUU*LV2?.#@Y-!XA.302.B
XM,2.R,3+$,,`\:P```!L5(/T?4]<];SU4U?/535\]5-7SU4U?/535/432(4T"
XM,\)#LT238X-S<X13HT.S,\04T#$]$Q+3,,`S;````!L8'O\3<J*CDXXSDXXS
XMDXXCDY.30?-(-!1'1!1&$3,49!,C%#)51?/7XSU^(]@MD,`L;0```!85%/X3
XM1*(GH^)#HU.34Z-?.38X-CDG."@W*38I-BHU*S0L,BT&TDU`P#UN````%!,I
XM_Q^^(=5Z11@Q:#TDT?31Y$TSTS%J-A@A>"TRU!U"T^(M/B/4/372;1C0C1;2
XM73/4*A8K%"T%8-`H;P```!83%/X3E<-"DG)C@T2#0Y0DE.(4J.*D%)0DDT.$
XM0X-B<I)#Q9#`,7`````:%A3^$TU3UBUQ)147)A08%Q0=(D'2%1TA0M'R0M$5
XM+0\E+#4L)CKS8Y-TDH)PP#%Q````&!4>_Q/%T3,L)BHG.#<W\X3B4Y3B0Y13
XMA%\Y-D<W1C<R%"DS2_/4XSU.(]4M8,`H<@```!H7%/X3G1?3751%24<Y.3<Z
XM-N([->([-O.C<Y.2DK)RT"0M-='`(G,````4%!3^$TTSU"U1)AHG&A<M4M4=
XM7C+4/4\M3B/3/5+0P"YT````&184_A-$HE$RA#%"A2%#A!%3DQ%#LU.Q;B/!
XM7SP6\[%_.A@Y&B@<)2T6D,!-=0```!L8*?X?U/'9XQV>,=GQUWT3,2.C05*"
XM86)B<6-#<7(S<8,B@8/Q.!AO@8,3@8(C@7,R<7-#87)B86*"44.C(3/1?7\=
XMGC'9XATPP$QV````'!D=_Q-$TQ,230$Q0]`82QHZ&T@=`W'1-ATD0=0T'4,Q
XMU4$==-CSVCV$UQ$]8234%#TQ4](631%ST!@\&4H;.1Q#$QT3,2'40\!2=P``
XM`!X;*?X?UN(=SC'<XQW!T4@6)1,G%4,4)Q52%#47014U&#$4-ADU-AD6XC8:
XM%3<9%C8:%O-AD7-A@8-1@:)1<;-!4M$R$RU7V>(=SC'<\=3`.7@````<&Q0`
XM$U'4)AU$0=53'63R'8,AV1(;&Q+QHK$1LJ$AL;$BH:(BDI(R@X)#96-+&FDI
XMAT>D=)!X"7D````-`BW[(=+`(7H````7$"W](<2CPM`\[1/#P[25T4T3T3T>
XMT3T3T2TCTD#((7L````7$"W](5T4T3T3T>T3T3T2TCTDH\+0/.T3P\.TE;#`
XM)7P````C'!3]%%74$XTQ*]$114PA*$M+2"$L14$=&R'3@QU%#8`K"`U]````
XM(QP4_11'TT?31\@N?@```!<0+?TAXBTN(M+B+2XBTN(M+B+2XBTN(M+B+2XB
XMTN(M+B+2XBTN(M+RTA#`27\````C'"+](%6%B4E34R-3,W9S+RE)(3HJ7[*T
XMY-M=DQ+9(CUS,M<D/5-3TS<M,H/1.3P[.CT#@](V/4-#UC(]@B+9;:]-SRT`
XML!^A````%Q`I_1^!PO+!2Q$A&1(B%Q,C%"0D(18F'M-R<(`=H@```"TF$/T2
XMI!K?&M&M&M&M$].I&K&K&K&K\:L8L!^C````%Q`I_1]^TR<6)A$D)"03(Q<2
XM(AD1(1M,'RPQ<(`=I````"TE$/P2<:KQJAJAJAJAJ=$AK!K!K!K/&L&DR"JF
XM````%Q(4_A0M--%L(CLC225')T4I-"I"\L:D(I-"=%)4<C22([;$T2TPP"JH
XM````%Q(4_A33+13&LR*4,G125')#DB2F_")*)#DE1R=%*4,K,BQM%-,@F`FP
XM````%Q<#`"+;R!JU````'A<<_1KM<M9=0Q+4(CTC,]`U5UC0T'C`&K8````>
XM%QS]&H?0T(5U4]`S/2,BU"$]1>U]8L`KMP```!X5'/P8G'T533/4/4/5+5/5
XM\M4]7RU@'_UCUO+6/6+6/6/6/636T9S`*KH````C&AS\&)U'UE38/9/9/:+:
XM/:\MH]KE+;/;\ML]LML]L]L]M-O6G4#(*KL````C&AS\&-2=;;3;/;/;/;+;
XM/;\ML^7;+:/]HMH]HMH]D]D]A%UGU)#`++X````C&B3\')U'UE38/9/9/:+:
XM/:+:/:YBVSVRVSVRVSVSVSVTV]:=0*K]P,@LOP```",:)/P<U)UMM-L]L]L]
XMLML]LML^;;+:/:+:/:+:/9/9/81=9]0++]P0J`S(````'A<-_0_3ZKH@P!7,
XM````%Q`2_1-6BEP_T1!S\=$\6H90L%?-````+28K_2##C/PLI87&3"3#/&/!
XM/(.SRCD\PX+.)SSC4]`T\M(C/2,O+4(3U%Z-9=0_$M0B/2,_+2)#T#4\XW+.
XM*#S#D\H[/(/!/&/#3"3&6%RL+/C#T!S.````%`TJ_1]AOE.^,7,A(QT3(2-^
XM(;X!,[YA8,`ESP```!0-*?T?8;Y#OQ<4%!'=XF&^0['<&^0[XA;=$4%!?QOD
XM.Q;`+]4````3$2O](,/0(AP2/Z(4HB*CT>0M'D/1+1YCT2T>0]'D+1.B(J]!
XM*C(<$BT#P-!.V````!<2)_XBWRF8)#@F)R<U)U0G(2,W(3(H(B(G,B(G(R$W
XM(V8S;B8D931N)25D-6XD)F,V/Q(R<B,38R,2<S\A)R5&)R8H-"F),!'RT,!R
XMV0```"TF*_T@THW\VTA-=,34/3/2+7+0+9*RVRGRW2<M\E\@$20M"8(RPV."
XM(K-D@B*C=((2I(*DI-=*/83EE-@A*3UR(I36(BE*&",I.A<D*C@8)"LU*24L
XM:B?RW2DMLK+9+0+7+2/3/43$UTA-O-^-(*@-V@```!P5%_T6T>M[;1"("^``
XM```H#2WO(-OJUX@,X0```"@-+>\BZM9]4,`;X@```"@.+>\@PJ24E)24E925
XMCUAH6.)H6.WF@,`=XP```"@/+_@BGM%OAH:&AH65=I/&Q;6VIJ:O:NT6R!KD
XM````*`XM[R+MYI6>)I66GUI:2EI+2TM+3""(#/`````H#BWW(-OJV&"P#/$`
XM```H#BWW(H[:`^#8&O(````H#RWX("U,3$Q,3$M;];];]:]J6N`=8,@=\P``
XM`"@.+^\B[1:?:6E:6EM;6SE75UA86&?V?M%HT!OT````*`\M^"*>`=:5GVGU
XMGUGUE:2DI*2DI++0N`KU````*`8O[R(/X*@)]@```"TL`0`,T;`M^P```"TF
XM&OT7PQV/+7+7\M<M?/G2<]4]1=-==-A-@]DMG1K/P"V2V?+9\MD<H-@+_```
XM`!P5%_T6`!Y0L"W]````+28:_1?*'9\MDMGRV2P,^M+8/9/877743435/6*-
XD&L_7+7+7\M?RV!PPT!'^````(QP@_1[>`0+0.NS2T#KU]O;V
X`
Xend
END_OF_FILE
  if test 6107 -ne `wc -c <'fonts.lj/S.11.pk.UU'`; then
    echo shar: \"'fonts.lj/S.11.pk.UU'\" unpacked with wrong size!
  fi
  # end of 'fonts.lj/S.11.pk.UU'
fi
if test -f 'pkc.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'pkc.c'\"
else
  echo shar: Extracting \"'pkc.c'\" \(5765 characters\)
  sed "s/^X//" >'pkc.c' <<'END_OF_FILE'
X/*	Copyright 1985, 1986, 1987, 1988 Chris Lewis
X		All Rights Reserved
X
X    Permission to copy and further distribute is freely given provided
X    this copyright notice remains intact and that this software is not
X    sold for profit.
X
X	Project:	Generic Troff drivers
X	Module:		pkc.c
X	Author: 	Chris Lewis
X	Specs:		PK Cache
X
X*/
X
X#include "defs.h"
X
X#if	defined(PARTIAL) || defined(INCR)
X
X#ifndef	lint
Xstatic char SCCSid[] =
X    "@(#)pkc.c: 2.1 Copyright 90/07/18 16:52:50 Chris Lewis";
X#endif
X
X#include "pk.h"
X
X#include "pkc.h"
X
Xextern int fontCount;
X
X/*	Does the font *need* this character? */
Xextern struct needmaps *needmaps;
X
Xneedchar(font, ch)
Xregister int font;
Xregister long ch; {
X    register struct needmaps *nbp;
X
X    ch &= 0xff;
X
X    if (ch <= ' ' || (ch > 0x7f && ch <= (0x80 + ' ')))
X	return(0);
X    ch -= ' ';
X    if (ch >= 0x80 - ' ')
X	ch -= ' ';
X
X    if (font >= 0 && font <= 2)	/* redirections to NORM fonts */
X	font = N;
X    else if (font == 3)		/* redirections to SYMBOL font */
X	font = S;
X
X    for (nbp = needmaps; nbp; nbp = nbp->next)
X	if (nbp->fontnum == font) {
X	    return(nbp->NMAP(ch / ELEN) & (1 << (ch % ELEN)));
X	}
X    return(0);
X}
X
X
Xaddneedchar(font, ch)
Xregister int font, ch; {
X    register struct needmaps *nbp, *onbp = (struct needmaps *) NULL;
X    ch &= 0xff;
X
X    if (ch <= ' ' || (ch > 0x7f && ch <= (0x80 + ' ')))
X	return;
X    ch -= ' ';
X    if (ch >= 0x80 - ' ')
X	ch -= ' ';
X
X    if (font >= 0 && font <= 2)	/* redirections to NORM fonts */
X	font = N;
X    else if (font == 3)		/* redirections to SYMBOL font */
X	font = S;
X
X    for (onbp = (struct needmaps *) NULL, nbp = needmaps;
X	nbp; onbp = nbp, nbp = nbp->next)
X
X	if (nbp->fontnum == font)
X	    break;
X
X    if (!nbp) {
X	nbp = (struct needmaps *) mustmalloc(sizeof(struct needmaps),
X	    "needmaps");
X	nbp->fontnum = font;
X	if (!onbp)
X	    needmaps = nbp;
X	else
X	    onbp->next = nbp;
X    }
X    if (ch == -1)
X	return;
X    nbp->NMAP(ch / ELEN) |= (1 << (ch % ELEN));
X}
X
X#endif
X
X#ifdef	INCR
Xdownchar(font, ch, pointidx)
Xint font, ch, pointidx; {
X    ch &= 0xff;
X    if (ch <= ' ' || (ch > 0x7f && ch <= (0x80 + ' ')))
X	return(0);
X    ch -= ' ';
X    if (ch >= 0x80 - ' ')
X	ch -= ' ';
X    return(fonttable[font].map->DMAP(ch / ELEN, pointidx) &
X	(1 << (ch % ELEN)));
X}
X
Xsetdown(font, ch, pointidx)
Xint font, ch, pointidx; {
X    ch &= 0xff;
X    if (ch <= ' ' || (ch > 0x7f && ch <= (0x80 + ' ')))
X	return;
X    ch -= ' ';
X    if (ch >= 0x80 - ' ')
X	ch -= ' ';
X    fonttable[font].map->DMAP(ch / ELEN, pointidx) |= (1 << (ch % ELEN));
X    fonttable[font].map->lastpage[pointidx] = currentPage;
X}
X#endif
X
X#if	defined(DEBUG) && defined(PARTIAL)
Xdumppartmaps() {
X    register struct needmaps *nbp;
X    register int c;
X    fprintf(diagFile,"MASKLEN: %d, ELEN: %d\n", MASKLEN, ELEN);
X    for (nbp = needmaps; nbp; nbp = nbp->next) {
X	fprintf(diagFile,"Font: %02x, needmap:", nbp->fontnum);
X	for (c = 0; c < MASKLEN; c++)
X	    fprintf(diagFile," %08x", nbp->NMAP(c));
X	fprintf(diagFile,"\n");
X    }
X}
X
X#ifdef	INCR
Xdumpincrmaps() {
X    static char ptsizes[] =
X	 {6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 28, 36};
X    register struct downmaps *dbp;
X    register int c, p, fn;
X    fprintf(diagFile,"MASKLEN: %d, ELEN: %d\n", MASKLEN, ELEN);
X    for (fn = 0; fonttable[fn].troffName; fn++) {
X	dbp = fonttable[fn].map;
X	if (!dbp)
X	    continue;
X	fprintf(diagFile,"Font: %02x, troffname: %s, downloadedmaps:\n",
X	    fn, fonttable[fn].troffName);
X	for (p = 0; p < NPTSIZE; p++) {
X	    if (!dbp->nm[p])
X		continue;
X	    fprintf(diagFile,"f%02d p%02d:%02d lp%d %s:", fn, p,
X		ptsizes[p], dbp->lastpage[p], dbp->pkfont[p] ? "load": "unlo");
X	    for (c = 0; c < MASKLEN; c++)
X		fprintf(diagFile," %08x", dbp->DMAP(c,p));
X	    fprintf(diagFile,"\n");
X	}
X    }
X}
X#endif
X
Xdumpmaps(which)
Xint which; {
X    DBP((D_FONT,"dumpmaps: %d\n", which));
X    if (diagFile && (debug&D_FONT)) {
X	switch(which) {
X	    case 0: dumppartmaps(); break;
X#ifdef	INCR
X	    case 1: dumpincrmaps(); break;
X#endif
X	}
X    }
X}
X
X#endif
X
X#ifdef	INCR
X/*	Go find "oldest" font and delete it, both internally *and*
X	on the printer.  It cannot already be in use on this page.
X */
Xpkflush(needfont, needpoint)
Xint needfont, needpoint; {
X    register int oldestpage = 32767, p;
X    int bestpoints, bestfont;
X    register struct downmaps *dbp;
X    int font;
X
X    DBP((D_FONT, "Flushing font - avoid font %d, ps: %d\n",
X	needfont, needpoint));
X
X    for (font = 0; fonttable[font].troffName; font++) {
X
X	if (!(dbp = fonttable[font].map))
X	    continue;
X
X	for (p = 0; p < NPTSIZE; p++) {
X	    if (!dbp->pkfont[p] || (font == needfont && needpoint == p))
X		continue;
X
X	    /* if font in use, and less than oldest page */
X	    DBP((D_FONT, "Checking font %d, point: %d, lastpage: %d\n",
X		font, p, dbp->lastpage[p]));
X
X	    if (dbp->lastpage[p] && dbp->lastpage[p] < oldestpage) {
X		oldestpage = dbp->lastpage[p];
X		bestpoints = p;
X		bestfont = font;
X	    }
X	}
X    }
X
X    /* oh-oh! */
X    if (oldestpage >= currentPage) {
X
X	fprintf(stderr, "Too many fonts on page %d, SIMPLIFY!\n", currentPage);
X
X    } else {
X	dbp = fonttable[bestfont].map;
X
X	DBP((D_FONT, "Dismembering font %d, pointidx: %d, p: %x\n", bestfont,
X	    bestpoints, dbp->pkfont[bestpoints]));
X
X	/* Clobber PK */
X	pk_destroy(dbp->pkfont[bestpoints]);
X
X	/* Clobber PK pointer */
X	dbp->pkfont[bestpoints] = (struct pkp *) NULL;
X
X	/* clear downloaded arrays */
X	clrarray((char*) &dbp->DMAP(0,bestpoints), MASKLEN * sizeof(ETYP));
X
X	/* reset lastpage */
X	dbp->lastpage[bestpoints] = 0;
X
X	/* tell backend that this font isn't downloaded anymore */
X	fonttable[bestfont].fontFlags[bestpoints] =
X	    tolower(fonttable[bestfont].fontFlags[bestpoints]);
X
X	fontCount--;
X	/* Select and nuke downloaded font */
X	printf("\033*c%dd2F", (bestfont << 4) + bestpoints);
X    }
X}
X#endif
END_OF_FILE
  if test 5765 -ne `wc -c <'pkc.c'`; then
    echo shar: \"'pkc.c'\" unpacked with wrong size!
  fi
  # end of 'pkc.c'
fi
if test -f 'utils/fonts/cmtt10.pk.UU' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utils/fonts/cmtt10.pk.UU'\"
else
  echo shar: Extracting \"'utils/fonts/cmtt10.pk.UU'\" \(6254 characters\)
  sed "s/^X//" >'utils/fonts/cmtt10.pk.UU' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 utils/fonts/cmtt10.pk
XM]UD11T9T;U!+(#$N,B!O=71P=70`H```W^H\>``$)JX`!":NT"9!"&9B%A,9
XM_QB#`1]0$/(2WB,3PC*^0S.?-3C[?6XC<T<W&#@7-Q#`+$((9F(6$AG_&!Q=
XM)-)39%-T3B.#0W1#<UT%_&-54X-#A.,SDS.$,W0M,=,]!-`G0PAF8A81&?X8
XM=3)<335%)'04A!23$Z?>8P$$`0.C\4DR1T-41;>:5<`G1`AF8A83&0`8'&TE
XMTF-D8W13A$\Y-#E.<SH_,Y-#A$-T4V4](])<8+`@10AF8A83&?\8'%'&+%3C
XM.33SQ/-3CBN/-3@\3D.C'9'&V!Q&"&9B%A,9_Q@#OC,Z/S,!+S4XXKCS4XY3
XMV:J9H-`O1PAF8A82&?X893)[745%1&0T=#2#,Y,D`0XS`1-W$VQW%),SDS]'
XM1$9$5%77N%(RT!U("&9B%A,9_Q@7-QD9%S=.8W-N+6Z#<T<W&1D7-Q"H#4D(
XM9F(6#QG]&-+K=C;2P!=*"&9B%A`9_1A::UJ^TC0G,T8S136UJ&?0-DL(9F(6
XM%!D`&!='&3@71T-T8V1S8X-3DT23-*,DLR/#%;FZI2.D0Y-3GS8X\W-S@T=6
XM&3@75A#8$TP(9F(6$QG_&.*L[3`2.Q3C.@/@V"I-"&9B%A,9_QAGWU<C$5$3
XM3D,2,A-#$Q,33C,B$B-#)2-/,S,TY#DRXG5PT#5."&9B%A,9_Q@61Q@I%S=#
XM$5-N(Q)#;S$S-O,B,VXC(R-O,R(V\S,3;B-"$V-1$T<U.25'1##0&D\(9F(6
XM$1G^&#M=,!$D=!27[;?Y04="`1/5L]`E4`AF8A82&?\8'%`10!%394.#0X3B
XM,Y,SA#.#0V5-7&J.8]>IIZ#`)U$(9F(6$1_^&#M=`](D=!27[+93-D0W1!04
XM1RTCT%O1/131/131\Q#0*U((9F(6%!G_&!J=C9-4@V1^,W-S9'-4BYJKDU.>
XM,V.#8S%/-C(Q=6&48G9"P"I3"&9B%A$9_AA6,DT"TB1E%(0?.C$]%-%-"+FI
XMM]%-%/T6^WF70=(M$R-UT!14"&9B%A,9_Q@0/>-34^`0@]F;F5#`&E4(9F(6
XM%1D`&!=7&3D75T[2.3?S<Y-3J[G16,@E5@AF8A83&?\8==(])7(Y->,W-^,U
XM.24JXS,[(RSB,3T"$M'UTCC8,%<(9F(6$QG_&&?5UVXA.S,K).(Y-#,S-/,E
XM(T,B$B->4B(2(F(A,2)B$C(2?T-(-33`-%@(9F(6$QG_&!<V-R<W-F-$@T.C
XM)*,CPQ/&T5T4TSTDTET&T#$[03OS,Y\U-S<T<W&#@7-QR"!9"&9B%A,9_QAU
XMTCTE?S-S?S4YXC,[\Q/0]=+G/1>YMV#0)EH(9F(6$1G^&!`WHQ.4$X0C@]3$
XMT]3$T]3$T]3$<S.#)(,4DQ.@.,`D80AF8A83$OX1.)Q]!D5')TT_.I?%931(
XM-/.31'1%55U2DF154,`L8@AF8A84&0`8%M!]%M3C/4,UDQE]%E551T7SE.-#
XMHT.41(-4=%54;18QB2-&T!YC"&9B%A`2_1%G>TPT5"1R,\3.,]33DQ2#)50\
XM6H9`P"QD"&9B%A09_QBFT'T6U.,Z0SB!-M%D551T3TDTXSHT231(14955&;4
XM21=5-A#`'F4(9F(6$!+]$669:T14)',CEJ`I_1.3%(,D9#Q:AD#`&V8(9F(6
XM$1G_&+6HB70D<T*/.-(?TXZSG0/2/0+`,6<(9F(6$QS_$64T72/3-#0B-%1N
XM(W-D5'0TBXJ#%:\]2XT%TR24%+?BT'M!5U/2:Z=@P"-H"&9B%A49`!@6T7TF
XMU>,]4S2S&)T(5$CT8XZ#<UDW&R@9-Q#0%6D(9F(6$!K]&7+?32!*XIWK-P(1
XM`1#`&6H(9F(6#2/^&:*O2B`KXJ[5HQ)C%$0;.5=`P"YK"&9B%A09`!@6T'T6
XMU.,]3B,J4U2#1),THR2S%,C)M12D-)-3DV.#9$A-0H&$<*@.;`AF8A81&?X8
XMXJL^MS?8R!YM"&9B%A42`!%2-#2Q8]9%)2-$-#-.DT-#+W)2PT-`P!QN"&9B
XM%A42`!$6-'<8;3A42/1CCH-S63<;*!DW$-`?;PAF8A81$OX19:E[5%0T=".3
XM'D.WE!.3)'0T5%MYI6#`*W`(9F(6%!L`$18U5QE-1E551T7SE.-#HT.41(-4
XM=%54;18QB#-*Y3T9JZF@P"UQ"&9B%A0;_A%5,WD3;15494942$1)-.,Z-$DT
XM2$5&551FT7D3E3/4Y3T9JZD0R!ER"&9B%A,2_Q&$88+4&E=19M!='TTN8[XM
XM%=`><PAF8A8/$OT11Q(\+11D'S@Q3(F8FX^7B&`4'2(V0,`>=`AF8A81%_\6
XM8M'C.M(?TVYCT3<6\V-35%1$:GFE0,`;=0AF8A85$@`1%D9'-U9&CI-S@V2$
XM18TVTV4V$-`?=@AF8A83$O\1%S<8.!<W0W-D5'XC4YXS,[XC$]]0$3C((W<(
XM9F(6$Q+_$8/4'4..,CDT,S,U\B4B8B(2(FXS$A(3?B0T0,`J>`AF8A83$O\1
XM%S<G*"<W5#.C)+,3QM%=(])-)=`Q.S)*,SDU-7-Q@I%S<=`P>0AF8A83&_\1
XM%S<9*!<W0W-S8W\U.30Y\S._,CLR+?(3`0XD`1XC`1.D(Z04J,;4T-`@>@AF
XM8A82$O\1(!+Q`3$Y0CA#-TU-3%Q<34U(,DDQ2@.PJ!(`"&9B%A,9_QC>XS.C
XMZS,[+BJ0P"4!"&9B%A(9_AAST?70(2SS$[(RKB,SCC-3;B-S3B.3))03LQXM
XM0=`?`@AF8A81&?X8.UTP$21T%)?DMN0U-N2WE!1T(!$]6S#`(P,(9F(6$QG_
XM&(/2]='R$M#B,3PC*^0S.>,U-^,W-'-Q@X%S<;`;!`AF8A83&?\8+$+\4O.S
XM`U-3CBN#4P6O/!W1QL`7!0AF8A83&?\8'4'6'43M4W-'-QD9%S<0H"8&"&9B
XM%A$9_A@=<3H_(Y,S@S2S.T\[3B.R\[([)+(X/R.3$Z,<8;7`'`<(9F(6$1G^
XM&#-31C8C$Q,3'S,A(V0T/M)SOBE`P"(("&9B%A$9_AA.*;XSQXM-(D(R0>(T
XM-#%",D+22X?.,[XI0-`D"0AF8A81&?X83BF_."0T9#1S,TY!,S,S,C(T03%%
XMMYI=XSOBE-`E"@AF8A83&?\8=<F;=%14=$.3/E.S/B.37S<WXC4T\R,S*_.!
XM='#0)#`(9F(6$1G^&&6I>V0T4W,T="\Y,><[>4\3DR1T-%14-&MYI6#0%C$(
XM9F(6#AG\&'*_.DE6A98R.^TVPM'!T"@R"&9B%A$9_AA6FE`0-%84A!28^C\!
XM`]33U,3$Q,2UM,3$<R2#$",0$L`I,PAF8A81&?X85IM-$T921T)(/1/0]+5Y
XMB)G132/13]%Z>8DQ5E+13(9@T"<T"&9B%A,9_QB5UM(3PQ._,CHS.4,Y-#A$
XM-T4W-C9&-4<U`[Y+/.*QP"0U"&9B%A$9_A@N+03F/1,6?%T$1D,I/131,2MZ
XM>8A!5E+16I9@T"XV"&9B%A$9_AB%J6Q%1#54-&0D@C/4U"=#&R`1)70?27M_
XMHQ.C%(04=#153&FE8-@;-PAF8A81&OX9,!`#B4$X33T]33WSWB/>,]YCD-`I
XM.`AF8A81&?X85XM=-544E^*S$Y,E54N'BU14,Y,4E^*WE!.3)54]6X=0T"XY
XM"&9B%A$9_AAEJ6Q%5#1T%),3HQ\Z>W^4%'4@$2L31S/4TS*$)',T9#1%3&FE
XM@,`V)`AF8A81(/X<@M'B/'BUT243)!0S-^)#.#-")".)J:FHDR2#..(S1D,X
XM,S04(Q4]!;AM#STB<,`Y)@AF8A83&?\88])L>T(ZXC,Z,S%C,C)C,4)D8S=3
XM.$0W139C-G,V,C(U,W8T9O-4,R,V(RU#<F5&,]`>/PAF8A8/&?T81VL]%'CX
XM,2A)65E96DOC/"!++/3"<-`?#PAF8A8/&?T/8L],($LM.TOSOTI)6DI((?.(
XM=!T[9T"P$!`(9F(6$!+]$1XIP>LWTQPPP!01"&9B%@T;_A$^*NU:,28Q1$&S
XME73`,QD(9F(6$QG_&(:Z?15&13@U-T4V4F*"<F5B=S56-D8W13@U.$Y$.30S
XM(T0R04)BD7)T9$3`*1H(9F(6$Q+_$35#6"8]0D)B,R1$/X-3BTTBU!4CA$./
XM-41S8MDH)D5C,-`K&PAF8A83$O\11%-F)D@7)"8C(T4W1$9C1N)M]C=$1#$T
XM4S%"<C*!=&-E13/0.1P(9F(6$1_^%P$1`1\_T].%$VIK5$4T5B-3$Q-C)E,V
XM1#9#1C1&,U,3$U,G1#5$6VIXCSWSWS`1$!'`,!T(9F(6$QG_&%T4TET?8Q,S
XM5!,S4R,SXE,CHS.N(SA3,Y^IHS\S0S/R-3,Q4]0;%3K`*AX(9F(6$QG_&#T_
XM'5%$0W5#;V0V9&XC<VXC>!XC<VXC9#=4,Q1$,_'5/3#0+A\(9F(6$2'^'+XC
XMTWM=,!$D1Q13%V,FXU,VXT-&XS-6\C9Q-4%E0@$3U;;B,!$<D!`A"&9B%@09
XM]Q@2'2$J@A@2$)`0#@AF8A8$&?</$A@2J"'2$A"P&R,(9F(6$QG_&&Y30TQ1
XMVN)30XXS0UVAQ4Y30V#`.R4(9F(6$R#_'".B-8,G<R=C,Q-C/B,34T]T-E0X
XM-3TN(]+STN(](],U-S56-'XD-3$_,V,3(W<CA4*3(.`4)PAF8A8'#?D8&'CX
XM\.'#CQQYYX8`T"(H"&9B%@LA^AR#=%5C=&1D<W1^(W1^8X2.(X2#A(2$@X6$
XM@]@B*0AF8A8+(?P<.$A8.$A(2#A(XCA.:#=.)S='-T9&1S951SC`'RH(9F(6
XM$1+^%7XS@S,S%2,E'22X]XM-(5(R43,S..,WH`XK"&9B%A$3_A5^<WV.=S?@
XM$BP(9F(6!POY!#CY^_/AQYY]\8#`#"X(9F(6!07X!!,=(3'0)2\(9F(6$2#^
XM'`$2\!`_T]\]\]\]\]\]\]\]\]\]\]\]\]\P$"`1L!`Z"&9B%@42^!$3'#$]
XMXQPQ,:`7.PAF8A8&&/D1(RXE(]@RXE)#,D(Q44,C@`\]"&9B%A$+_A$98:G<
XMJ1EAP#!`"&9B%A(9_AB%N7Q5134W-#@D.A,T*3-'-$?D,V8T2#-#(S0D)#A$
XM-E4T=61-%JIDN`Q;"&9B%@P@^!S;[-G8N`Q="&9B%@P@_QS8[-G;X!1@"&9B
XM%@<-^!L,///''CAPX>/CPP#8#1((9F(6"`7[&#549%4PX`T3"&9B%@@%^!@'
XM'W[XX,@.%`AF8A8-!?P6-Y'6-Y%@L`P5"&9B%@\$_1@2G5*RN`L6"&9B%@\#
XM_1;2'"#0#1<(9F(6!P7Y&!49.140P!(8"&9B%@L+^@)2@X1V9N*#'7)ST!%>
XM"&9B%@T&_!ABE6DF&E01D1#`$'X(9F(6#07\&#-"-AV!8R0SX`Y_"&9B%@L$
XM^QE@W!^#L&"H"2T(9F(6$0/^#=C`&0P(9F(6$1G^&'[2-S0T@C*Q,6.WF7M=
XM`](GP!D+"&9B%A$9_AB"T3T%MYE[-A,;(RA#0^TG-]`B/`AF8A81%?X6`1+4
XMMJ6EM:6UI::TUM4!!=4!!=4!!=;4`1+8(CX(9F(6$17^%B`136U0$%U0$%U0
XM$%UM2VI:6UI;6EIK32`1J`E?"&9B%A$#_O[8R"A<"&9B%A$@_APM+STO/2\]
XM+STO/2\]+STO/2\]+STO/2\]+STO/2\](G@)?`AF8A8#(/<<V-`=>PAF8A81
XM(/X<MIAZ=-Z#U(B/BH`00!#H,!!-J8M@V!U]"&9B%A$@_AQKB:U`$.@P$$`0
XMBOB(A-Z#U'IXEK#8$"((9F(6#0O\&#=^97]S$G(0T`X-"&9B%@4,^!DA,Q7H
XM$Q#8#"`(9F(6$1#^">TM`F#P#VED96YT:69I97(@0TU45/`@8V]D:6YG<V-H
XM96UE(%1E6"!T>7!E=W)I=&5R('1E>'3P#&9O;G1F86-E8GET9?0`Z@``]?;V
X!]FUE
X`
Xend
END_OF_FILE
  if test 6254 -ne `wc -c <'utils/fonts/cmtt10.pk.UU'`; then
    echo shar: \"'utils/fonts/cmtt10.pk.UU'\" unpacked with wrong size!
  fi
  # end of 'utils/fonts/cmtt10.pk.UU'
fi
if test -f 'utils/pktype.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utils/pktype.c'\"
else
  echo shar: Extracting \"'utils/pktype.c'\" \(5812 characters\)
  sed "s/^X//" >'utils/pktype.c' <<'END_OF_FILE'
X/*	Copyright 1985, 1986, 1987, 1988 16:49:49 Chris Lewis
X		All Rights Reserved
X
X    Permission to copy and further distribute is freely given provided
X    this copyright notice remains intact and that this software is not
X    sold for profit.
X
X	Project:	Generic Troff drivers
X	Module:		pk2sfp.c
X	Author: 	Chris Lewis
X	Specs:		prints header info from PK's and SFP's
X */
X
X#ifndef	lint
Xstatic char SCCSID[] =
X    "@(#)pk2sfp.c 2.1 Copyright 90/07/18 16:49:49 Chris Lewis";
X#endif
X#include "defs.h"
X#include "pk.h"
X
Xint firstchar = 0, lastchar = 0xff;
Xint verbose = 0;
Xchar *progname;
Xextern char *mustmalloc();
Xlong pks_malloc;
X
X/*	Dummied out for pk.c */
Xneedchar(a, b)
Xint a, b; {
X    return(1);
X}
X
Xmain(argc, argv)
Xint argc;
Xchar **argv; {
X    int c;
X    extern int optind, getopt();
X    extern char *optarg;
X    register struct pkp *p;
X    struct pkp *pk_read();
X
X    progname = argv[0];
X    while((c = getopt(argc, argv, "D:vf:l:")) != EOF)
X	switch(c) {
X	    case 'D':
X#ifdef	DEBUG
X		setdebug(optarg, "diagnostics");
X		break;
X#else
X		fprintf(stderr, "%s: debug not supported recompile with DEBUG\n",
X		    progname);
X		exit(1);
X#endif
X	    case 'v':
X		verbose = 1;
X		break;
X	    case 'f':
X		firstchar = *optarg;
X		break;
X	    case 'l':
X		lastchar = *optarg;
X		break;
X	    default:
X		fprintf(stderr, "Usage: %s [-f<ch>] [-l<ch>] pk_files\n", progname);
X		exit(1);
X	}
X#ifdef	DEBUG2
X    {
X	struct pkc p;
X	static int8 raster[] = {
X	    0xd9, 0xe2, 0x97, 0x2b, 0x1e, 0x22,
X	    0x93, 0x24, 0xe3, 0x97, 0x4e, 0x22,
X	    0x93, 0x2c, 0x5e, 0x22, 0x97, 0xd9};
X
X	struct ras *r;
X
X	p.pkc_flag = 0x88;
X	p.pkc_dyn_f = 8;
X	p.pkc_pl = 0x1a;
X	p.pkc_char = 4;
X	p.pkc_tfm = 0x09c61c;
X	p.pkc_dx = 0x19;
X	p.pkc_dy = 0;
X	p.pkc_x_off = 0xFE;
X	p.pkc_y_off = 0;
X	p.pkc_height = 0x1d;
X	p.pkc_width = 0x14;
X	p.pkc_pkr = raster;
X	p.pkc_rlen = sizeof(raster);
X	r = pkrast(&p);
X	dumpr(r, p.pkc_height);
X    }
X#endif
X    for (; optind < argc; optind++) {
X	char *filebuf = mustmalloc(strlen(argv[optind]) + 10);
X	register char *cp;
X
X	cp = strrchr(argv[optind], '/');
X
X	if (cp)
X	    strcpy(filebuf, cp+1);
X	else
X	    strcpy(filebuf, argv[optind]);
X
X	strcat(filebuf, ".D");
X
X	if (diagFile)
X	    fclose(diagFile);
X
X	if (!(diagFile = fopen(filebuf, "w"))) {
X	    fprintf(stderr, "%s: cannot open filebuf\n");
X	    exit(1);
X	}
X	p = pk_read(argv[optind]);
X	pk_dump(p, argv[optind]);
X	pk_destroy(p);
X	free(filebuf);
X    }
X    exit(0);
X}
X
Xpk_dump(p, file)
Xstruct pkp *p;
Xchar *file; {
X    struct pkc *pc;
X
X    fprintf(diagFile, "**********************************************\n");
X    fprintf(diagFile, "File %s:\n", file);
X    fprintf(diagFile, "  Font file type: %s\n",
X	p->pkp_flags&1 ? "PK" : "SFP");
X    fprintf(diagFile, "  Number of characters: %d\n", p->pkp_num);
X    fprintf(diagFile, "  Approximately %d bytes used\n", pks_malloc);
X    fprintf(diagFile, "  Design size: %ld, Native point size: %ld\n",
X	p->pkp_ds, p->pkp_ds / pow2(20));
X    fprintf(diagFile, "  Pointsize normalized to %d DPI: %ld\n",
X	OUTRES, p->pkp_npts);
X    fprintf(diagFile, "  Checksum: %ld\n", p->pkp_cs);
X    fprintf(diagFile, "  hppp: %ld, vppp: %ld\n", p->pkp_hppp, p->pkp_vppp);
X    fprintf(diagFile, "  hor. pixels/point: %f, ver. pixels/point: %f\n",
X	(double) p->pkp_hppp / pow2(16), (double) p->pkp_vppp / pow2(16));
X    fprintf(diagFile,
X	"  Hor. font resolution: %ld, Ver. font resolution: %ld\n",
X	p->pkp_res, (long) ((p->pkp_vppp * POINT / pow2(16)) + .5));
X    fprintf(diagFile,
X	"  Max y offset: %ld, Max descender: %ld, ", p->pkp_bmax, p->pkp_dmax);
X    fprintf(diagFile, "Max width: %ld, Max X offset: %ld\n",
X	p->pkp_wmax, p->pkp_xomax);
X    fprintf(diagFile,
X	"  Kern high: %ld, Kern low: %ld\n", p->pkp_kh, p->pkp_kl);
X    fprintf(diagFile,
X	"  SFP Info: symset: %d%c, style: %d, stroke: %d, typeface: %d\n",
X	(p->pkp_symset & 0x01e0) >> 5, (p->pkp_symset & 0x1f) + '@',
X	p->pkp_style, p->pkp_sw, p->pkp_typeface);
X
X    for (pc = p->pkp_chars; pc; pc = pc->pkc_next) {
X	register int i;
X	if (pc->pkc_char < firstchar || pc->pkc_char > lastchar)
X	    continue;
X	fprintf(diagFile, "\nCharacter: %lx (%c), (0%03o), Packet length: %d\n",
X	    pc->pkc_char, (char) (isprint(pc->pkc_char) ? pc->pkc_char : '?'),
X	    pc->pkc_char, pc->pkc_pl);
X	fprintf(diagFile, "  Flag byte: %d\n", pc->pkc_flag);
X	fprintf(diagFile, "  Dynamic packing variable: %d\n", pc->pkc_dyn_f);
X	fprintf(diagFile, "  TFM width: %d, dx: %d", pc->pkc_tfm, pc->pkc_dx);
X	if (pc->pkc_dy)
X	    fprintf(diagFile, " dy: %d\n", pc->pkc_dy);
X	else
X	    putc('\n', diagFile);
X	fprintf(diagFile,
X	    "  Height: %d, Width: %d, X-offset: %d, Y-offset: %d\n",
X	    pc->pkc_height, pc->pkc_width, pc->pkc_x_off, pc->pkc_y_off);
X	if (pc->pkc_rlen) {
X	    fprintf(diagFile,
X		"  Raster length: %d, width in pixels: %ld\n", pc->pkc_rlen,
X		pc->pkc_dx / pow2(16));
X	    fprintf(diagFile, "  ");
X	    for (i = 0; i < 32; i++)
X		if (i >= pc->pkc_rlen)
X		    break;
X		else
X		    fprintf(diagFile, "%02x", 0xff & pc->pkc_pkr[i]);
X	    putc('\n', diagFile);
X	}
X
X	if (pc->pkc_sfpr)
X	    fprintf(diagFile, "  SFP length: %d\n", pc->pkc_sfpr->ras_bytes);
X	if (p->pkp_flags&PK_PK) {
X	    if (pc->pkc_dyn_f == 14)
X		fprintf(diagFile, "  Bit map character, ");
X	    else
X		fprintf(diagFile, "  Packed character, ");
X	    switch(pc->pkc_flag & 0x7) {
X		case 7:
X		    fprintf(diagFile, "Long form\n");
X		    break;
X		case 4: case 5: case 6:
X		    fprintf(diagFile, "Extended short form\n");
X		    break;
X		default:
X		    fprintf(diagFile, "Short form\n");
X	    }
X	}
X	if (verbose)
X	    rasterdump(pc);
X    }
X}
X
Xrasterdump(pc)
Xstruct pkc *pc; {
X    struct ras *r;
X    register int x, y;
X    extern struct ras *pkrast();
X    r = pkrast(pc);
X    if (r) {
X	fprintf(diagFile, "Character image:\n");
X	dumpr(r, r->ras_height);
X	free(r->ras_raster);
X	free(r);
X    } else
X	fprintf(diagFile, "NULL character image\n");
X}
END_OF_FILE
  if test 5812 -ne `wc -c <'utils/pktype.c'`; then
    echo shar: \"'utils/pktype.c'\" unpacked with wrong size!
  fi
  # end of 'utils/pktype.c'
fi
if test -f 'utils/psxlate.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utils/psxlate.c'\"
else
  echo shar: Extracting \"'utils/psxlate.c'\" \(6204 characters\)
  sed "s/^X//" >'utils/psxlate.c' <<'END_OF_FILE'
X/*	Copyright 1985, 1986, 1987, 1988 Chris Lewis
X		All Rights Reserved
X
X    Permission to copy and further distribute is freely given provided
X    this copyright notice remains intact and that this software is not
X    sold for profit.
X
X	Project:	Generic Troff drivers
X	Module:		psxlate.c
X	Author: 	Chris Lewis
X	Specs:		Generic Postscript filter (page reversal etc.)
X */
X
X#ifndef	lint
Xstatic char SCCSid[] =
X    "@(#)psxlate.c: 2.2 Copyright 90/10/12 13:12:11 Chris Lewis";
X#endif
X
X#include "defs.h"
X
Xint	xlate = 0;
X#define	MAXPAGE	1000
X#define	BUFFERSIZE	512
X
X/* define if you want to page flip %! documents (eg: some TeX out stuff)
X   not recommended....
X */
X#undef	TRYPERBANG
X
Xstruct headers {
X    char *hptr;
X    struct headers *next;
X};
X
Xstruct pagedesc {
X    unsigned long start;
X    unsigned long end;
X    char *type;
X    struct headers *comments;
X} pageidx[MAXPAGE];
X
Xchar tmp[] = {"/tmp/psxXXXXXX"};
Xint page = 0;
Xchar *progname;
Xint debug, verbose;
X
X
Xmain(argc, argv)
Xint argc; char **argv; {
X    extern int optind;
X    char buffer[BUFFERSIZE];
X    int c;
X    progname = argv[0];
X    while ((c = getopt(argc, argv, "drxv")) != EOF)
X	switch(c) {
X	    case 'r': xlate = 0; break;
X	    case 'x': xlate = 1; break;
X	    case 'd': debug = 1; break;
X	    case 'v': verbose = 1; break;
X	    default:
X		usage();
X		exit(1);
X	}
X    if (fgets(buffer, BUFFERSIZE, stdin)) {
X	if (strncmp(buffer, "%!PS-Adobe-", 11) == 0) {
X	    if (verbose)
X		fprintf(stderr, "DEBUG: conformant file %s\n", buffer);
X	    mktemp(tmp);
X	    scan(stdin, tmp, buffer);
X	    transform();
X	    emit(tmp);
X#ifdef	TRYPERBANG
X	} else if (strncmp(buffer, "%!", 2) == 0) {
X	    if (verbose)
X		fprintf(stderr, "DEBUG: hopefully conformant file %s\n", buffer);
X	    mktemp(tmp);
X	    scan(stdin, tmp, buffer);
X	    transform();
X	    emit(tmp);
X#endif
X	} else {
X	    if (verbose)
X		fprintf(stderr, "DEBUG: nonconformant file %s\n", buffer);
X	    fputs(buffer, stdout);
X	    while ((c = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
X		fwrite(buffer, 1, c, stdout);
X	}
X    }
X    if (!debug)
X	cleanup();
X    exit(0);
X}
X
Xscan(f, file, buffer)
XFILE *f;
Xchar *file, *buffer; {
X    FILE *t;
X    extern char *malloc();
X    int state = 1;
X    long ind = 0;
X    int c;
X
X    if ((t = fopen(file, "w")) == NULL) {
X	fprintf(stderr, "Cannot open temporary file %s\n", file);
X	exit(1);
X    }
X    fputs(buffer, t);
X    ind += strlen(buffer);
X    pageidx[page].start = 0;
X    strcpy(pageidx[page].type = malloc(strlen(buffer)+1), buffer);
X    add(page, buffer);
X    page = 1;
X    while((c = getc(f)) != EOF) {
X	putc(c, t);
X	ind++;
X	switch(state) {
X	    case 0:
X		if (c == '\n') {
X		    state = 1;
X		}
X		break;
X	    case 1:	/* seen \n */
X		if (c == '%') {
X		    fgets(buffer, BUFFERSIZE, f);
X		    fputs(buffer, t);
X		    if (0 == strncmp(buffer, "%Page:", 6) ||
X			0 == strncmp(buffer, "%Page ", 6) ||
X			0 == strncmp(buffer, "%Trailer", 8)) {
X			pageidx[page-1].end = ind - 2;
X			pageidx[page].start = ind - 1;
X			strcpy(pageidx[page].type = malloc(strlen(buffer)+1),
X			    buffer);
X			add(page, buffer);
X			page++;
X		    } else
X			add(page, buffer);
X		    ind += strlen(buffer);
X		    break;
X		}
X		state = 0;
X		break;
X	}
X    }
X    if (page)
X	pageidx[page-1].end = ind - 1;
X    fclose(t);
X}
X
Xcleanup() {
X    unlink(tmp);
X}
X
Xemit(file)
Xchar *file; {
X    FILE *t;
X    register int i;
X    if ((t = fopen(file, "r")) == NULL) {
X	fprintf(stderr, "Panic\n");
X	exit(1);
X    }
X    for(i = 0; i < page; i++) {
X	register long start, end, cnt;
X	register int c;
X
X	start = pageidx[i].start;
X	end = pageidx[i].end;
X	cnt = end - start + 1;
X	fseek(t, start, 0);
X	while(cnt--)
X	    putchar(getc(t));
X    }
X}
X
X
Xusage() {
X    fprintf(stderr, "Usage: %s [-r|-x] < file > file\n", progname);
X}
X
Xdumppg() {
X    register int i;
X    register struct headers *h;
X    if (debug) {
X	for (i = 0; i < page; i++) {
X	    fprintf(stderr, "Page: %d %d %d %s\n", i, pageidx[i].start,
X		pageidx[i].end, pageidx[i].type);
X	    for (h = pageidx[i].comments; h; h=h->next)
X		fprintf(stderr, "  %s", h->hptr);
X	}
X    }
X}
X
Xtransform() {
X    dumppg();
X    switch(xlate) {
X	case 0:
X	    revpages();
X	    break;
X	case 1:
X	    xpages();
X	    break;
X    }
X    dumppg();
X}
X
Xfstart() {
X    register int i;
X    for (i = 0; i < page; i++)
X	if (0 == strncmp(pageidx[i].type, "%Page", 5))
X	    break;
X    return(i);
X}
Xfend() {
X    register int i;
X    for (i = page-1; i >= 0; i--)
X	if (0 == strncmp(pageidx[i].type, "%Page:", 5))
X	    break;
X    return(i);
X}
X
Xrevpages() {
X    register int i, j;
X    struct pagedesc t;
X    i = fstart();
X
X    if (i == page)
X	return;
X
X    j = fend();
X
X    while(i < j) {
X	t = pageidx[i];
X	pageidx[i] = pageidx[j];
X	pageidx[j] = t;
X	i++;j--;
X    }
X}
X
Xxpages() {
X    register int i, j, mid, first, last;
X    struct pagedesc t;
X    struct pagedesc *p =
X	(struct pagedesc *) malloc(sizeof(struct pagedesc) * page);
X    revpages();
X    first = fstart();
X
X    if (first == page)
X	return;
X
X    last = fend();
X
X    if (debug)
X	fprintf(stderr, "first: %d, last: %d, page: %d\n", first, last, page);
X    if ((last - first + 1) < 3)
X	return;
X
X    if (first)
X	memcpy(p, pageidx, sizeof(struct pagedesc) * first);	/* prolog */
X    if (page - last)	/* copy epilog */
X	memcpy(p+last+1,
X	    &pageidx[last+1], sizeof(struct pagedesc) * (page - last - 1));
X    mid = (last + first + 1) / 2 ;	/* offset of middle */
X    for (i = first; i < mid; i++)
X	p[first + (i - first) * 2] = pageidx[i];
X    for (i = mid; i <= last; i++)
X	p[first + (i - mid) * 2 + 1] = pageidx[i];
X    memcpy(pageidx, p, sizeof(struct pagedesc) * page);
X    free(p);
X}
X
Xadd(page, buf)
Xint page; char *buf; {
X    struct headers *hdr, *hp, *ohp;
X    extern char *malloc();
X    char *p;
X    if (debug)
X	fprintf(stderr, "Adding %s\n", buf);
X    hdr = (struct headers *) malloc(sizeof(struct headers));
X    if (hdr == 0 || !(hdr->hptr = malloc(strlen(buf) + 2))) {
X	fprintf(stderr, "psxlate: Out of space\n");
X	exit(1);
X    }
X    strcpy(hdr->hptr, "%");
X    strcat(hdr->hptr, buf);
X    hdr->next = NULL;
X    for (ohp = hp = pageidx[page].comments; ; hp = hp->next) {
X	if (!hp) {
X	    if (ohp == pageidx[page].comments)
X		pageidx[page].comments = hdr;
X	    else
X		ohp->next = hdr;
X	    break;
X	}
X	ohp = hp;
X    }
X    return;
X}
END_OF_FILE
  if test 6204 -ne `wc -c <'utils/psxlate.c'`; then
    echo shar: \"'utils/psxlate.c'\" unpacked with wrong size!
  fi
  # end of 'utils/psxlate.c'
fi
echo shar: End of archive 12 \(of 16\).
cp /dev/null ark12isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 16 archives.
    echo "Read the README to get started with psroff installation"
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still must unpack the following archives:
    echo "        " ${MISSING}
fi
exit 0
-- 
Chris Lewis, Phone: TBA
UUCP: uunet!utai!lsuc!ecicrl!clewis
Moderator of the Ferret Mailing List (ferret-request@eci386)
Psroff mailing list (psroff-request@eci386)