[comp.sources.misc] PCcurses shar 3

bl@infovax.UUCP (Bj|rn Larsson) (08/27/87)

# This is a shar archive.
# Remove everything above this line.
# Run the file through sh, not csh.
# (type `sh pccurses.sh.3')
echo extracting - make.uu
sed 's/^X//' > make.uu << 'FRIDAY_NIGHT'
Xbegin 444 make.exe
XM35H! "L    @ /T!__](!8  %2L0  L%'@    $                     
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                        $ "Q58OL@^P*5U:A'B'K'(M>_/]W!/]W K@V
XM %"X&@50Z/D;@\0(BU[\BP>)1OP+P'7=N!H%4+@* %#H%AR#Q 2+-B AZ<L 
XM]D0*$'0(_W0"N#\ ZP;_= *X10!0N!H%4.BY&X/$!CDVM!YU#KA* %"X&@50
XMZ*4;@\0$BT0$ZWFX&@50N#H 4.C)&X/$!(M>_HM_ NL6BUT"_W<"N%< 4+@:
XM!5#H=AN#Q :+/0O_=>:X&@50N H 4.B9&X/$!(M>_HM'!.L9BU[Z_W<"N%L 
XM4+@:!5#H1AN#Q :+7OJ+!XE&^@O =>"X&@50N H 4.AC&X/$!(M>_HL'B4;^
XM"\!T ^E]_[@:!5"X"@!0Z$8;@\0$BS0+]G0#Z2[_7E^+Y5W#58OL@^P$5U:+
XM7@3V1PH!= W_=P*X80!0Z $+@\0$BUX$@$\* 8M_!.L6BW4"ZPO_= +HR_^#
XMQ *+- OV=?&+/0O_=>:+7@2 9PK^7E^+Y5W#58OL@^P"5HLV("'K"5;HGO^#
XMQ *+- OV=?->B^5=PU6+[(/L!E=6N'\ 4.@Q (/$ HO8B5[\]D<*!'0=BW\$
XM"_]T%HMU NL)BUP"@$\*"(LT"_9U\XL]Z^9>7XOE7<-5B^R#[ 975HLV("&_
XM("'K%/]T O]V!.@O'H/$! O =&V+-(L]"_9UZ+@, %#HWQJ#Q *+\ OV=0JX
XMB@!0Z"P*@\0"B37'!   _W8$Z%0>@\0"0%#HN!J#Q *)1OX+P'4*N)T 4.@$
XM"H/$ O]V!/]V_N@*'H/$!(M&_HE$ L=$!   *\")1 B)1 ;&1 H B\9>7XOE
XM7<-5B^R#[ 175K@$ %#H:AJ#Q *+\ OV=0JXL !0Z+<)@\0"QP0  (M&!(E$
XM H-^!@!U!(O&ZQ&+?@;K HL]@ST =?F)-8M&!EY?B^5=PU6+[(/L!E=6N H 
XM4/]V!.CQ'8/$!(E&_@O = J+V,8' .L#_T8$BUX$B@>8B]CVA\,&"'7NBUX$
XM@#\ =&VX! !0Z.@9@\0"B_ +]G4*N,@ 4.@U"8/$ L<$  #_=@3H7QV#Q ) 
XM4.C#&8/$ HE&_@O =0JXW@!0Z \)@\0"_W8$_W;^Z!4=@\0$BT;^B40"@WX&
XM '4$B\;K$8M^!NL"BSV#/0!U^8DUBT8&7E^+Y5W#58OL@^P(5U;&1OX BUX$
XMBU\"@#\N=3*#?@8 =2R#?@@ =2:+7@2+=P3K"XL\5N@]&8/$ HOW"_9U\8M>
XM!,='!   @&<*^^GE (M>!(MW!"O_ZPZ#? 0 = 3&1OX!B_Z+- OV=>Z ?OX 
XM=#R#?@@ =#:+7@3V1PH0=2V+7P* /RYU%8-^!@!U#XM>!(M?!(M&"(E'!.F7
XM (M>!/]W KCT %#HQ@V#Q 2+7@3V1PH$=#6#?@H =06X 0#K BO BUX$B4;X
XM]D<*$'4%N $ ZP(KP#M&^'00BUX$_W<"N!D!4.B(#8/$!+@& %#HD!B#Q *+
XM\ OV=0JX.@%0Z-T'@\0"QP0  (M&!HE$ HM&"(E$! O_= 2)->L&BUX$B7<$
XMBUX$@$\*!(-^"@!T!(!/"A!>7XOE7<-5B^R#[!)6_W8$N+064.B"#8/$! O 
XM= /I0@* /K06"74*N$T!4.@-#8/$ L=&^K06ZP/_1OJ+7OJ*!YB+V/:'PP8(
XM=>ZX/0!0_W;ZZ D;@\0$B4;V"\!U%(-^]@!U ^F= (M>]O]&]L8' .LJBT;V
XM.4;Z=.2+V(!__UQUW(OP3HE&^HM>]O]&]HH'B 1&"L!TL^OO_T;VBU[VB@>8
XMB]CVA\,&"'7NN H 4/]V]NAO&X/$!(E&^@O = 6+V,8' ,=&^K06C4;Z4.BA
XM#8/$ HOP"_9U"KAD 5#H6PR#Q +_=O96Z,\!@\0$_W8$N+064.BA#(/$! O 
XM=0/I'__I7@&XM!90Z'P#@\0"QT;ZM!:X.@!0_W;ZZ$ :@\0$B4;V"\!U*H-^
XM]@!U"KAR 5#H!PR#Q *+7O;_1O;&!P"+7O: /SIU,,9&] '_1O;K*XM&]CE&
XM^G3.B]B ?_]<=<:+\$Z)1OJ+7O;_1O:*!X@$1@K =)WK[\9&] #'1O@  .L9
XM_W;ZZ+7[@\0"B4;\_W;X4.@^_(/$!(E&^(U&]E#HS@R#Q *)1OH+P'76N+06
XM4.@M&H/$ HOPN[06B5[VQD ! ,=&_@  _W8$N+0:4.C&"X/$! O =5Z /K0:
XM"757_W;^N+0:4.@W_(/$!(E&_O]V!+BT&E#HG@N#Q 0+P'38ZS10Z#?[@\0"
XMB4;\BD;T*N10_W;^_W;X_W;\Z++\@\0(@SZT'@!U#HM>^H _+G0&BT;\H[0>
XMC4;V4.@S#(/$ HE&^@O =;N+7@3V1P80=1&XM!I0N+064.A@&8/$!.F^_5Z+
XMY5W#58OL@^P"5HLV'B'K%O]T O]V!.@*&8/$! O =02+QNL(BS0+]G7F*\!>
XMB^5=PU6+[(/L O]V!.C&_X/$ HE&_@O = >+V(M'!.L#N(8!B^5=PU6+[(/L
XM!%=6BS8>(>L=_W0"_W8$Z+<8@\0$"\!U"_]T!.AB%8/$ NL&BS0+]G7?"_9U
XM5;@( %#H6A6#Q *+\ OV=0JXAP%0Z*<$@\0"H1XAB02)-AXAQD0& /]V!.C(
XM&(/$ D!0Z"P5@\0"B_@+_W4*N)L!4.AY!(/$ O]V!%?H@1B#Q 2)? +_=@;H
XMFAB#Q ) 4.C^%(/$ HOX"_]U"KBO 5#H2P2#Q +_=@97Z%,8@\0$B7P$B\9>
XM7XOE7<-5B^R#[ A75HMV!HM>!(L_Z>< @#PD= RLB 5'BUX(_P_IQ "+1@J)
XM1OI&@#Q[=1=&@#P =$. /'UT/HM>^O]&^HH$B ?KZ8 \*'471H \ '0G@#PI
XM="*+7OK_1OJ*!(@'Z^F / !U!\8%)$?IDP"+7OK_1OJ*!(@'BU[ZQ@< @#P 
XM= %&_W8*Z&7^@\0"B4;^"\!U$+C# 5#_=@KHH_Z#Q 2)1OZ+7OZ ?P8 = W_
XM=P*XQ %0Z'L#@\0$BU[^QD<& 8M>!(D__W8*_W8(BU[^_W<$_W8$Z"?_@\0(
XMBUX$BS^+7O[&1P8 BUX(@S\ ?PJXX@%0Z,T(@\0"@#P = /I$?_&!0"+7@2)
XM/UY?B^5=PU6+[(/L!(M&!(E&_,=&_O\#4+AV"E#H'!>#Q 2X=@Y0C4;^4+AV
XM"E"-1OQ0Z,'^B^5=PU6+[(/L"%=6QT;Z  "+1@3_3@0] 0!]!;CZ >L)BUX&
XM@T8& HL'HQPAQP8<(?\!Z<  BUX&BQ^ /RUT ^F\ /].!(M>!H-&!@*+-^F;
XM (H$F"UA #T3 '=C \"3+O^G&@K&!J4" >F  $: / !U%HM&!/].! O ?P/H
XM5 *+7@:#1@8"BS>)-K 4ZV?&!J8" .M7Q@:G @'K4,8&J (!ZTG&!JD" >M"
XMQ@:J @#K.\8&JP(!ZS3&!JP" >LMZ!$"ZRBZ"14*%0H5"A4*P@D5"A4*ZPD5
XM"A4*%0H5"N0)%0KY"0X*  KR"0<*1H \ '0#Z5S_@WX$ 'X#Z3?_N 0"4/\V
XML!3HQQ6#Q 0+P'4(QP:R%@H%ZWV#/K 4 '53N 8"4+@( E#HA!&#Q 2CLA8+
XMP'49@SZ2!@)T$O\VD@:X$0)0N!H"4.BI 8/$!H,^LA8 =4&X-P)0N#D"4.A/
XM$8/$!*.R%@O =2RX0@)0N$L"ZQRX7 )0_S:P%.@Q$8/$!*.R%@O =0[_-K 4
XMN%X"4.AA 8/$!.@U"KAO E"X<0)0Z%_\@\0$ZSBX/0!0BUX&_S?H\A2#Q 2+
XM\ OV="F*!(A&^,8$ (U$ 5"+7@;_-^@Q_(/$!(I&^(@$@T8& O].!(-^! !U
XMPO\VLA;H8?F#Q +_-K(6Z+P/@\0"QP8:'P  @#ZI @!T ^BP]+AS E#H=O:#
XMQ *+^/9%"@1T!<8&J (!N'L"4.A?]H/$ HOX]D4*!'0%Q@:G @'H#/:#/K0>
XM '4*N(,"4.BJ (/$ NC9]8-^! !U62O 4/\VM![H> .#Q 2)1OKK48 ^J0( 
XM=22 /J@" '4=N)8"4(M>!O\WZ$\4@\0$"\!U"KB; E#H31&#Q (KP%"+7@:#
XM1@8"_S?HYO6#Q )0Z"\#@\0$"4;ZBT8$_TX$"\!UKX ^K ( = 7_=OKK RO 
XM4.A^#H/$ EY?B^5=PU6+[/\V'"&XK0)0N!H%4.CO#X/$!K@! %#H60Z+Y5W#
XM58OL_S8<(;CT E"X&@50Z,\/@\0&_W80_W8._W8,_W8*_W8(_W8&_W8$N!H%
XM4.BP#X/$$+@:!5"X"@!0Z-D/@\0$N $ 4.@,#HOE7<-5B^R#[ +_=@3H/PJ+
XMY5W#58OL@^P.5U:X^@)0Z'_Z@\0"B]B)7O* /P!T ^F3 8M>!HM'!(E&^@O 
XM=0/I@P&+V/]W KBT%E#H>A.#Q 2XM!90Z#O\@\0"OK06H*@"B$;\H*<"B$;^
XM@#Q = 6 /"UU$H \0'4&QD;\ >L$QD;^ 4;KY( ^I@( =03&1OP B_[K3( ]
XM"G4<@'T! '06Q@4@@'[\ '4WN!(%4+@  U#H1 _K)X!^_ !U)/\.% 5X$(H%
XMBQX2!?\&$@6(!RKDZPZX$@50B@684.BJ"H/$!$> /0!UKX!^_ !U)/\.% 5X
XM$+ *BQX2!?\&$@6(!RKDZPZX$@50N H 4.AZ"H/$!( ^I@( =0/IHP#_=O)6
XMZ.+^@\0$B4;T"\!U ^F/ #W__W4/_W;RN ,#4.AY_H/$!.M[_W;T_S8<(;@:
XM U#H3P^#Q : ?OX = VX$@50N"P#4.B4#NO7_PX4!7@0L J+'A(%_P82!8@'
XM*N3K#K@2!5"X"@!0Z  *@\0$BUX$]D<*"'4A_W<"Z"D4@\0""\!U%(M>!/]W
XM O\V'"&X. -0Z.X.@\0&_W;TZ%$,@\0"BU[ZBP?I<_Y>7XOE7<-5B^R#[ )6
XMBUX$BW<$ZPQ6_W8$Z#+^@\0$BS0+]G7P7HOE7<-5B^R#[""-1N!0BUX$_W<"
XMZ*(/@\0$"\!]*(,^D@8"=!3_-I(&BUX$_W<"N$L#4.B5_8/$!HM>!"O B4<(
XMB4<&ZP^+7@2+1O:+5OB)1P:)5PB+Y5W#58OL@^P$@#ZF @!T!X ^J ( =1"+
XM7@3_=P*X9@-0Z#H.@\0$@#ZF @!T)RO 4(M>!/]W NA4$X/$! O ?12+7@3_
XM=P+_-APAN'<#4.@,#H/$!HOE7<-5B^R#[!!75L=&^ $ QT;Z  #&1OP BUX$
XM]D<* G0%*\#IW &+7@2+1P8+1PAU!U/H(O^#Q * /JH" '0@BUX$BW\$"_]T
XM"8-]! !U ^F=  O_=0G_=@3H 02#Q *+7@3V1PH$=16+1P8+1PAU#?]W KB-
XM U#HI/R#Q 3'1O0  (M>!(M_! O_=0/IQ0"+=0(+]G1QBT8&0%#_= +H8?^#
XMQ 2+7 *+1P:+5PB+7@0Y5PA\#G\%.4<&<@> /J4" '0/_W;T_W0"Z'SR@\0$
XMB4;TBUP"BT;XBU;Z.5<(?Q1\!3E'!G,-BT;XBU;ZZPZ+/>E1_XM< HM'!HM7
XM"(E&^(E6^HLTZXN /JP" '5!BUX$]D<*$'0X@#ZE @!U$HM&^(M6^CE7"'\F
XM? 4Y1P9S'_]V]%?_=@3HS@"#Q ;'1O@! ,=&^@  QT;T  #^1OR+/>DT_XM>
XM!(!/"@* /JP" '0UBT<&BU<(B4;PB5;RB\,%!@!0Z%P1@\0"BT;XBU;Z.5;R
XM?@/IF?Y\"#E&\'(#Z8_^N $ ZVN+7@2+1OB+5OHY5PA\#G\%.4<&<@> /J4"
XM '0FBUX$]D<*$'4=_W;T*\!04^A" (/$!HM&! 4& %#H !&#Q +I2/Z#?@8 
XM= /I/_Z ?OP = /I-OZ+7@3_=P+_-APAN*H#4.@+#(/$!ND?_EY?B^5=PU6+
XM[(/L E=6BW8(@#ZK @!T"?]V!.B,_>F# +C" U"XM!90Z (/@\0$ZS6XM!90
XMZ!L/@\0""\!T#KC# U"XM!90Z%0.@\0$BUT"_W<"N+064.A$#H/$!(LU5^A.
XM"X/$ HO^"_]UQ;BT%E"XQ0-0Z+3U@\0$BUX$_W<"N,<#4.BD]8/$!(-^!@!T
XM#O]V!O]V!.C@^H/$!.L)_W8$Z(W\@\0"7E^+Y5W#58OL_S8<(;C* U"X&@50
XMZ#X*@\0&_W8*_W8(_W8&_W8$N!H%4.@H"H/$"H,^&A\ =!+_-AH?N,\#4+@:
XM!5#H#PJ#Q :X&@50N H 4.@X"H/$!+@! %#H:PB+Y5W#58OL@^P(5U;'1OH 
XM /]V!K@ !"M&^E"+1OH#1@10Z%0)@\0&"\!U!K@! .FE /\&&A^X"@!0BT;Z
XM T8$4.B%#8/$!(OP"_9U"KC= U#H4_^#Q * ?/]<=0[&1/\*B\8K1@2)1OKK
XMIHMV!+@C %!6Z%,-@\0$B4;\"\!U%8-^_ !T"HM>_,8'"L9' 0"+=@3K+3EV
XM_'3FBU[\@'__7'7=B\-(B4;XB_.+7OC_1OB+?OS_1OR*!8@'"L!TK^OJ1HH$
XMF(O8]H?#!@AU\PK =0/I-_\KP%Y?B^5=PU6+[(/L!%=6ZP6+7@3_!XM>!(L?
XMB@>8B]CVA\,&"'7JBUX$BQ^ /P!U!"O ZS.+7@2+-^L2BD;\F(O8]H?#!@AU
XM$XM>!/\'BUX$BQ^*!XA&_ K =>"+7@2+/_\'Q@4 B\9>7XOE7<-5B^RX+@!0
XM_W8$Z#\-B^5=PU6+[(/L%%=6OK06BUX$BW\"5^C:_X/$ HE&[@O =0LKP.EQ
XM 8H%1X@$1CE^[G?UQ@0 N+064+CL U#HD_.#Q 2+V(M'!(E&]KCN U#H!NZ#
XMQ *+V(E>\/9'"@1TPHM'!(E&_@O =+B+V(M' ND4 8M>^HM? HM' HE&\E#H
XM>0R#Q +_=NZ)1NSH;0R#Q (#1NQ /0 $? JX^ -0Z"/X@\0"OK06BW[RB@5'
XMB 1&"L!U]DZ+?NZ*!4>(!$8*P'7VN+064.B/[8/$ HE&\(O8]D<*!'4#Z:< 
XMOK06BW[V_W;RZ!4,@\0"5XE&[.@+#(/$ @-&[$ ]  1\"K@-!%#HP?>#Q **
XM!4>(!$8*P'7V3HM^\HH%1X@$1@K =?:XM!90Z#/M@\0"B4;XB]B+1P8+1PAU
XM!U/HQ/F#Q *+7OB+1P8+1PAT.BO 4%/HH.V#Q 2)1OHKP%"+7O"+7P3_=P3_
XM=OK_=@3H@NZ#Q B+7OC_=P*X) 10Z%KR@\0$N $ ZQ>+7OJ+!XE&^@O = /I
XMXOZ+7OZ+!^G+_EY?B^5=PU6+[(/L!K@F!%"X+@10Z"3R@\0$*\!0N#8$4.A_
XM[8/$!(E&_+A+!%#HC^R#Q *)1OXKP%#_=OQ0_W;^Z _N@\0(N%0$4+A9!%#H
XMZ?&#Q 2X7 10N%T$4.C;\8/$!"O 4+AD!%#H-NV#Q 2)1ORX@ 10Z$;L@\0"
XMB4;^*\!0_W;\4/]V_NC&[8/$"+B)!%"XC 10Z*#Q@\0$N(\$4+B3!%#HDO&#
XMQ 0KP%"XF@10Z.WL@\0$B4;\N+ $4.C]ZX/$ HE&_BO 4/]V_%#_=O[H?>V#
XMQ BXMP10N+P$4.A7\8/$!+B_!%"XP 10Z$GQ@\0$*\!0N,@$4.BD[(/$!(E&
XM_+C@!%#HM.N#Q *)1OXKP%#_=OQ0_W;^Z#3M@\0(N.D$4.B7ZX/$ HE&_BO 
XM4/]V_N@>[(/$!(E&^KCN!%#H>^N#Q *)1O[_=OI0Z 3L@\0$B4;ZN/,$4.AA
XMZX/$ HE&_O]V^E#HZNN#Q 2)1OJX^ 10Z$?K@\0"B4;^_W;Z4.C0ZX/$!(E&
XM^KC]!%#H+>N#Q *)1O[_=OI0Z+;K@\0$B4;ZN  %4.@3ZX/$ HE&_BO 4%#_
XM=OK_=O[HD^R+Y5W#58OL@^P*QT;\=A*X  )0_W8$N'824.BA"8/$!NL0BD;V
XMF(O8]H?#!@AT#_]&_(M>_(H'B$;V"L!UY,=&^   BU[\@#\ =%B+7OC1XXM&
XM_(F'MAZ+7OR*!XA&]@K ="68B]CVA\,&"'4;_T;\BT;\B4;ZZ]^*1O:8B]CV
XMA\,&"'0/_T;\BU[\B@>(1O8*P'7DBU[ZQ@< _T;X@W[X,7R@@W[X,7P%N/__
XMZS>+7OC1X\>'MAX  +BV'E#_-K8>*\!0Z,0%@\0&B4;^0'0%BT;^ZQ"#/I(&
XM G7T_W8$Z < @\0"B^5=PU6+[(/L!%=6Z"8 B_"X+P!0Z"\ @\0"_W8$Z L)
XM@\0"B_A6Z!T @\0"B\=>7XOE7<-5B^Q75K@ -\TABL(RY%Y?7<-5B^Q75K@!
XM-XI6!,TA7E]=PU6+[(/L!%=6BW8&]D0&@W0&]D0&0'0*@$P&(+C__^D$ ?9$
XM!@%U\(!,!@* 9 ;O*\")1 *+^(E^_O9$!@AU$XI$!YB+V-'C ]C1X_:'J@4!
XM=$"+/"M\!(M$!$")!(I$!YB+V-'C ]C1XXN'K 5(B40""_]^$E?_= 2*1 >8
XM4.C'(H/$!HE&_HM<!(I&!(@'Z88 ]D0&!'5J@?X2!75#BD0'F%#H512#Q (+
XMP'51_P;R!\=$!+(4BD0'F(O8T>,#V-'CQH>J!0''!+,4F(O8T>,#V-'CQX>L
XM!0 "QT0"_P'KIK@  E#HZ@.#Q *)1 0+P'0,@$P&"$")!(I$!^O-@$P&!+\!
XM %>-1@10BD0'F%#H-B*#Q :)1OXY?OYT ^GW_HI&!"KD7E^+Y5W#M##-(3P"
XM<PZX! !0Z%T4DK0)S2'-(+^*!(LV @ K]X'^ !!R [X $/J.UX'$+B'[<PLS
XMP%#H9!2X_TS-(8'D_O\VB28H!C:))B8&B\:Q!-/@2#:C) 8#]XDV @",PRO>
XM]]NT2LTA-HP>F 86!_R_=@JY,"$KSS/ \ZH6'^@K !8?Z*$=Z( @,^W_-K8&
XM_S:T!O\VL@;H?.]0Z+T N , 4.CY$[C_ %#HQ@"T,,TAHYH&NP0 N !$S2%R
XM"O;"@'0%@(^>!D!+>>RX #7-(8D>A@:,!H@&#A^X "6ZX1G-(18?BPY@">,G
XMC@:8!B:+-BP Q09B"8S:,]LV_QY>"3;%!F8)C-J[ P V_QY>"18?C@:8!B:+
XM#BP XS2.P3/_)H ] '0JN0P OGH&\Z9T"[G_?S/ \JYU%^OE!AX''XOWOYX&
XMK)B1K/[ = %(JN+W%A^^:@F_:@GH70##58OLOK 4O[ 4Z%  OFH)OVP)Z$< 
XMZP-5B^R^; F_; GH.0#H;PZY%  SV_:'G@8!= 2T/LTA0^+RZ < BT8$M$S-
XM(8L.8 GC![L" /\>7@D>Q1:&!K@ )<TA'\,[]W,*3T^+#>/V_]'K\L-5B^R#
XM[!)75HMV!+____9$!H-U ^F  /9$!D!U>E;HAP^#Q *+^(I$!YB+V-'C ]C1
XMXXN'K@6)1NY6Z- (@\0"BD0'F%#H_@V#Q (+P'T%O___ZT.#?NX =#NXQ =0
XMC4;P4.CM!(/$!+C)!U"-1O!0Z$\$@\0$N H 4(U&]5#_=N[HJA&#Q :-1O!0
XMZ+X&@\0"B_CK BO_QD0& (O'7E^+Y5W#58OL@^P$5U:+=@B+?@2#?@8 =00K
XMP.LZ_TX&="'_3 )X"HL<_P2*!RKDZP=6Z%@'@\0"B4;^0'4-.7X$=-;&!0"+
XM1@3K#(I&_H@%1SP*=<CK[%Y?B^5=PU6+[(/L E;H]AZ+\ OV= ]6_W8&_W8$
XMZ"<(@\0&ZP(KP%Z+Y5W#58OL@^P$5U;_=@3H$ F#Q *+\(U&"%#_=@;_=@3H
XM$1.#Q :+^/]V!%;HD0F#Q 2+QUY?B^5=PU6+[%=6BW8$BWX&_TT"> R+QHL=
XM_P6(!RKDZPA75NB8^X/$!%Y?B^5=PU6+[(/L!E=6_W8$Z.<#@\0"B_C_=@;H
XMI B#Q *+\/]V!E>X 0!0_W8$Z&(.@\0(B4;\_W8&5N@C"8/$!#E^_'4)BUX$
XMBD'_F.L#N/__7E^+Y5W#58OLBUX$@$_^ 8OE7<-5B^Q65[O,!X,_ '4I'@>X
XM!0#HK IU!3/ F>LD0"3^H\P'H\X'EL<$ 0"#Q@3'1/[^_XDVT@>+3@2,V([ 
XMZ$0)7UZ+Y5W#58OL@^P&5U:^$@56Z <(@\0"B_B-1@90_W8$5N@*$H/$!HE&
XM^E97Z(L(@\0$BT;Z7E^+Y5W#58OL,\#HK0O_-K8&_W8(_W8&_W8$Z,\:B^5=
XMPU6+[(/L!E=6BD8$*N2)1OJ+?@: ?0$Z=0.#QP* /5QT!8 ]+W4&@'T! '0+
XM]D;Z$'4%@#T =06X0$#K [@ @(OP]D;Z!70%N  !ZP.X@ $+\+@N %#_=@;H
XMY *#Q 2+^ O_=#&XU@=05^C"'(/$! O =!ZXV0=05^BS'(/$! O = ^XW =0
XM5^BD'(/$! O =02!SD  B\8EP &Q ]/H"_"+QB7  ;$&T^@+\(O&7E^+Y5W#
XM58OL@^Q,5U:+=@2+?@:XWP=05NCN'(/$! O = S'!I(& @"X___I90&-1L90
XMN!H 4.AA"8/$!,9&MT['1KHW (EVO(U&\E"-1K90Z$D.@\0$@W[^ '1L@#Q<
XM= 6 /"]U!H!\ 0!T'H!\ 3IUMH!\ @!T$H!\ P!UJH!\ EQT!H!\ B]UGKA 
XM % KP%#H-PV#Q 2)1L16Z*$*@\0"0'1)_W;$Z)4*@\0"_W;$Z/G]@\0"QD;;
XM$"O B4;BB4;@B4;<B4;>*\")10*)10J)10B ? $Z=2B*!)B)1K2+V/:'PP8!
XM=!$%( #K#_]VQ.BY_8/$ NDO_XM&M"UA .L7QD:W&8U&\E"-1K90Z(P-@\0$
XMBD;R*N2)!8E%#%:*1MN84.@L_H/$!(E%!,=%!@$ BT;@BU;BB44.B540BT;<
XM)1\ T>!0BT;<L073Z"4_ %"+1MRQ"]/H)1\ 4(M&WB4? %"+1MZQ!=/H)0\ 
XM4(M&WK$)T^@E?P!0Z(@9@\0,B44:B54<B446B548B442B544*\!>7XOE7<-5
XMB^Q65QX'BWX$B]<SP+G___*N3XOWBWX&B]^Y___RKD'WV8O^B_/SI(O"7UZ+
XMY5W#58OL5XM^!!X'B]\SP+G___*N0??9BD8&B_ORKD\X!70",_^+QU^+Y5W#
XM58OL5U:+=@2+?@8>!XO?,\"Y___RKD'WV8O[\Z:*1/\SR3I%_W($= 1)2??1
XMB\%>7XOE7<-5B^Q75AX'BWX&B_<SP+G___*N0??9BWX$B]?SI(O"7E^+Y5W#
XM58OL5QX'BWX$,\"Y___RKHO!0$#WV%^+Y5W#58OL5U8>!XM^!(MV!HO?BTX(
XMXPRL"L!T ZKB^#+ \ZJ+PUY?B^5=PU6+[%<>!XM^!#/ N?__\JY!]]E/BD8&
XM_?*N1S@%= 0SP.L"B\?\7XOE7<-5B^RX# #H)@C_=@3H@_^#Q (%" !0Z.7[
XM@\0"B4;\"\!U"<<&D@8, .G8 +CB!U#_=@2XY =0_W;\Z##_@\0$4.B9_H/$
XM!%#HDOZ#Q 2)1OCK _]&^(M>^( _ '7U_T[XBU[X@#\@=/6#1O@"BU[X_T;X
XMQ@<-BU[XQ@< _W;\Z!#_@\0"2$B)1O0]@ !^",<&D@8' .LTBU[\BD;TB ?'
XM!I(&  "XZ@=0Z.0*@\0"B4;^*\!04(U&]E"-1OI0_S:V!N@K!H/$"D!U"_]V
XM_.@?^X/$ NLN_W;V_W;\_W;^*\!0Z+4'@\0(B4;T_W;ZZ/_Z@\0"_W;\Z/;Z
XM@\0"@SZ2!@)U!;C__^L#BT;TB^5=PU6+[(/L K0JS2&+VHE._K0LS2$RY(K&
XM4(K!4(K%4%"T*LTA.]I8= D\%W4%B].+3OXRY(K"4(K&4(O!+;P'4.CV%H/$
XM#(-^! !T"(M>!(E7 HD'B^5=PU6+[(M6!+1!S2'I!PA5B^R#[!I75BO_B7[\
XMN & 4/]V!.B1"X/$!(E&ZHE&]@O ?0:X___IH@"#?@8 =0R-1OA0Z&7_@\0"
XMZP^+7@:+1P2+5P:)1OB)5OJ-1OA0Z)X*@\0"B_"+1 HM4  E?P"Q"=/@"_B+
XM1 A )0\ L073X OXBT0&)1\ "_B+1 0E'P"Q"]/@"4;\BT0")3\ L073X E&
XM_(L$F2O"T?@E'P )1OR+1OR)1NR)?N[&1N@!QD;I5XU&Z%"-1NA0Z*X)@\0$
XM_W;VZ"8&@\0"*\!>7XOE7<-5B^Q75HMV!/9$!H-T!O9$!D!T!KC__^G" /9$
XM!@)T!H!,!B#K[H!,!@'V1 8,=2V*1 >8B]C1XP/8T>/VAZH% 74:N  "4.AN
XM^8/$ HE$! O = 2P".L"L 0(1 ;V1 8(=!**1 >8B]C1XP/8T>/'AZP%  *#
XM? 0 =1J*1 >8B\C1X /!T>"+^ 6K!8E$!,>%K 4! (M$!(D$BD0'F(O8T>,#
XMV-'C_[>L!?]T!)A0Z/X;@\0&B40""\!_%0O = 2P(.L"L! (1 ;'1 (  .E#
XM__], HL<_P2*!RKD7E^+Y5W#58OL5HMV!/9$!H-T'?9$!@AT%_]T!.BO^(/$
XM H!D!O<KP(D$B40$B40"7HOE7<-5B^R#[ A75HMV"(M>!HH'F#UA '1$/7( 
XM= H]=P!T,RO Z=@ QT;^ 0#_1@:+7@: /RMU!X!._@C_1@:+1OXE!P ] 0!T
XM&CT" '0S/00 =#/K$,=&_@( Z]#'1OX$ .O)*__V1OX(= B!SP( @>?^_XM>
XM!H _='40@<\ 0.L6OP$#Z]^_"0'KVHM>!H _8G4$@<\ @+BD 5!7_W8$Z"4)
XM@\0&B4;Z"\!] ^ES__9&_@AT!L9$!H#K$/9&_@9T!L9$!@+K!,9$!@'_!O('
XMBT;ZB\C1X /!T>")1O@JP(M>^(B'J@68B40"QX>N!0  *\")!(E$!(I&^HA$
XM!XO&7E^+Y5W#58OL5U:+=@3_!O('@?X2!74Y]D0&#'4SBD0'F(O(T> #P='@
XMB_CVA:H% 74>QT0$LA3&A:H% <>%K 4  L=$ @ "QP2R%+@! .M.@?X:!70&
XM@?XJ!75 ]D0&"'4ZBD0'F(O(T> #P='@B_CVA:H% 74E@3X6!;(4=!W'1 2R
XM%(I$!IBC>!3&A:H% <>%K 4  H!D!OOKIBO 7E^+Y5W#58OL5U:+=@:#?@0 
XM=1.A%@4Y1 1U"U;HL 2#Q (KP.M?@WX$ '19@?X2!748BD0'F%#H^0:#Q (+
XMP'0)5NB*!(/$ NL;@?X:!70&@?XJ!74O5NAU!(/$ J!X%"0$"$0&BD0'F(O(
XMT> #P='@B_C&A:H% ,>%K 4  "O B02)1 1>7XOE7</IS "#^>YS^$& X?Z+
XM=P+\K8O^J %T0D@[P7,5B] #\*VH 70T \(% @"+]XE$_NOFB_YT# /YB4S^
XM*\%(B07K!0/Y_DS^B\:,VHS1.]%T!2:,'O@'B7\"PR;&!OP' CW^_W0EB_X#
XM\*VH 73RB_Y(.\%SO8O0 _"MJ %TX@/"!0( B_>)1/[KYHM'" O = 2.V.L4
XM)OX._ =T$8S8C-<[QW0%)HX>] >+-^N\BW<&,\#H:@ [QG0-) % 0)CH7@!T
XM#?Y-_N@< '0%EDY.ZYF,V(S1.\%T!":C^ >+!XE' C/ F<-1BT7^J %T RO(
XM24%!NO]_)CL6^@=V!-'J=?6+P0/&<A4#PG(-]](CPBO&Z P =0CWTM'J=>4S
XMP%G#4E'H'0!T&%>+_HOP _+'1/[^_XEW!HO6*]=*B57^6%E:PU-0,](>4E)0
XMN $ 4 8?Z'X4@\0(@_K_'UI;= (+TL-5B^R*9@2+5@:*1@C-(8OE7<-5B^RX
XM#@#H-@%75H-^! !U!J&V!HE&!(MV!,=&]@  ZQ"#Q@+_=/[H>/B#Q )  4;V
XM@SP =>N+1O9 B4;XQT;\$P"+7OR OYX& '4)_T[\@W[\_W_M@W[\ 'P3N/X'
XM4.A ^(/$ @-&_ 4#  %&^(M&^ 4/ %#HEO2#Q *)1OJ+7@:)!PO =2J#?@H 
XM= G_=@KH;?2#Q +'!I(&# #'!IP&" #_=OKH6/2#Q *X___IB "+1OH%#P D
XM\(OXBUX(B3^+=@3K&2O 4/\T5^BO]X/$!%#H2?>#Q 1 B_B#Q@*#/ !UXH-^
XM_ !\2BO 4+@+"%!7Z(GW@\0$4.@C]X/$!(OXBD;\_L"(!4?'1O8  (M>]H"_
XMG@8 = :*AYX&ZP*P_X@%1_]&]HM&_/]._ O ==[&!0!'Q@4 BT;X7E^+Y5W#
XM68O<*]AR"CL>& AR!(OC_^$SP.FQ\%8S]KDV #+D_*PRX.+[@/15= >X 0!0
XMZ)0$7L-5B^R+7@2T/LTA<@7&AYX& .D& 56+[+0YZPQ5B^RT.NL%58OLM#N+
XM5@3-(>GK;2FR  L L%6+[(-^! %T$X-^! !T#<<&D@86 +C___CIS0!65XS8
XMBUX*L033ZP/#HQH(BT8(HQP(C!X>"!X'BS8<"$:_* BX 2G-(;@!*;\X",TA
XM508>@#Z:!@-](2Z,%H I+HDF?BF_+@"+-2Z)-H(IBW4"+HDVA"DNC!Z&*;L:
XM"(-^! !T!K $,\GK C+ ^%"T"\TA6,<&N 8! (M6!K1+S2%0GU"T,,TA/ -8
XM6WTA+HX6@"DNBR9^*;\N "Z.'H8I+HLVA"F)=0(NBS:"*8DUGI,?QP:X!@  
XM!UU?7G($M$W-(>D( '((,\"+Y5W#<P;H#0"X__^+Y5W#,N3H 0##HIP&"N1U
XM(X ^F@8#<@T\(G,-/"!R!; %ZP>0/!-V K 3NT@(UYBCD@;#BL3K]U6+[(/L
XM!%=6BW8$*_^*1 8D SP"=4#V1 8(=1.*1 >8B]C1XP/8T>/VAZH% 70GBP0K
XM1 2)1OP+P'X;4/]T!(I$!YA0Z&H0@\0&.T;\= > 3 8@O___BT0$B03'1 ( 
XM (O'7E^+Y5W#58OL@^P&5U:+=@2+?@J+1@;W9@B)1OJ)1OR#?@8 = :#?@@ 
XM=04KP.FS /9%!@AU$XI%!YB+V-'C ]C1X_:'J@4!='6#?OP =0/IA@"+1OPY
XM10)R&5!6_S7H'12#Q :+1OPI10(!!<=&_   Z]:#?0( =!W_=0)6_S7H_!.#
XMQ :+10(!!2E&_ /PQT4"  #KL_]- G@,B@2+'?\%B <JY.L+5XH$F%#H5^R#
XMQ 3V108@=2!&_T[\ZXO_=OQ6BD4'F%#HA ^#Q :)1OX]__]T RE&_(M&^BM&
XM_"O2]W8&7E^+Y5W#58OL@^Q"5U:+=@:+?@0+_W485NC9\(/$ HOX"_]U",<&
XMD@8, .M4B7X$*\!0C4:^4.A5$8/$!(U&OE#H1?2#Q (% P [QGP*QP:2!B( 
XM*\#K*2O 4%"X&0!0Z'+[@\0&!$&(!4?&!3I'Q@5<1XU&OE!7Z.GS@\0$BT8$
XM7E^+Y5W#58OL@^P$5U:+-K8&"_9T.(-^! !T,O]V!.CF\X/$ HOXZR"+'( Y
XM/7465_]V!%/HG!6#Q 8+P'4'BQR-00'K"H/& H,\ '7;*\!>7XOE7<-5B^Q6
XM5XM^!(L%BUT"BTT$BU4&BW4(BWT*S2%7BWX&B06)70*)302)50:)=0B/10IR
XM!#/VZPCH=OV^ 0"+!8EU#%]>B^5=PU6+[(M>!(/[%'T1@_L ? SVAYX&0'0%
XMN $ ZP(SP(OE7<-5B^Q65[,!BTX(BT8$,]*#^0IU 9F+?@;IW!95B^R#[ 96
XMZ"H5BUX$BP>+5P(K!@()&Q8$"8E&_(E6_HU&_%#H5A"#Q *+\(,^!@D ="56
XMZ+,5@\0""\!T&H%&_! .@U;^ (U&_%#H+Q"#Q *+\,=$$ $ B\9>B^5=PU6+
XM[%97N(H$CM@>!XM6!+YV":T[PG000)9T#)<SP+G___*NB_?KZY9?7HOE7<("
XM %6+[%?_=@3HQO\+P'04DHOZ,\"Y___RKO?12;L" +1 S2%?B^5=P@( 58OL
XM,O^(/H@(BT8&,NVI" !T K4@B"Z'""4# #T# '4%@78& 0"Z7 BT&LTAN3< 
XMBU8$M$[-(7,#Z9L BT8&B\@E  4]  5U![@ $?GI%_S&!HD( 9&I  )T"XM6
XM!+@ 0\TAZ9P J0, =%>I (!U4O8&20F =4NP @H&B B+5@2T/<TA<L>3N !$
XMS2'VPH!U+;G__XO1N )"S2'WV;I<"+0_S2$+P'06@#Y<"!IU#_?9B]&X D+-
XM(3/)M$#-(;0^S2&*1@8D PH&B B+5@2T/<TA<C?I.P[W1@8  74#Z6O_Q@:)
XM" "+3@CH?0Z)3@@R[?8&B C_=0?W1@8" '4#@.'^BU8$M#S-(7,#Z5G[]@:(
XM"/]U!_=&!@( =3*3M#[-(8I&!B0#"@:("(M6!+0]S2%RV/8&B0@!=13W1@@!
XM '0-@,D!DXM6!+@!0\TAD^G!#56+[+AB >BY^5=6BW8&C8:B_J.(%(M&"*.$
XM%(M&!*-^%,<&EA0  ,<&E!0  .DY H \)70#Z<@!QP:.% $ *\"CC!2C>A2C
XMD!2C@A2CAA2C?!2C@!2CFA2CG!3'!HH4( " ? $P=3M&QP:*%#  ZS* /"UU
XM!O\&G!3K)X \*W4,_P:,%,<&?!0  .L6@#P@=0V#/HP4 '4*_P9\%.L$_P::
XM%$:*!)A0Z#T'@\0""\!UOU:XDA10Z,,&@\0$B_" /"YU$O\&AA1&5KB.%%#H
XMK :#Q 2+\(H$F#U& '0Y/4X =#P]: !T)SUL '0'/7  ="7K!L<&@A0" (,^
XM@A0 = : /'!T 4: / !U&^EC <<&@A0! .OCQP:"%!  Z]O'!H(4" #KTXH$
XMF(F&GOX]10!T"CU' '0%/5@ =0G_!GH4@X:>_B"+AI[^+6, /14 =@/IH@ #
XMP),N_Z=?,8L>A!2+'Z&4%(D'Z<8 _P:0%,<&FA0  +@* %#H%0&#Q +IKP"X
XM" #K\?\&@!3'!HX4! #_!GH4_P:&%(,^@A0"= >#/H(4$'4UQP:"%   @P:$
XM% *X$ !0Z-@ @\0"N#H 4.B' X/$ H,NA!0$N!  4.B_ (/$ H,&A!0"ZU6X
XM$ #KERO 4.C? >N3N $ Z_7_MI[^Z+4"ZX6#/H(4 '0#B\9.B_[K3D,QR3!(
XM,4@Q2#%1,<DP43%1,5$Q43&W,-PPX3!1,5$Q.S%1,<4P43%1,38Q@SZ6% !T
XM$X,^E!0 =4F+'GX4]D<&('4ZZSU&ZQR /25T!D> /0!U]8O'*\90B\8>4.B3
XM X/$!HOW@#P = /IO_V#/I04 '4/BQY^%/9'!B!T!;C__^L#H9047E^+Y5W#
XM58OLN!@ Z"GW5U:#?@0*= 3_!I 4@SZ"% )T!X,^@A00=1:+'H04BP>+5P*)
XM1OB)5OJ#!H04!.LI@SZ0% !T$(L>A!2+!XE&^,=&^@  ZPV+'H04BP>9B4;X
XMB5;Z@P:$% *#/IH4 '0-BT;X"T;Z= 6+1@3K BO HY@4BS:(%(,^D!0 =2J#
XM?OH ?22#?@0*=1?&!"U&BT;XBU;Z]]B#T@#WVHE&^(E6^L=&]@$ ZP7'1O8 
XM (O]@^\8_W8$5_]V^O]V^.AF$8/$"(,^AA0 ="!7Z,#M@\0"BPZ.%"O(B4[^
XMZP3&!#!&BT;^_T[^"\!_\HH%B 2#/GH4 '0'/&%\ X L($9'@'W_ '7F@SZ0
XM% !U%*&,% L&?!1T"X-^]@!U!;@! .L"*\!0Z*8"@\0"7E^+Y5W#58OLN!  
XMZ/3U5U;'!HH4( "#?@0 =!2^ 0"AA!2)1O2,7O:#!H04 NF$ (,^@A00=1:+
XM'H04BP>+5P*)1O2)5O:#!H04!.L4BQZ$%(L'B4;XB4;TC%[V@P:$% *#/H(4
XM$'4-BT;T"T;V=12XB@CK"8-^^ !U";B1"(E&](Q>]HM&](M6]HE&_(E6_BOV
XMZP3_1OQ&Q%[\)H _ '7S@SZ&% !T#(O&.P:.%'8$BS:.%(L^DA0K_H,^G!0 
XM=0=7Z T!@\0"5O]V]O]V].AE 8/$!H,^G!0 = =7Z/( @\0"7E^+Y5W#58OL
XMN ( Z!#UH804B4;^@SZ&% !U!L<&CA0& /\V>A3_-HX4_W8$_S:(%/]V_NAF
XM"8/$"H-^!&=T!H-^!$=U&(,^FA0 =1&#/HX4 '0*_S:(%.A""8/$ H,^FA0 
XM=!&#/HX4 '4*_S:(%.@J"8/$ H,&A!0(QP:8%   H8P4"P9\%'02_W;^Z T)
XM@\0""\!T!;@! .L"*\!0Z!T!B^5=PU6+[#/ Z''T5H,^EA0 =32+'GX4_T\"
XM>!&*1@2+'GX4BS?_!X@$*N3K#?\V?A3_=@3H0N.#Q 1 =0;_!I84ZP3_!I04
XM7HOE7<-5B^RX @#H)_175H,^EA0 =4V+=@0+]GY&ZR^+'GX4_T\">!&@BA2+
XM'GX4BS__!X@%*N3K#O\V?A3_-HH4Z.WB@\0$0'4$_P:6%(O&3@O ?\J#/I84
XM '4'BT8$ 0:4%%Y?B^5=PU6+[+@" .C"\U=6BW8(@SZ6% !U4.LYBQY^%/]/
XM G@4Q%X$)HH'BQY^%(L__P>(!2KDZQ+_-GX4Q%X$)HH'F%#HA>*#Q 1 =03_
XM!I84_T8$B\9."\!UP(,^EA0 =0>+1@@!!I047E^+Y5W#58OLN H Z%?S5U:+
XM-H@4*\")1OR)1OB+/I(45NBDZH/$ HE&^BOX*WX$@SZ<% !U&( \+743@SZ*
XM%#!U#*R84.BD_H/$ O].^H,^BA0P= L+_WX'@SZ<% !T&8-^! !T!O]&^.AA
XM (,^F!0 = ;_1OSH<P"#/IP4 '4F5^BQ_H/$ H-^! !T"8-^^ !U ^@W (,^
XMF!0 = F#?OP =0/H1@#_=OJ+QAY0Z.K^@\0&@SZ<% !T#<<&BA0@ %?H<?Z#
XMQ )>7XOE7<-5B^PSP.B0\H,^C!0 = 6X*P#K [@@ %#H!/Z+Y5W#58OL,\#H
XM<?*X, !0Z/']@\0"@SZ8%!!U%H,^>A0 = 6X6 #K [AX %#HU/V#Q *+Y5W#
XM58OLN ( Z#WR5U:+=@: /"IU$8L>A!2*!YB+^(,&A!0"1NLZ*_^ /#!\,X \
XM.7\N.3Z&%'4+@#PP=0;'!HH4, "LF(O/T>'1X0//T>$#R(/I,(OY@#PP? 6 
XM/#E^XXM>!(D_B\9>7XOE7<-5B^RX @#HTO%6OI@(ZPV*!#A&!'4%N $ ZPA&
XM@#P =>XKP%Z+Y5W#CP:>"(X>F 86![Z  *R8)H ^F@8#<D50C@8L #/ B\CW
XMT8OX\JXF. 5U^8/' XO(]]%7\JY>@\$"]]E;B\,#P04# "7^_RO@B_P>!A\6
XM!_.DL""JB\L?OH$ ZPZ+R 0$)/XKX(O\N$,@J_.DB\&JB_06'U"+W(O^K K 
XM="#H-P!T]$Y6_P:R!JSH,@"J"L!T#.@C '7RQD7_ .O:JHOT2TL[\W,(K8<'
XMB43^Z_*+W(DFM ;_)IX(/ ET CP@PSQ<=0B /")U ZSK&CPB=1:L/ UT$3PB
XM=0> ?/Y<=01/JNOMK.O:PU6+[+C8 .C%\%=6B_V#[U+_=@K_=@C_=@;_=@3H
XM/ B#Q B)1OY =2J#/I(& G4CBUX&B@<\7'0:"L!T!H!_ 3IT$+B@"%#HYO.#
XMQ *+\ OV=0:+1O[IB0"X?P!05HV&+/]0Z.?G@\0&B_#&1JL B_6![M0 =-SK
XM"8 \.W0)K(@%1X \ '7RQ@4 B_V#[U)7Z)_G@\0"B]B >?]<= NXI0A05^C7
XMYH/$!/]V!E?HS>:#Q 3_=@K_=@A7_W8$Z)P'@\0(B4;^0'6*@SZ2!@)U@X \
XM '4#Z7O_B\9&"\!UH^EQ_UY?B^5=PU6+[(/L(%=6BW8$N(!1N@$ 4E"-1 .9
XM,\(KPKD" -/X,\(KPIE24.@^#HE&Z(E6ZHM>!M'CB[_""(O&F;D$ /?Y"])U
XM!X-^!@)^ 4>X/ "94E"+1@R94E#H#0ZY$ XKVU-1B\B+1@J+VIE24(E.Y(E>
XMYNCS#;F 4;L! %-1B\BX;0&+VO?NB]"+1@@#P@/'F5)0B4[@B5[BZ,T- T;@
XM$U;B T;D$U;FB\B+1@Z+VID#R!/:@<$ IH'3SA(!3N@17NJ+1@@#QXE&^NB$
XM"*$""8L6! D!1N@15NJ-1%")1O:+1@9(B4;TBT8*B4;P@SX&"0!T%XU&[%#H
XM# F#Q (+P'0)@6[H$ Z#7NH BT;HBU;J7E^+Y5W#58OL58X>F 8SR8O!B^F+
XM^4F+-BP "_9T"([&\JY%KG7Z19= )/Z+_='E \46'U>_"0#H1P=?B\^+_0/X
XMB2ZV!AX'CMXS]DGC$X$\.T-T!8E^ $5%K*H*P'7ZXNV)3@ 6'UV+Y5W#58OL
XM5U:+=@2+?@8>![=!LUJU((HDB@4*Y'0@"L!T'$9'.N=R!CKC=P("Y3K'<@8Z
XMPW<" L4ZX'4(Z]@SR3K@= FY  !R DE)]]&+P5Y?B^5=PU6+[(/L E:^"@7V
XM1 :#=14KP(E$ HA$!HE$!(D$QD0'_XO&ZPV+QH/&"#L&(@9UVBO 7HOE7<-5
XMB^Q75AX'BW8&Z,(&BW8$,\"L.L1T"NC<!CK@=/2+QDA>7XOE7<-5B^R+7@3V
XMAYX&('0.N )",\F+T<TA<P/I].[VAYX&@'4#Z8$ BTX(BU8&'@<SP/Q75HOP
XMB_KC9;@*0/*N=3)1B\\KRDGC$,TAG /PG7,$M GK20O ="]&N0( NJ@(M$#-
XM(7,$M GK- O =!I9B]?KQ5&+SRO*S2&< _"=<P2T">L:"\!U%O:'G@9 = N+
XM7@: /QIU _CK!/FX !Q9<@*+QEY?Z6GNBTX("\EU!8O!Z5WNBU8&M$#-(7,$
XMM GKY O =>#VAYX&0'0*B]J /QIU _CKS_FX !SKR56+[%97!H-^" !U.+\H
XM!HM6!HM&!$AU!^A3 '(GZTB+-G@&2'01._=T#8M$ HE&#%;H.@!><S"#Q@2!
XM_G@&<P0+TG4&N/__F>L=B]J#PP_1V[$#T^NT2,TA<NF2B02)5 *)-G@&,\ '
XM7UZ+Y5W#BTX,B_<Y3 )T#(/&!('^> 9U\OGK/XO: QQR.8O3CL$[]W4&.1XD
XM!G,F@\,/T=O1Z]'KT>L[]W4) ]FAF 8KV([ M$K-(7(-._=U!(D6) :2AP2+
XMT<-5B^S&!H<( (M.!NAE (E.!HM6!#+MM#S-(7)4B]B+5@2X $/-(??! 0!U
XM!#+)ZP*Q$/=&!@! =0[W1@8 @'4*]@9)"8!U X#)@ H.APBX $3-(7,%N 4 
XMZQ: R0&+P_;"@'0#@,E B(^>!H"GG@;]Z?[LH90&]] CP8'A ,"H@'4#@,D!
XMPU6+[(O>BU8&BW8$M$?-(8OSB^5=P^CN"%6+[(/L!%=6O@H%*__K%/9$!H-T
XM"U;H^NR#Q ) = %'@\8(.38B!G/FB\=>7XOE7<-5B^R#[ Q75HM>!(%_ LX2
XM?S1\!H$_ *9S+,<&J!10 ,<&I!0! "O HZX4HZP4HZ84HYX4HZ 4HZ(4QP:J
XM% ( N)X4Z7<!N( SNN$!4E"+7@3_=P+_-^C3"*.H%+B 4;H! %)0H:@40)DS
XMPBO"N0( T_@SPBO"B_B94E#H40FY@#.[X0%348M>!/]W O\WB4;TB5;VZ&0)
XM*T;T&U;VB4;XB5;Z@W[Z 'TH@4;X@#.!5OKA :&H%$"9N00 ]_D+TG4*@4;X
XM@%&#5OH!3_\.J!3KTH$&J!2R!Z&H%)FY! #W^0O2=1^AJ!29N60 ]_D+TG4-
XMH:@4F;F0 ??Y"])U!;ZJ".L#OL0(@2ZH%&P'N(!1N@$ 4E#_=OK_=OCH#PBC
XMK!2X@%&Z 0!24(U&^%#H<@G'!J84 0#K!/\&IA2+'J84T>.AK!0Y 'SO_PZF
XM%(L>IA31XRL HZ04N! .F5)0_W;Z_W;XZ,8'HZ(4N! .F5)0C4;X4.@K";@\
XM )E24/]V^O]V^.BG!Z.@%+@\ )E24/]V^O]V^.AD"*.>%+AM ?<NJ!0#!JP4
XM \<MRF.9N0< ]_F)%JH4QP:N%   Z8/^7E^+Y5W#58OL5U8>!XM^!(MV!HO7
XMBTX(XS4[_G84B\8#P3OX<PP#\0/Y3D_]\Z3\ZQV+QPO&T>AS"HO',\;1Z'+K
XMI$G1Z?.E<P6*!":(!8O"_%Y?B^5=PU6+[(M>!/:'G@8"= 4SP.E[ZHM."(M6
XM!K0_S2%S!+0)ZR_VAYX&@'0H5E?\B_*+^HO(XQNT#:PZQ'0=/!IU!X"/G@8"
XMZP6(!4?BZXO'*\)?7NDYZHOE7<.#^0%T!X \"G3GZ^+VAYX&0'09N !$S2'W
XMPB  =0J-%MX(M#_-(7+/L KK+\8&W@@ C1;>"+0_S2%RO O =!J#?@@!=""Y
XM__^+T;@!0LTAN0$ @#[>" IT![ -BU8&ZXZ+5@;KC( ^W@@*==GKNE6+[+B*
XM .AJZ%=6BW8&@WX$ G40_W8*_W8(5NC*!8/$!NGT "O 4(V&>/]0C4;X4(U&
XM_E#_=@K_=@CHFP.#Q Q =0:X___ISP"X7 !05NC(WX/$!(OX"_]U HO^N"X 
XM4%?H[MZ#Q 0+P'08_W;XC89X_U!6_W8$Z&3H@\0(B4;ZZ8D 5NA/WX/$ @4%
XM %#HL=N#Q *+^ O_=0O_=O[HE-N#Q +KGKC@"%!65^@#WX/$!%#H;-Z#Q 3'
XM!I(&  #_=OB-AGC_4%?_=@3H$>B#Q B)1OJ#/I(& G4KN.4(4+@N %!7Z#/?
XM@\0$4.C$WH/$!/]V^(V&>/]05_]V!.C?YX/$"(E&^E?H*]N#Q +_=O[H(MN#
XMQ *+1OI>7XOE7<.+T ,&* 9R-3D&) 9S)04/ %#1V+$#T^B,V8L>F 8KRP/!
XMCL.+V+1*S2%8<A D\$BC) :5BRXH!@$6* ;#B\?IVM>_Z@B+W[D0 #/ \ZJL
XM"L!T%8OXL0/3[P/[L@&*R(#A!]+B"!7KYL-1B_BQ ]/O _NR 8K(@.$'TN)9
XM,\"$%70!0,-5B^Q75AX'BTX(XR:+V8M^!(OW,\#RKO?9 \N+_HMV!O.FBD3_
XM,\DZ1?]W!'0$24GWT8O!7E^+Y5W#58OL@^P$5U:X2@E0Z.GI@\0"B_ +]G4#
XMZ94 @#P =0/IC0"X P!05O\V" GHYMV#Q :X$ Z94E"#Q@-6Z+H!@\0"4E#H
XMT02C @F)%@0)*_^+WP/>@#\ =!^+WP/>B@>8B]CVA\,&!'4)B]\#WH _+74&
XM1X/_ WS8B]\#WH _ '05N , 4(O' \90_S8*">B$W8/$!NL'BQX*"<8' (L>
XM"@F /P!T!;@! .L"*\"C!@E>7XOE7<-5B^R#[ 975HMV!(-\" -\!H-\" E^
XM!2O Z;H @WP( WX)@WP("7T#Z:@ BWP*@<=L!XM<"-'CBX?&"$")1OZ+QYFY
XM! #W^0O2=1N+QYFY9 #W^0O2=0R+QYFYD 'W^0O2=0/_1OZ+? J#[T:X;0'W
XM[XO(C44!B]F9,\(KPKD" -/X,\(KP@-&_@/#!00 F;D' /?YBT;^*\*)1OJ#
XM? @#=1@Y1 Y_+#E$#G0#Z6C_@WP$ GT#Z5__ZQF+1OHY1 Y\$3E$#G0#Z4W_
XM@WP$ 7P#Z43_N $ 7E^+Y5W#58OL5E>S .D  (M."HM&!(M6!HM^"%<>!_R3
XM"L!T$X/Y"G4."])Y"K MJO?;@]( ]]J+]Y(ST@O = +W\9/W\9*'TP0P/#EV
XM @0GJHO""\-UXH@%3ZR&!8A$_T\[]W+U6%]>B^5=P^DD E6+[+@2 .B2Y%=6
XM*_8Y=@9U!J&V!HE&!H-^!@!T(HM&!HE&\.L2BU[P@T;P O\WZ,S;@\0"0 /P
XMBU[P@S\ =>;'1O@4 (M>^("_G08 =07_3OAU\8-^^ !T"(M&^ 4.  /P@WX.
XM '00BUX$_S?HCMN#Q (% P #\$:)=O:+-OH'QP;Z!Q  BT;V!0\ 4.C:UX/$
XM HE&_@O =2F+1O8%#P!0Z,;7@\0"B_@+_W49QP:2!@P QP:<!@@ B3;Z![C_
XM_^E! 8M^_HDV^@>+7@B)?O*)/XM&\@4/ "3PB4;RBUX*B_B)/X-^!@!T+8M&
XM!HE&\.L=*\!0BU[P_S=7Z-O:@\0$4.AUVH/$!$"+^(-&\ *+7O"#/P!UVX-^
XM^ !T.RO 4+A."5!7Z+':@\0$4.A+VH/$!(OXBD;XB 5'*_: O)X& '0&BH2>
XM!NL"L/^(!4=&_T[X=>C&!0!'Q@4 @WX. '0/@\<#BUX$_S=7Z&S:@\0$*_:+
XM?@Q'BUX$.3=T>CEW G0%Q@4@1T:+1@0% @")1O#K6?]V[NAFVH/$ HE&_ /&
XM/7T ?AK'!I(&!P#'!IP&"@"+7@C_-^BCUH/$ NG^_@-V_"O 4(M>\/\W5^@+
XMVH/$!%#HI=F#Q 2+^(-&\ *+7O"#/P!T!<8%($=&BU[PBP>)1NX+P'6;Q@4-
XMBUX,B\:(!XM&]EY?B^5=P[@" .E2TXL.; GC O_AN/__QP:2!A8 Z<OC58OL
XM5E>+=@3\,\"9B]JL/"!T^SP)=/<\+9QT!#PK=0&L/#EW'RPP<AO1X]'2B\N+
XM^M'CT=+1X]'2 ]D3UP/8@]( Z]R3G74']]B#T@#WVE]>B^5=PU6+[%=64S/_
XMBT8&"\!]$O?7BU8$]]CWVAT  (E&!HE6!(M&"@O ?1+WUXM6"/?8]]H=  ")
XM1@J)5@@+P'46BTX(BT8&,]+W\8O8BT8$]_&+T^L\D(O8BTX(BU8&BT8$T>O1
XMV='JT=@+VW7T]_&+\#/24E#_=@K_=@CH)P [5@9W!W((.T8$=@.#[@$STHO&
XM"_]T!_?:]]B#V@!;7E^+Y5W"" !5B^Q7BWX&BT8*"_B+7@B+3@1T"_?AB_B+
XMP_=F!@/XB\/WX0/77XOE7<(( %6+[%-7,_^+1@8+P'T2]]>+5@3WV/?:'0  
XMB48&B58$BT8*"\!]$(M6"/?8]]H=  ")1@J)5@@+P'4:BTX(BT8&,]+W\8M&
XM!/?QB\(ST@O_=47K2I"+V(M."(M6!HM&!-'KT=G1ZM'8"]MU]/?Q,])24/]V
XM"O]V".A9_SM6!G<'<@L[1@1V!BM&"!M6"BM&!!M6!@O_=0?WVO?8@]H 7UN+
XMY5W"" !5B^R+7@3_=@C_=@;_=P+_-^A&_XM>!(E7 HD'B^5=P@8)'[( %P"P
XM0R!,:6)R87)Y("T@*$,I0V]P>7)I9VAT($UI8W)O<V]F="!#;W)P(#$Y.#8?
XM "5S(#T@)7,* "5S.CH* "5S.@H *$U!24X@3D%-12D* " E<P M"25S"@!C
XM:7)C=6QA<B!D97!E;F1E;F-Y(&9R;VT@8"5S)P N4%)%0TE/55,  &YO(&UE
XM;6]R>2!F;W(@;F%M90!N;R!M96UO<GD@9F]R(&YA;64 ;F\@;65M;W)Y(&9O
XM<B!D97!E;F1A;G0 ;F\@;65M;W)Y(&9O<B!C;VUM86YD &YO(&UE;6]R>2!F
XM;W(@8V]M;6%N9 !C;VUM86YD<R!D969I;F5D('1W:6-E(&9O<B!T87)G970@
XM)7, :6YC;VYS:7-T96YT(')U;&5S(&9O<B!T87)G970@)7, ;F\@;65M;W)Y
XM(&9O<B!L:6YE ')U;&5S(&YO="!A;&QO=V5D(&AE<F4 ;F\@;6%C<F\@;F%M
XM90!N;R!T87)G971S('!R;W9I9&5D  !N;R!M96UO<GD@9F]R(&UA8W)O &YO
XM(&UE;6]R>2!F;W(@;6%C<F\ ;F\@;65M;W)Y(&9O<B!M86-R;P  :6YF:6YI
XM=&5L>2!R96-U<G-I=F4@;6%C<F\@)7, 97AP86YD960@;&EN92!T;V\@;&EN
XM90  ;6%K90!M86ME "T <@!M86ME9FEL90!M86ME9FEL90!C86YN;W0@;W!E
XM;B!@)7,G.R!E<G)O<B E,#)X '( ;6%K969I;&4 ;6%K969I;&4 8V%N;F]T
XM(&]P96X@8"5S)P!R &-A;FYO="!O<&5N(& E<R< )  D "Y324Q%3E0 +DE'
XM3D]210!N;R!T87)G971S(&1E9FEN960 ;&]V90!.;W0@=V%R(0H   $    !
XM  !U<V%G93H@)7,@6RUF(&UA:V5F:6QE72!;+6%I;G!Q<G-T72!;/&UA8W)O
XM/CT\=F%L/BXN+ET@6W1A<F=E="AS*2XN+ET* "5S.B   %-(14Q, %P* &-O
XM=6QD(&YO="!E>&5C=71E(& E<R< )7,Z(&5R<F]R(&-O9&4@)60 ("AI9VYO
XM<F5D*0H )7,Z(& E<R<@<F5M;W9E9"X* &-A;FYO="!O<&5N(& E<R<[(&5R
XM<F]R("5D " @("!T;W5C:"A@)7,G*0H )7,Z(& E<R<@;F]T('1O=6-H960*
XM &1O(&YO="!K;F]W(&AO=R!T;R!M86ME(& E<R< )7,Z(& E<R<@:7,@=7 @
XM=&\@9&%T90H  "  /P!    E<SH@ "!N96%R(&QI;F4@)60 ;&EN92!T;V\@
XM;&]N9P  *@ N4U5&1DE815, <W5F9FEX(')U;&4@=&]O(&QO;F< :6UP;&EC
XM:70@;F%M92!T;V\@;&]N9P \ &5X93)B:6X 15A%,D))3@ D*$5813)"24XI
XM("0J+F5X92 D0  N97AE+F-O;0!L:6YK $Q.  !,1DQ!1U, )"A,3BD@)"HN
XM;V)J+"1 ("0H3$9,04=3*2 [ "YO8FHN97AE &-C $-# "U/= !#1DQ!1U, 
XM)"A#0RD@)"A#1DQ!1U,I("UC("0\ "YC+F]B:@!M87-M $%3  !!4T9,04=3
XM "0H05,I("0\+"1 ("0H05-&3$%'4RD[ "YA<VTN;V)J "YC;VT +F5X90 N
XM;V)J "YA<VT +F, +E-51D9)6$53 !P?   <'P$          @$        &
XM @       (0#         @0J!;( > "P 0   @0 L@!T +"B!0       (H$
XM"@"R $P L"@&.T-?1DE,15])3D9/#@"R !@ L(&!@0$!!0"R "  L" ) + H
XM*"@H* 4 LB 2 +!( 0"R$ \ L(0* + 0$! 0$! 0@8&!@8&!#0"R 10 L! 0
XM$! 0$(*"@H*"@@P L@(4 + 0$! 0( 4 L@"! +!<5$U0 %P& +( # "P+F$ 
XM+F$ +F$ /RH ( !X("]C( !#3TU34$5#&P"R  H L"   #M#7T9)3$5?24Y&
XM3P [0U]&24Q%7TE.1D\ ,"(       #X!XT$" B-!"T L@ A + 6 @(8#0D,
XM# P'"/___Q(-$@+_$P"R "X L"AN=6QL*0 H;G5L;"D *RT@(P    !0051(
XM %P   T*__\> #L 6@!X )< M0#4 /, $0$P 4X!;0'__QX .@!9 '< E@"T
XM -, \@ 0 2\!30%L 0  +F-O;0 N97AE7P"R !$ L%!35 !01%0 @'    $ 
XM^@C^"%-U;DUO;E1U95=E9%1H=49R:5-A= !*86Y&96)-87)!<')-87E*=6Y*
XM=6Q!=6=397!/8W1.;W9$96,     5%H  #M#7T9)3$5?24Y&3V  L@ 0 +">
XM/0  /#Q.35-'/CX!  T*97)R;W(@,C P,3H@3G5L;"!P;VEN=&5R(&%S<VEG
XM;FUE;G0-"@    T*97)R;W(@,C P,#H@4W1A8VL@;W9E<F9L;W<-"@ #  T*
XM97)R;W(@,C P,SH@26YT96=E<B!D:79I9&4@8GD@, T*  0 #0IE<G)O<B R
XM,# T.B!$3U,@,BXP(&]R(&QA=&5R(')E<75I<F5D#0HD  D #0IE<G)O<B R
XM,# Y.B!.;W0@96YO=6=H('-P86-E(&9O<B!E;G9I<F]N;65N= T*  ( #0IE
XM<G)O<B R,# R.B!&;&]A=&EN9R!P;VEN="!N;W0@;&]A9&5D#0H ____# &R
XM  H L/__________________11D     40$ ")T&,@520HS !1  #A^C!  #
XM!@P CL"+#@8 B_E/B_?]\Z10N#( 4,N,PXS82([8CL"_#P"Y$ "P__.N1XOW
XMB\-(CL"_#P"Q!(O&]]#3Z'0*C-HKT([:@<[P_XO']]#3Z'0*C,(KT(["@<_P
XM_ZR*T$ZMB\A&BL(D_CRP=0:L\ZKK!Y \LG5K\Z2*PJ@!=+B^)P$.'XL>! #\
XM,]*MB\CC$XO" \..P*V+^(/__W01)@$=XO.!^@#P=!:!P@ 0Z]R,P$".P(/O
XM$"8!'4B.P.OBB\.+/@@ BS8*  /P 08" "T0 ([8CL"[  #ZCM:+Y_LN_R^T
XM0+L" +D6 (S*CMJZ$0'-(;C_3,TA4&%C:V5D(&9I;&4@:7,@8V]R<G5P= 4 
XHRDY<&<)0QE"W+0                                       '5P
X 
Xend
FRIDAY_NIGHT
echo extracting - move.c
sed 's/^X//' > move.c << 'FRIDAY_NIGHT'
X/****************************************************************/
X/* Wmove() routine of the PCcurses package			*/
X/*								*/
X/****************************************************************/
X/* This version of curses is based on ncurses, a curses version	*/
X/* originally written by Pavel Curtis at Cornell University.	*/
X/* I have made substantial changes to make it run on IBM PC's,	*/
X/* and therefore consider myself free to make it public domain.	*/
X/*		Bjorn Larsson (...mcvax!enea!infovax!bl)	*/
X/****************************************************************/
X/* 1.0:	Release:					870515	*/
X/****************************************************************/
X
X#include <curses.h>
X#include <curspriv.h>
X
X/****************************************************************/
X/* Wmove() moves the cursor in window 'win' to position (x,y).	*/
X/****************************************************************/
X
Xint	wmove(win,y,x)
X  WINDOW	*win;
X  int		 y;
X  int		 x;
X  {
X  if ((x < 0)||(x > win->_maxx)||(y < win->_regtop)||(y >win->_regbottom))
X    return(ERR);
X  win->_curx = x;
X  win->_cury = y;
X  return(OK);
X  } /* wmove */
X
X/****************************************************************/
X/* Move() moves the cursor in stdscr to position (x,y).		*/
X/****************************************************************/
X
Xint move(y,x)
X  int y;
X  int x;
X  {
X  return(wmove(stdscr,y,x));
X  } /* move */
FRIDAY_NIGHT
echo extracting - mvcursor.c
sed 's/^X//' > mvcursor.c << 'FRIDAY_NIGHT'
X/****************************************************************/
X/* Mvcur() routine of the PCcurses package			*/
X/*								*/
X/****************************************************************/
X/* This version of curses is based on ncurses, a curses version	*/
X/* originally written by Pavel Curtis at Cornell University.	*/
X/* I have made substantial changes to make it run on IBM PC's,	*/
X/* and therefore consider myself free to make it public domain.	*/
X/*		Bjorn Larsson (...mcvax!enea!infovax!bl)	*/
X/****************************************************************/
X/* 1.0:	Release:					870515	*/
X/****************************************************************/
X
X#include <curses.h>
X#include <curspriv.h>
X
X/****************************************************************/
X/* Mvcur(oldy,oldx,newy,newx) the display cursor to <newy,newx>	*/
X/****************************************************************/
X
Xint	mvcur(oldy,oldx,newy,newx)
X  int oldy;
X  int oldx;
X  int newy;
X  int newx;
X  {
X  if ((newy >= LINES) || (newx >= COLS) || (newy < 0) || (newx < 0))
X    return(ERR);
X  _cursescursor(0,newy,newx);
X  _cursvar.cursrow = newy;
X  _cursvar.curscol = newx;
X  return(OK);
X  } /* mvcur */
FRIDAY_NIGHT
echo extracting - nearcall.inc
sed 's/^X//' > nearcall.inc << 'FRIDAY_NIGHT'
X	far_call EQU	0
FRIDAY_NIGHT
echo extracting - newwin.c
sed 's/^X//' > newwin.c << 'FRIDAY_NIGHT'
X/****************************************************************/
X/* Newwin(), subwin() routines of the PCcurses package		*/
X/*								*/
X/****************************************************************/
X/* This version of curses is based on ncurses, a curses version	*/
X/* originally written by Pavel Curtis at Cornell University.	*/
X/* I have made substantial changes to make it run on IBM PC's,	*/
X/* and therefore consider myself free to make it public domain.	*/
X/*		Bjorn Larsson (...mcvax!enea!infovax!bl)	*/
X/****************************************************************/
X/* 1.0:	Release:					870515	*/
X/****************************************************************/
X
X#include <stdio.h>
X#include <curses.h>
X#include <curspriv.h>
X
X/****************************************************************/
X/* Makenew() allocates all data for a new window except the	*/
X/* actual lines themselves.					*/
X/****************************************************************/
X
Xstatic WINDOW *makenew(num_lines, num_columns, begy, begx)
X  int	num_lines, num_columns, begy, begx;
X  {
X  int		 i;
X  WINDOW	*win;
X
X  /* allocate the window structure itself */
X
X  if ((win = (WINDOW *) malloc(sizeof(WINDOW))) == NULL)
X    return ((WINDOW *) ERR);
X
X  /* allocate the line pointer array */
X
X  if ((win->_line = (int **) calloc(num_lines, sizeof (int *))) == NULL)
X    {
X    free(win);
X    return((WINDOW *) ERR);
X    }
X
X  /* allocate the minchng and maxchng arrays */
X
X  if ((win->_minchng = (int *) calloc(num_lines, sizeof(int))) == NULL)
X    {
X    free(win);
X    free(win->_line);
X    return((WINDOW *) ERR);
X    }
X  if ((win->_maxchng = (int *) calloc(num_lines, sizeof(int))) == NULL)
X    {
X    free(win);
X    free(win->_line);
X    free(win->_minchng);
X    return((WINDOW *) ERR);
X    }
X
X  /* initialize window variables */
X
X  win->_curx      = 0;
X  win->_cury      = 0;
X  win->_maxy      = num_lines - 1;
X  win->_maxx      = num_columns - 1;
X  win->_begy      = begy;
X  win->_begx      = begx;
X  win->_flags     = 0;
X  win->_attrs     = ATR_NRM;
X  win->_tabsize   = 8;
X  win->_clear     = (bool) ((num_lines == LINES) && (num_columns == COLS));
X  win->_leave     = FALSE;
X  win->_scroll    = FALSE;
X  win->_nodelay   = FALSE;
X  win->_keypad    = FALSE;
X  win->_regtop    = 0;
X  win->_regbottom = num_lines - 1;
X
X  /* init to say window unchanged */
X
X  for (i = 0; i < num_lines; i++)
X    {
X    win->_minchng[i] = 0;
X    win->_maxchng[i] = num_columns-1;
X    }
X
X  /* set flags for window properties */
X
X  if ((begy + num_lines) == LINES)
X    {
X    win->_flags |= _ENDLINE;
X    if ((begx == 0) && (num_columns == COLS) && (begy == 0))
X      win->_flags |= _FULLWIN;
X    } /* if */
X  if (((begy + num_lines) == LINES)
X        &&
X      ((begx + num_columns) == COLS))
X    win->_flags |= _SCROLLWIN;
X  return(win);
X  } /* makenew */
X
X/****************************************************************/
X/* Newwin() creates a new window with size num_lines * num_co-	*/
X/* lumns, and origin begx,begy relative to the SCREEN. Special	*/
X/* case: if num_lines and/or num_columns is 0, the remainder of	*/
X/* the screen is used.						*/
X/****************************************************************/
X
XWINDOW *newwin(num_lines, num_columns, begy, begx)
X  int	num_lines, num_columns, begy, begx;
X  {
X  WINDOW	*win;
X  int		*ptr;
X  int		 i, j;
X
X  if (num_lines == 0)
X    num_lines = LINES - begy;
X  if (num_columns == 0)
X    num_columns = COLS - begx;
X  if ((win = makenew(num_lines, num_columns, begy, begx)) == (WINDOW *) ERR)
X    return((WINDOW *) ERR);
X  for (i = 0; i < num_lines; i++)	/* make and clear the lines */
X    {
X    if((win->_line[i] = (int *) calloc(num_columns,sizeof(int))) == NULL)
X      {
X      for (j = 0; j < i; j++)		/* if error, free all the data */
X	free(win->_line[j]);
X      free(win->_minchng);
X      free(win->_maxchng);
X      free(win->_line);
X      free(win);
X      return((WINDOW *) ERR);
X      } /* if */
X    else
X      for (ptr = win->_line[i]; ptr < win->_line[i] + num_columns;)
X	*ptr++ = ' ' | ATR_NRM;
X    } /* for */
X  return(win);
X  } /* newwin */
X
X/****************************************************************/
X/* Subwin() creates a sub-window in the 'orig' window, with	*/
X/* size num_lines * num_columns, and with origin begx, begy	*/
X/* relative to the SCREEN. Special case: if num_lines and/or	*/
X/* num_columns is 0, the remainder of the original window is	*/
X/* used. The subwindow uses the original window's line buffers	*/
X/* to store it's own lines.					*/
X/****************************************************************/
X
XWINDOW *subwin(orig, num_lines, num_columns, begy, begx)
X  WINDOW	*orig;
X  int		 num_lines, num_columns, begy, begx;
X  {
X  WINDOW	*win;
X  int		 i, j, k;
X
X  /* make sure window fits inside the original one */
X
X  if (
X      begy < orig->_begy || 
X      begx < orig->_begx ||
X      (begy + num_lines) > (orig->_begy + orig->_maxy) ||
X      (begx + num_columns) > (orig->_begx + orig->_maxx)
X     )
X    return((WINDOW *) ERR);
X
X  if (num_lines == 0)
X    num_lines = orig->_maxy - (begy - orig->_begy);
X  if (num_columns == 0)
X    num_columns = orig->_maxx - (begx - orig->_begx);
X  if ((win = makenew(num_lines, num_columns, begy, begx)) == (WINDOW *) ERR)
X    return((WINDOW *) ERR);
X
X  /* set line pointers the same as in the original window */
X
X  j = begy - orig->_begy;
X  k = begx - orig->_begx;
X  for (i = 0; i < num_lines; i++)
X    win->_line[i] = (orig->_line[j++]) + k;
X  win->_flags |= _SUBWIN;
X  return(win);
X  } /* subwin */
FRIDAY_NIGHT
echo extracting - options.c
sed 's/^X//' > options.c << 'FRIDAY_NIGHT'
X/****************************************************************/
X/* Idlok(), clearok(), leaveok(), scrollok(), nodelay(), key-	*/
X/* pad(), meta(), cursoff() and curson() routines of the	*/
X/* PCcurses package.						*/
X/*								*/
X/****************************************************************/
X/* This version of curses is based on ncurses, a curses version	*/
X/* originally written by Pavel Curtis at Cornell University.	*/
X/* I have made substantial changes to make it run on IBM PC's,	*/
X/* and therefore consider myself free to make it public domain.	*/
X/*		Bjorn Larsson (...mcvax!enea!infovax!bl)	*/
X/****************************************************************/
X/* 1.0:	Release:					870515	*/
X/****************************************************************/
X
X#include <curses.h>
X#include <curspriv.h>
X
Xstatic bool	hasold = FALSE;		/* for remembering old cursor type */
Xstatic int	oldmode;
X
X/****************************************************************/
X/* Idlok() is used to set  flag for using the terminal insert/	*/
X/* delete line capabilities. This is not relevant for the PC	*/
X/* version of curses, and thus nothing is done.			*/
X/****************************************************************/
X
Xvoid idlok(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  } /* idlok */
X
X/****************************************************************/
X/* Clearok() marks window 'win' to cause screen clearing and	*/
X/* redraw the next time a refresh is done.			*/
X/****************************************************************/
X
Xvoid clearok(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  if (win == curscr)
X    _cursvar.tmpwin->_clear = flag;
X  else
X    win->_clear = flag;
X  } /* clearok */
X
X/****************************************************************/
X/* Leaveok() marks window 'win' to allow the update routines	*/
X/* to leave the hardware cursor where it happens to be at the	*/
X/* end of update. Usually used in combination with cursoff().	*/
X/****************************************************************/
X
Xvoid leaveok(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  win->_leave = flag;
X  } /* leaveok */
X
X/****************************************************************/
X/* Scrollok() marks window 'win' to allow the scrolling region	*/
X/* of it to actually scroll.					*/
X/****************************************************************/
X
Xvoid scrollok(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  win->_scroll = flag;
X  } /* scrollok */
X
X/****************************************************************/
X/* Nodelay() marks the window to make character input non-	*/
X/* waiting, i.e. if there is no character to get, -1 will be	*/
X/* returned.							*/
X/****************************************************************/
X
Xvoid nodelay(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  win->_nodelay = flag;
X  } /* nodelay */
X
X/****************************************************************/
X/* Keypad() marks window 'win' to use the special keypad mode.	*/
X/****************************************************************/
X
Xvoid keypad(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  win->_keypad = flag;
X  } /* keypad */
X
X/****************************************************************/
X/* Meta() allows use of any alternate character set allowed by	*/
X/* the terminal. We always allow this on the PC, so this one	*/
X/* does nothing.						*/
X/****************************************************************/
X
Xvoid meta(win, flag)
X  WINDOW	*win;
X  bool		 flag;
X  {
X  } /* meta */
X
X/****************************************************************/
X/* Cursoff() turns off the hardware cursor.			*/
X/****************************************************************/
X
Xvoid cursoff()
X  {
X  if (!hasold)
X    {
X    oldmode = _cursesgcmode();		/* get old cursor type */
X    hasold = TRUE;
X    }
X  _cursescmode(31,30);			/* turn it off */
X  } /* cursoff */
X
X/****************************************************************/
X/* Curson() turns on the hardware cursor.			*/
X/****************************************************************/
X
Xvoid curson()
X  {
X  if (hasold)
X    {
X    _cursescmode(oldmode >> 8,oldmode);
X    hasold = FALSE;
X    }
X  } /* curson */
FRIDAY_NIGHT
echo extracting - overlay.c
sed 's/^X//' > overlay.c << 'FRIDAY_NIGHT'
X/****************************************************************/
X/* Overlay() and overwrite() functions of the PCcurses package	*/
X/*								*/
X/****************************************************************/
X/* This version of curses is based on ncurses, a curses version	*/
X/* originally written by Pavel Curtis at Cornell University.	*/
X/* I have made substantial changes to make it run on IBM PC's,	*/
X/* and therefore consider myself free to make it public domain.	*/
X/*		Bjorn Larsson (...mcvax!enea!infovax!bl)	*/
X/****************************************************************/
X/* 1.0:	Release:					870515	*/
X/****************************************************************/
X
X#include <curses.h>
X#include <curspriv.h>
X
X/****************************************************************/
X/* Overlay() overwrites 'win1' upon 'win2', with origins alig-	*/
X/* ned. Overlay is transparent; blanks from 'win1' are not	*/
X/* copied to 'win2'.						*/
X/****************************************************************/
X
Xvoid overlay(win1, win2)
X  WINDOW	*win1, *win2;
X  {
X  int		*minchng;
X  int		*maxchng;
X  int		*w1ptr;
X  int		*w2ptr;
X  int		 attrs;
X  int		 col;
X  int		 line;
X  int		 last_line;
X  int		 last_col;
X
X  last_col = min(win1->_maxx, win2->_maxx);
X  last_line = min(win1->_maxy, win2->_maxy);
X  attrs = win2->_attrs & ATR_MSK;
X  minchng = win2->_minchng;
X  maxchng = win2->_maxchng;
X
X  for(line = 0;  line <= last_line;  line++)
X    {
X    register short   fc, lc;
X    w1ptr = win1->_line[line];
X    w2ptr = win2->_line[line];
X    fc = _NO_CHANGE;
X    for(col = 0;  col <= last_col;  col++)
X      {
X      if ((*w1ptr & CHR_MSK) != ' ')
X	{
X	*w2ptr = (*w1ptr & CHR_MSK) | attrs;
X	if (fc == _NO_CHANGE)
X	  fc = col;
X	lc = col;
X	} /* if */
X      w1ptr++;
X      w2ptr++;
X      } /* for */
X
X    if (*minchng == _NO_CHANGE)
X      {
X      *minchng = fc;
X      *maxchng = lc;
X      } /* if */
X    else
X      if (fc != _NO_CHANGE)
X	{
X	if (fc < *minchng)
X	  *minchng = fc;
X	if (lc > *maxchng)
X	  *maxchng = lc;
X	} /* else if */
X    minchng++;
X    maxchng++;
X    } /* for */
X  } /* overlay */
X
X/****************************************************************/
X/* Overwrite() overwrites 'win1' upon 'win2', with origins	*/
X/* aligned. Overwrite is non-transparent; blanks from 'win1'	*/
X/* are copied to 'win2'.					*/
X/****************************************************************/
X
Xvoid	overwrite(win1, win2)
X  WINDOW	*win1, *win2;
X  {
X  int		*minchng;
X  int		*maxchng;
X  int		*w1ptr;
X  int		*w2ptr;
X  int		 attrs;
X  int		 col;
X  int		 line;
X  int		 last_line;
X  int		 last_col;
X
X  last_col = min(win1->_maxx, win2->_maxx);
X  last_line = min(win1->_maxy, win2->_maxy);
X  attrs = win2->_attrs & ATR_MSK;
X  minchng = win2->_minchng;
X  maxchng = win2->_maxchng;
X
X  for(line = 0;  line <= last_line;  line++)
X    {
X    register short   fc, lc;
X
X    w1ptr = win1->_line[line];
X    w2ptr = win2->_line[line];
X    fc = _NO_CHANGE;
X
X    for(col = 0;  col <= last_col;  col++)
X      {
X      if ((*w1ptr & CHR_MSK) != (*w2ptr & CHR_MSK))
X	{
X	*w2ptr = (*w1ptr & CHR_MSK) | attrs;
X
X	if (fc == _NO_CHANGE)
X	  fc = col;
X	lc = col;
X	} /* if */
X
X      w1ptr++;
X      w2ptr++;
X      } /* for */
X
X    if (*minchng == _NO_CHANGE)
X      {
X      *minchng = fc;
X      *maxchng = lc;
X      } /* if */
X    else
X      if (fc != _NO_CHANGE)
X	{
X	if (fc < *minchng)
X	  *minchng = fc;
X	if (lc > *maxchng)
X	  *maxchng = lc;
X	} /* else if */
X    minchng++;
X    maxchng++;
X    } /* for */
X  } /* overwrite */
FRIDAY_NIGHT
echo extracting - prntscan.c
sed 's/^X//' > prntscan.c << 'FRIDAY_NIGHT'
X/****************************************************************/
X/* Printw() and scanw() routines of the PCcurses package	*/
X/*								*/
X/****************************************************************/
X/* This version of curses is based on ncurses, a curses version	*/
X/* originally written by Pavel Curtis at Cornell University.	*/
X/* I have made substantial changes to make it run on IBM PC's,	*/
X/* and therefore consider myself free to make it public domain.	*/
X/*		Bjorn Larsson (...mcvax!enea!infovax!bl)	*/
X/****************************************************************/
X/* 1.0:	Release:					870515	*/
X/****************************************************************/
X
X#include <curses.h>
X#include <curspriv.h>
X
Xstatic	int	pblen();		/* gets length of bufer */
X
X/****************************************************************/
X/*		     IMPLEMENTATION NOTE			*/
X/* These routines make a local copy of their parameter stack,	*/
X/* assuming at most 5 'double' arguments were passed (== 40	*/
X/* bytes == 20 int's == 10 long's == 10-20 pointers {depending	*/
X/* on memorymodel}, etc). This means the invokation of the	*/
X/* routines themself require at least 80 bytes of stack just	*/
X/* for the parameters, and the sprintf() and sscanf() functions	*/
X/* will require more. Therefore, this module should be compiled	*/
X/* with stack checking on to avoid stack overflow errors.	*/
X/****************************************************************/
X
Xstatic	char	printscanbuf[513];	/* buffer used during I/O */
X
X/****************************************************************/
X/* Wprintw(win,fmt,args) does a printf() in window 'win'.	*/
X/****************************************************************/
X
Xint	wprintw(win,fmt,A1,A2,A3,A4,A5)
X  WINDOW	*win;
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;
X  {
X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
X  if (waddstr(win,printscanbuf) == ERR)
X    return(ERR);
X  return(pblen());
X  } /* wprintw */
X
X/****************************************************************/
X/* Printw(fmt,args) does a printf() in stdscr.			*/
X/****************************************************************/
X
Xint	printw(fmt,A1,A2,A3,A4,A5)
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;
X  {
X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
X  if(waddstr(stdscr,printscanbuf) == ERR)
X    return(ERR);
X  return(pblen());
X  } /* printw */
X
X/****************************************************************/
X/* Mvprintw(fmt,args) moves the stdscr cursor to a new posi-	*/
X/* tion, then does a printf() in stdscr.			*/
X/****************************************************************/
X
Xint	mvprintw(y,x,fmt,A1,A2,A3,A4,A5)
X  int		 y;
X  int		 x;
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;
X  {
X  if (wmove(stdscr,y,x) == ERR)
X    return(ERR);
X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
X  if(waddstr(stdscr,printscanbuf) == ERR)
X    return(ERR);
X  return(pblen());
X  } /* mvprintw */
X
X/****************************************************************/
X/* Mvwprintw(win,fmt,args) moves the window 'win's cursor to	*/
X/* a new position, then does a printf() in window 'win'.	*/
X/****************************************************************/
X
Xint	mvwprintw(win,y,x,fmt,A1,A2,A3,A4,A5)
X  WINDOW	*win;
X  int		 y;
X  int		 x;
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;
X  {
X  if (wmove(win,y,x) == ERR)
X    return(ERR);
X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
X  if(waddstr(win,printscanbuf) == ERR)
X    return(ERR);
X  return(pblen());
X  } /* mvwprintw */
X
X/****************************************************************/
X/* Wscanw(win,fmt,args) gets a string via window 'win', then	*/
X/* scans the string using format 'fmt' to extract the values	*/
X/* and put them in the variables pointed to the arguments.	*/
X/****************************************************************/
X
Xint wscanw(win,fmt,A1,A2,A3,A4,A5)
X  WINDOW	*win;
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;		/* really pointers */
X  {
X  wrefresh(win);				/* set cursor */
X  if (wgetstr(win,printscanbuf) == ERR)		/* get string */
X    return(ERR);
X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
X  } /* wscanw */
X
X/****************************************************************/
X/* Scanw(fmt,args) gets a string via stdscr, then scans the	*/
X/* string using format 'fmt' to extract the values and put them	*/
X/* in the variables pointed to the arguments.			*/
X/****************************************************************/
X
Xint scanw(fmt,A1,A2,A3,A4,A5)
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;		/* really pointers */
X  {
X  wrefresh(stdscr);				/* set cursor */
X  if (wgetstr(stdscr,printscanbuf) == ERR)	/* get string */
X    return(ERR);
X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
X  } /* scanw */
X
X/****************************************************************/
X/* Mvscanw(y,x,fmt,args) moves stdscr's cursor to a new posi-	*/
X/* tion, then gets a string via stdscr and scans the string	*/
X/* using format 'fmt' to extract the values and put them in the	*/
X/* variables pointed to the arguments.				*/
X/****************************************************************/
X
Xint mvscanw(y,x,fmt,A1,A2,A3,A4,A5)
X  int		 y;
X  int		 x;
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;		/* really pointers */
X  {
X  if (wmove(stdscr,y,x) == ERR)
X    return(ERR);
X  wrefresh(stdscr);				/* set cursor */
X  if (wgetstr(stdscr,printscanbuf) == ERR)	/* get string */
X    return(ERR);
X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
X  } /* mvscanw */
X
X/****************************************************************/
X/* Mvwscanw(win,y,x,fmt,args) moves window 'win's cursor to a	*/
X/* new position, then gets a string via 'win' and scans the	*/
X/* string using format 'fmt' to extract the values and put them	*/
X/* in the variables pointed to the arguments.			*/
X/****************************************************************/
X
Xint mvwscanw(win,y,x,fmt,A1,A2,A3,A4,A5)
X  WINDOW	*win;
X  int		 y;
X  int		 x;
X  char		*fmt;
X  double	 A1,A2,A3,A4,A5;		/* really pointers */
X  {
X  if (wmove(win,y,x) == ERR)
X    return(ERR);
X  wrefresh(win);				/* set cursor */
X  if (wgetstr(win,printscanbuf) == ERR)		/* get string */
X    return(ERR);
X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
X  } /* mvwscanw */
X
X/****************************************************************/
X/* Pblen() returns the length of the string in printscanbuf.	*/
X/****************************************************************/
X
Xstatic	int pblen()
X  {
X  char *p = printscanbuf;
X  
X  while(*p++);
X  return(p-printscanbuf-1);
X  } /* plben */
FRIDAY_NIGHT
echo pccurses.sh.3 completed!