Article 2741 of comp.sources.unix:
Path: nntpd.lkg.dec.com!lead.zk3.dec.com!crl.dec.com!crl.dec.com!bloom-beacon.mit.edu!usc!howland.reston.ans.net!newsfeed.internetmci.com!in1.uu.net!vixie!vixie!not-for-mail
From: glover@credit.erin.utoronto.ca (Mike Glover)
Newsgroups: comp.sources.unix
Subject: v29i081: cdk - curses development kit, V4.6.0, Part08/09
Date: 12 Jan 1996 16:31:01 -0800
Organization: Vixie Enterprises
Lines: 1954
Sender: vixie@vix.com
Approved: vixie@gw.home.vix.com
Message-ID: <4d6ug5$90t@gw.home.vix.com>
References: <1.821493023.9103@gw.home.vix.com>
NNTP-Posting-Host: gw.home.vix.com

Submitted-By: glover@credit.erin.utoronto.ca (Mike Glover)
Posting-Number: Volume 29, Issue 81
Archive-Name: cdk-4.6.0/part08

#!/bin/sh
# This is `part08' (part 8 of a multipart archive).
# Do not concatenate these parts, unpack them in order with `/bin/sh'.
# File `cdk-4.6.0/swindow.c' is being continued...
#
touch -am 1231235999 $$.touch >/dev/null 2>&1
if test ! -f 1231235999 && test -f $$.touch; then
  shar_touch=touch
else
  shar_touch=:
  echo
  echo 'WARNING: not restoring timestamps.  Consider getting and'
  echo "installing GNU \`touch', distributed in GNU File Utilities..."
  echo
fi
rm -f 1231235999 $$.touch
#
if test ! -r _sharseq.tmp; then
  echo 'Please unpack part 1 first!'
  exit 1
fi
shar_sequence=`cat _sharseq.tmp`
if test "$shar_sequence" != 8; then
  echo "Please unpack part $shar_sequence next!"
  exit 1
fi
if test ! -f _sharnew.tmp; then
  echo 'x - still skipping cdk-4.6.0/swindow.c'
else
  echo 'x - continuing file cdk-4.6.0/swindow.c'
  sed 's/^X//' << 'SHAR_EOF' >> '_sharuue.tmp' &&
XM=VEN9&]W+3YL969T0VAA<B`]('-W:6YD;W<M/FUA>$QE9G1#:&%R("L@,3L*
XM("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@("`@(&-A<V4@
XM)V<G(#H@8V%S92`G,2<@.@H@("`@("`@("`@("`@("`@('-W:6YD;W<M/F-U
XM<G)E;G14;W`@/2`P.PH@("`@("`@("`@("`@("`@(&)R96%K.PH@("`*("`@
XM("`@("`@("`@8V%S92`G1R<@.B`*("`@("`@("`@("`@("`@("!S=VEN9&]W
XM+3YC=7)R96YT5&]P(#T@<W=I;F1O=RT^;6%X5&]P3&EN93L*("`@("`@("`@
XM("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@("`@(&-A<V4@)TPG(#H*("`@
XM("`@("`@("`@("`@("!X(#T@*&EN="D@*"`H<W=I;F1O=RT^:71E;4-O=6YT
XM("L@<W=I;F1O=RT^8W5R<F5N=%1O<"D@+R`R*3L*("`@("`@("`@("`@("`@
XM("!I9B`H('@@/"!S=VEN9&]W+3YM87A4;W!,:6YE*0H@("`@("`@("`@("`@
XM("`@('L*("`@("`@("`@("`@("`@("`@("!S=VEN9&]W+3YC=7)R96YT5&]P
XM(#T@>#L*("`@("`@("`@("`@("`@("!]"B`@("`@("`@("`@("`@("`@96QS
XM90H@("`@("`@("`@("`@("`@('L*("`@("`@("`@("`@("`@("`@("!"965P
XM*"D["B`@("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&)R96%K
XM.PH@("`*("`@("`@("`@("`@8V%S92`G;"<@.@H@("`@("`@("`@("`@("`@
XM('@@/2`H:6YT*2`H<W=I;F1O=RT^8W5R<F5N=%1O<"`O(#(I.PH@("`@("`@
XM("`@("`@("`@(&EF("@@>"`^/2`P("D*("`@("`@("`@("`@("`@("!["B`@
XM("`@("`@("`@("`@("`@("`@<W=I;F1O=RT^8W5R<F5N=%1O<"`]('@["B`@
XM("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&5L<V4*("`@("`@
XM("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@0F5E<"@I.PH@("`@
XM("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@
XM("`@("`@("`@(&-A<V4@2T597U)%5%523B`Z(&-A<V4@2T597U1!0B`Z(&-A
XM<V4@0T1+7TY%6%0@.@H@("`@("`@("`@("`@("`@(')E='5R;CL*("`@("`@
XM("`@("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@("`@(&-A<V4@0T1+7U)%
XM1E)%4T@@.@H@("`@("`@("`@("`@("`@(')E9G)E<VA#1$M38W)E96X@*'-W
XM:6YD;W<M/G-C<F5E;BD["B`@("`@("`@("`@("`@("`@8G)E86L["B`@(`H@
XM("`@("`@("`@("!D969A=6QT(#H*("`@("`@("`@("`@("`@("!B<F5A:SL*
XM("`@("`@("`@?0H@("`@("!]"@H@("`@("`O*B!2961R87<@=&AE(&QI<W0)
XM"0D)"0DJ+PH@("`@("!F;W(@*'@],#L@>"`\('-W:6YD;W<M/G9I97=3:7IE
XM.R!X*RLI"B`@("`@('L*("`@("`@("`@+RH@16UP='D@=&AE(&QI;F4N"0D)
XM"0D)*B\*("`@("`@("`@=W)I=&5#:&%R("AS=VEN9&]W+3YW:6XL(#$L('-W
XM:6YD;W<M/G1I=&QE861J*W@L(&5M<'1Y4W1R:6YG+"!(3U))6D].5$%,+"`Q
XM+"!S=VEN9&]W+3YB;WA7:61T:"TQ*3L*"B`@("`@("`@("\J($1R87<@:6X@
XM=&AE(&QI;F4N"0D)"0D)*B\*("`@("`@("`@:68@*'-W:6YD;W<M/FEN9F];
XM>%T@(3T@*&-H='EP92`J*4Y53$PI"B`@("`@("`@('L*("`@("`@("`@("`@
XM=W)I=&5#:'1Y<&4@*'-W:6YD;W<M/G=I;BP*"0D)<W=I;F1O=RT^:6YF;W!O
XM<UMX*W-W:6YD;W<M/F-U<G)E;G14;W!=+`H)"0ES=VEN9&]W+3YT:71L96%D
XM:B`K('@L"@D)"7-W:6YD;W<M/FEN9F];>"MS=VEN9&]W+3YC=7)R96YT5&]P
XM72P*"0D)2$]225I/3E1!3"P*"0D)<W=I;F1O=RT^;&5F=$-H87(L"@D)"7-W
XM:6YD;W<M/FEN9F]L96Y;>"MS=VEN9&]W+3YC=7)R96YT5&]P72D["B`@("`@
XM("`@('T*("`@("`@?0H@("`@("!W<F5F<F5S:"`H<W=I;F1O=RT^=VEN*3L*
XM("`@?0I]"@HO*@H@*B!4:&ES(&9U;F-T:6]N(&1R87=S('1H92!S=VEN9&]W
XM('=I;F1O=R!W:61G970N"B`J+PIV;VED(&1R87=#1$M3=VEN9&]W("A#1$M3
XM5TE.1$]7("IS=VEN9&]W+"!B;V]L96%N($)O>"D*>PH@("`O*B!$96-L87)E
XM(&QO8V%L('9A<FEA8FQE<RX)"0D)"0DJ+PH@("!I;G0@=&5M<`D)/2`P.PH@
XM("!I;G0@>`D)/2`P.PH*("`@+RH@2V5E<"!T:&4@8F]X(&EN9F]R;6%T:6]N
XM+@D)"0D)"2HO"B`@('-W:6YD;W<M/F)O>`D]($)O>#L*"B`@("\J($5R87-E
XM('1H92!O;&0@;V)J96-T+BXN"0D)"0D)*B\*("`@97)A<V5#1$M3=VEN9&]W
XM("AS=VEN9&]W*3L*"B`@("\J($1O('=E(&YE960@=&\@9')A=R!I;B!T:&4@
XM<VAA9&]W+@D)"0D)*B\*("`@:68@*'-W:6YD;W<M/G-H861O=RD*("`@>PH@
XM("`@("!D<F%W4VAA9&]W("AS=VEN9&]W+3YS:&%D;W=W:6XI.PH@("!]"@H@
XM("`O*B!$<F%W(&EN('1H92!T:71L92!I9B!T:&5R92!I<R!O;F4)"0D)"2HO
XM"B`@(&EF("AS=VEN9&]W+3YT:71L92`A/2`H8VAT>7!E("HI3E5,3"D*("`@
XM>PH@("`@("!W<FET94-H='EP92`H<W=I;F1O=RT^=VEN+"!S=VEN9&]W+3YT
XM:71L97!O<RP@,2P@<W=I;F1O=RT^=&ET;&4L($A/4DE:3TY404PL(#`L('-W
XM:6YD;W<M/G1I=&QE;&5N*3L*("`@?0H*("`@+RH@1')A=R!I;B!E86-H(&ET
XM96T@=6YT:6P@=V4@8V%N)W0@86YY;6]R92X)"0D)*B\*("`@=&5M<"`]("AS
XM=VEN9&]W+3YI=&5M0V]U;G0@/"!S=VEN9&]W+3YV:65W4VEZ92`_('-W:6YD
XM;W<M/FET96U#;W5N="`Z('-W:6YD;W<M/G9I97=3:7IE*3L*("`@9F]R("AX
XM/3`[('@@/"!T96UP.R!X*RLI"B`@('L*("`@("`@=W)I=&5#:'1Y<&4@*'-W
XM:6YD;W<M/G=I;BP*"0D)<W=I;F1O=RT^:6YF;W!O<UMX*W-W:6YD;W<M/F-U
XM<G)E;G14;W!=+`H)"0ES=VEN9&]W+3YT:71L96%D:BMX+`H)"0ES=VEN9&]W
XM+3YI;F9O6W@K<W=I;F1O=RT^8W5R<F5N=%1O<%TL"@D)"4A/4DE:3TY404PL
XM(`H)"0ES=VEN9&]W+3YL969T0VAA<BP*"0D)<W=I;F1O=RT^:6YF;VQE;EMX
XM*W-W:6YD;W<M/F-U<G)E;G14;W!=*3L*("`@?0H*("`@+RH@0F]X(&ET(&EF
XM(&YE961E9`D)"0D)"0DJ+PH@("!I9B`H0F]X*0H@("!["B`@("`@(&)O>"`H
XM<W=I;F1O=RT^=VEN+"!!0U-?5DQ)3D4L($%#4U](3$E.12D["B`@('T*("`@
XM=W)E9G)E<V@@*'-W:6YD;W<M/G=I;BD["GT*"B\J"B`J(%1H:7,@9G5N8W1I
XM;VX@9&5S=')O>7,@=&AE('-C<F]L;&EN9R!W:6YD;W<@=VED9V5T+@H@*B\*
XM=F]I9"!D97-T<F]Y0T1+4W=I;F1O=R`H0T1+4U=)3D1/5R`J<W=I;F1O=RD*
XM>PH@("`O*B!$96-L87)E(&QO8V%L('9A<FEA8FQE<RX)"0D)"0DJ+PH@("!I
XM;G0@>`D](#`["@H@("`O*B!%<F%S92!T:&4@;V)J96-T+@D)"0D)"0DJ+PH@
XM("!E<F%S94-$2U-W:6YD;W<@*'-W:6YD;W<I.PH*("`@+RH@0VQE87(@;W5T
XM('1H92!C:&%R86-T97(@<&]I;G1E<G,N"0D)"0DJ+PH@("!F;W(@*'@],#L@
XM>"`\('-W:6YD;W<M/FET96U#;W5N="TQ.R!X*RLI"B`@('L*("`@("`@9G)E
XM94-H='EP92`H<W=I;F1O=RT^:6YF;UMX72D["B`@('T*("`@9G)E94-H='EP
XM92`H<W=I;F1O=RT^=&ET;&4I.PH*("`@+RH@1&5L971E('1H92!W:6YD;W=S
XM+@D)"0D)"2HO"B`@(&1E;'=I;B`H<W=I;F1O=RT^=VEN*3L*("`@:68@*'-W
XM:6YD;W<M/G-H861O=RD*("`@>PH@("`@("!D96QW:6X@*'-W:6YD;W<M/G-H
XM861O=W=I;BD["B`@('T*"B`@("\J(%5N<F5G:7-T97(@=&AI<R!O8FIE8W0N
XM"0D)"0D)*B\*("`@=6YR96=I<W1E<D-$2T]B:F5C="`H=E-724Y$3U<L('-W
XM:6YD;W<I.PH*("`@+RH@1FEN:7-H(&-L96%N:6YG('5P+@D)"0D)"2HO"B`@
XM(&9R964@*'-W:6YD;W<I.PI]"@HO*@H@*B!4:&ES(&9U;F-T:6]N(&5R87-E
XM<R!T:&4@<V-R;VQL:6YG('=I;F1O=R!W:61G970N"B`J+PIV;VED(&5R87-E
XM0T1+4W=I;F1O=R`H0T1+4U=)3D1/5R`J<W=I;F1O=RD*>PH@("!W97)A<V4@
XM*'-W:6YD;W<M/G=I;BD["B`@('=R969R97-H("AS=VEN9&]W+3YW:6XI.PH@
XM("!I9B`H<W=I;F1O=RT^<VAA9&]W*0H@("!["B`@("`@('=E<F%S92`H<W=I
XM;F1O=RT^<VAA9&]W=VEN*3L*("`@("`@=W)E9G)E<V@@*'-W:6YD;W<M/G-H
XM861O=W=I;BD["B`@('T*?0H*+RH*("H@5&AI<R!F=6YC=&EO;B!R971U<FYS
XM('1H92!C=7)R96YT(&EN9F]R;6%T:6]N(&EN('1H92!S=VEN9&]W+@H@*B\*
XM=F]I9"!G971#1$M3=VEN9&]W("A#1$M35TE.1$]7("IS=VEN9&]W+"!C:&%R
XM("HJ:6YF;RD*>PH@("!I;G0@>#L*("`@9F]R("AX/3`[('@@/"!S=VEN9&]W
XM+3YI=&5M0V]U;G0[('@K*RD*("`@>PH@("`@("!I;F9O6WA=(#T@8VAT>7!E
XA,D-H87(@*'-W:6YD;W<M/FEN9F];>%TI.PH@("!]"GT*
X`
Xend
SHAR_EOF
  echo 'File cdk-4.6.0/swindow.c is complete' &&
  echo 'uudecoding file cdk-4.6.0/swindow.c' &&
  uudecode _sharuue.tmp < _sharuue.tmp && rm -f _sharuue.tmp &&
  $shar_touch -am 1229121195 'cdk-4.6.0/swindow.c' &&
  chmod 0400 'cdk-4.6.0/swindow.c' ||
  echo 'restore of cdk-4.6.0/swindow.c failed'
  shar_count="`wc -c < 'cdk-4.6.0/swindow.c'`"
  test 14208 -eq "$shar_count" ||
    echo "cdk-4.6.0/swindow.c: original size 14208, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/template.c ==============
if test -f 'cdk-4.6.0/template.c' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/template.c (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/template.c (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/template.c' &&
X#include "cdk.h"
X
X/*
X * $Author: mikeg $
X * $Date: 1995/12/21 21:17:18 $
X * $Revision: 1.25 $
X */
X
X/*
X * This creates a template widget.
X */
XCDKTEMPLATE *newCDKTemplate (CDKSCREEN *cdkscreen, int xplace, int yplace, int lplace, char *label, char *plate, char *overlay, TEMPLATECB callBackFn, boolean box, boolean shadow)
X{
X   /* Set up some variables						*/
X   CDKTEMPLATE *template	= (CDKTEMPLATE *)malloc (sizeof (CDKTEMPLATE));
X   int boxwidth			= 0;
X   int boxheight		= 3;
X   int xpos			= xplace;
X   int ypos			= yplace;
X   int labelxoffset		= 0;
X   int labelyoffset		= 0;
X   int fieldxoffset		= 0;
X   int fieldyoffset		= 0;
X   int fieldwidth		= strlen (plate) + 2;
X   int junk			= 0;
X   char *plainLabel;
X   
X   /* Translate the char * label to a chtype *				*/
X   template->label	= char2Chtype (label, &template->labellen, &junk);
X   plainLabel		= chtype2Char (template->label);
X
X   /* Translate the char * overlay to a chtype *			*/
X   if (overlay != (char *)NULL)
X   {
X      template->overlay		= char2Chtype (overlay, &template->overlaylen, &junk);
X      template->fieldattr	= template->overlay[0] & A_ATTRIBUTES;
X   }
X   else
X   {
X      template->overlay		= (chtype *)NULL;
X      template->overlaylen	= 0;
X      template->fieldattr	= A_NORMAL;
X   }
X   
X   /* Align the x and y offsets for the label.				*/
X   alignlabel (plainLabel, lplace, fieldwidth, &boxwidth, &boxheight, &labelxoffset, &labelyoffset, &fieldxoffset, &fieldyoffset);
X   freeChar (plainLabel);
X
X   /* Rejustify the x and y positions if we need to.			*/
X   alignxy (cdkscreen->window, &xpos, &ypos, boxwidth, boxheight);
X
X   /* Make the template window						*/
X   template->win		= newwin (boxheight, boxwidth, ypos, xpos);
X   
X   /* Is the template window NULL??					*/
X   if (template->win == (WINDOW *)NULL)
X   {
X      /* Clean up any used memory.					*/
X      freeChtype (template->label);
X      freeChtype (template->overlay);
X      free (template);
X
X      /* Return a NULL pointer.						*/
X      return ( (CDKTEMPLATE *)NULL );
X   }
X
X   /* Make the field window.						*/
X   template->field		= subwin (cdkscreen->window, 1, fieldwidth, ypos+fieldyoffset, xpos+fieldxoffset);
X   template->labelwin		= subwin (cdkscreen->window, 1, strlen(label)+1, ypos+labelyoffset, xpos+labelxoffset);
X   keypad (template->field, TRUE);
X
X   /* Set up the info field.						*/
X   template->info		= (char *)malloc (sizeof(char) * ((int)strlen(plate)+4));
X   cleanChar (template->info, strlen(plate)+4, '\0');
X
X   /* Set up the rest of the structure 					*/
X   template->parent		= cdkscreen->window;
X   template->shadowwin		= (WINDOW *)NULL;
X   template->plate		= copyChar (plate);
X   template->fieldwidth		= fieldwidth;
X   template->platePos		= 0;
X   template->screenPos		= 0;
X   template->infoPos		= 0;
X   template->box		= box;
X   template->shadow		= shadow;
X   template->callbackfn		= (void *)callBackFn;
X
X   /* Do we need to create a shaodw???					*/
X   if (shadow)
X   {
X      template->shadowwin	= newwin (boxheight, boxwidth, ypos+1, xpos+1);
X   }
X
X   /* Clean the key bindings.						*/
X   cleanCDKObjectBindings (vTEMPLATE, template);
X
X   /* Register this baby.               				*/
X   registerCDKObject (cdkscreen, vTEMPLATE, template);
X
X   /* Return the pointer to the structure				*/
X   return (template);
X}
X
X/*
X * This actually manages the template widget...
X */
Xchar *activateCDKTemplate (CDKTEMPLATE *template)
X{
X   /* Declare local variables.						*/
X   int charcount	= 0;
X   int filler		= 0;
X   int infolen		= 0;
X   chtype input;
X
X   /* Draw the object.							*/
X   drawCDKTemplate (template, template->box);
X
X   /* If there is info already, adjust the variables...			*/
X   if (template->info != (char *)NULL)
X   {
X      infolen		= strlen (template->info);
X      while (charcount++ < infolen)
X      {
X         if (
X		template->plate[charcount] != '#' &&
X		template->plate[charcount] != 'A' &&
X		template->plate[charcount] != 'C' &&
X		template->plate[charcount] != 'c' &&
X		template->plate[charcount] != 'M' &&
X		template->plate[charcount] != 'X' &&
X		template->plate[charcount] != 'x')
X         {
X            filler++;
X         }
X      }
X
X      /* Now set the variables.						*/
X      template->screenPos	= filler + infolen;
X      template->platePos	= filler + infolen;
X      template->infoPos		= infolen;
X   }
X   else
X   {
X      /* Now set the variables.						*/
X      template->screenPos	= 0;
X      template->platePos	= 0;
X      template->infoPos		= 0;
X   }
X   wmove (template->field, 0, template->screenPos);
X   wrefresh (template->field);
X
X   /* Do this forever...						*/
X   for (;;)
X   {
X      /* Get the input from the user.           			*/
X      input	= wgetch (template->field);
X
X      /* Check a predefined binding...          			*/
X      if ( ! checkCDKObjectBind (vTEMPLATE, template, input) )
X      {
X         switch (input)
X         {
X            case KEY_LEFT : case KEY_RIGHT : case KEY_UP : case KEY_DOWN :
X               Beep();
X            break;
X
X            case KEY_RETURN : case KEY_TAB : case CDK_NEXT :
X                 return (template->info);
X                 break;
X   
X            case CDK_REFRESH :
X                 refreshCDKScreen (template->screen);
X                 break;
X            
X            default :
X                 ((TEMPLATECB)template->callbackfn)(template, input);
X                 break;
X         }
X      }
X   }
X}
X
X/*
X * This is the standard callback proc for the template.
X */
Xvoid CDKTemplateCallBack (CDKTEMPLATE *template, chtype input)
X{
X   /* Check the character input.					*/
X   if (input == DELETE || input == KEY_BACKSPACE)
X   {
X      /* Make sure we don't go out of bounds.				*/
X      if (template->platePos == 0)
X      {
X         Beep();
X         return;
X      }
X
X      /* Remove it and redisplay....					*/
X      template->info[--template->infoPos] = '\0';
X      template->platePos--;
X      template->screenPos--;
X
X      /* Move the cursor						*/
X      while (	template->plate[template->platePos] != '#' &&
X		template->plate[template->platePos] != 'A' &&
X		template->plate[template->platePos] != 'C' &&
X		template->plate[template->platePos] != 'c' &&
X		template->plate[template->platePos] != 'M' &&
X		template->plate[template->platePos] != 'X' &&
X		template->plate[template->platePos] != 'x' &&
X		template->platePos > 0)
X      { 
X         template->platePos--;
X         template->screenPos--;
X      }
X      mvwaddch (template->field, 0, template->screenPos, template->overlay[template->platePos] | template->fieldattr);
X      wmove (template->field, 0, template->screenPos);
X   }
X   else
X   {
X      /* To be safe, we should cast the chtype to a char		*/
X      char newchar	= (char)input;
X
X      /* Make sure we don't go out of bounds.				*/
X      if (template->platePos >= template->fieldwidth)
X      {
X         Beep();
X         return;
X      }
X
X      /* We should check to see if what they typed in matches		*/
X      /* what the plate states.						*/
X      if (	isdigit(newchar) && ( \
X		template->plate[template->platePos] == 'A' || \
X		template->plate[template->platePos] == 'C' || \
X		template->plate[template->platePos] == 'c') )
X      {
X         Beep();
X         return;
X      }
X      if (	!isdigit(newchar) && template->plate[template->platePos] == '#' )
X      {
X         Beep();
X         return;
X      }
X
X      /* Do we need to convert the case???				*/
X      if ( template->plate[template->platePos] == 'C' || template->plate[template->platePos] == 'X')
X      {
X         newchar	= toupper ( (char)input );
X      }
X      else if ( template->plate[template->platePos] == 'c' || template->plate[template->platePos] == 'x')
X      {
X         newchar	= tolower ( (char)input );
X      }
X
X      /* Add it and redisplay....					*/
X      template->info[template->infoPos++]	= newchar;
X      template->info[template->infoPos]		= '\0';
X      mvwaddch (template->field, 0, template->screenPos, newchar | template->fieldattr);
X      template->platePos++;
X      template->screenPos++;
X
X      /* Move the cursor						*/
X      while (	template->plate[template->platePos] != '#' &&
X		template->plate[template->platePos] != 'A' &&
X		template->plate[template->platePos] != 'C' &&
X		template->plate[template->platePos] != 'c' &&
X		template->plate[template->platePos] != 'M' &&
X		template->plate[template->platePos] != 'X' &&
X		template->plate[template->platePos] != 'x'  &&
X		template->platePos < template->fieldwidth )
X      {
X         template->platePos++;
X         template->screenPos++;
X      }
X      wmove (template->field, 0, template->screenPos);
X      wrefresh (template->field);
X   }
X}
X
X/*
X * This takes the overlay and the info, and mixes the two, for a
X * 'mixed' character string...
X */
Xchar *mixCDKTemplate (CDKTEMPLATE *template)
X{
X   /* Reconstruct the info.						*/
X   char *mixedString	= (char *)NULL;
X   char *originalString	= (char *)NULL;
X   int infolen		= 0;
X   int x		= 0;
X   int pos		= 0;
X
X   /* Get the chtype * overlay pointer and convert it to a char *	*/
X   originalString = chtype2Char (template->overlay);
X   infolen = strlen (originalString);
X   
X   /* Create a char * pointer.						*/
X   mixedString		= (char *)malloc (sizeof(char) * (infolen+3));
X   cleanChar (mixedString, infolen+3, '\0');
X
X   /* Start copying.							*/
X   while (pos < infolen)
X   {
X      if (	template->plate[x] == '#' || \
X		template->plate[x] == 'A' || \
X		template->plate[x] == 'C' || \
X		template->plate[x] == 'c' || \
X		template->plate[x] == 'M' || \
X		template->plate[x] == 'X' || \
X		template->plate[x] == 'x')
X      {
X         mixedString[x++]	= template->info[pos++];
X      }
X      else
X      {
X         mixedString[x]		= originalString[x];
X         x++;
X      }
X   }
X
X   /* Clean up any memory.						*/
X   freeChar (originalString);
X
X   /* Return the new string.						*/
X   return (mixedString);
X}
X
X/*
X * This takes a mixed string and returns a non-mixed string.
X */
Xchar *unmixCDKTemplate (CDKTEMPLATE *template, char *info)
X{
X   /* Reconstruct the info.						*/
X   char *unmixedString	= (char *)NULL;
X   int infolen		= strlen (info);
X   int x		= 0;
X   int pos		= 0;
X
X   /* Create a char * pointer.						*/
X   unmixedString	= (char *)malloc (sizeof(char) * (infolen+2));
X   cleanChar (unmixedString, infolen+2, '\0');
X
X   /* Start copying.							*/
X   while (pos < infolen)
X   {
X      if (	template->plate[pos] == '#' || \
X		template->plate[pos] == 'A' || \
X		template->plate[pos] == 'C' || \
X		template->plate[pos] == 'c' || \
X		template->plate[pos] == 'M' || \
X		template->plate[pos] == 'X' || \
X		template->plate[pos] == 'x')
X      {
X         unmixedString[x++] = info[pos++];
X      }
X      else
X      {
X         pos++;
X      }
X   }
X
X   /* Return the new string.						*/
X   return (unmixedString);
X}
X
X/*
X * This function draws
X */
Xvoid drawCDKTemplate (CDKTEMPLATE *template, boolean Box)
X{
X   /* Declare local variables.						*/
X   int x	= 0;
X
X   /* Keep the box information.						*/
X   template->box	= Box;
X
X   /* Erase the old object...						*/
X   eraseCDKTemplate (template);
X
X   /* Do we need to draw the shadow.					*/
X   if (template->shadow)
X   {
X      drawShadow (template->shadowwin);
X   }
X
X   /* Box it if needed							*/
X   if (Box)
X   {
X      box (template->win, ACS_VLINE, ACS_HLINE);
X   }
X   wrefresh (template->win);
X
X   /* Draw in the label and the entry object.				*/
X   writeChtype (template->labelwin, 0, 0, template->label, HORIZONTAL, 0, template->labellen);
X   wrefresh (template->labelwin);
X
X   /* Draw in the template...						*/
X   if (template->overlay != (chtype *)NULL)
X   {
X      writeChtype (template->field, 0, 0, template->overlay, HORIZONTAL, 0, template->overlaylen);
X   }
X
X   if (template->info != (char *) NULL)
X   {
X      int infolen	= strlen (template->info);
X      int pos	= 0;
X      for (x=0; x < template->fieldwidth; x++)
X      {
X         if ((	template->plate[x] == '#' ||
X			template->plate[x] == 'A' ||
X			template->plate[x] == 'C' ||
X			template->plate[x] == 'c' ||
X			template->plate[x] == 'M' ||
X			template->plate[x] == 'X' ||
X			template->plate[x] == 'x') &&
X			pos < infolen)
X         {
X            mvwaddch (template->field, 0, x, template->info[pos++] );
X         }
X      }
X      wmove (template->field, 0, infolen);
X   }
X   wrefresh (template->field);
X}
X
X/*
X * This function destroys
X */
Xvoid destroyCDKTemplate (CDKTEMPLATE *template)
X{
X   /* Erase the object.							*/
X   eraseCDKTemplate (template);
X
X   /* Clear out the character pointers.					*/
X   freeChtype (template->label);
X   freeChtype (template->overlay);
X   freeChar (template->plate);
X   freeChar (template->info);
X
X   /* Delete the windows.						*/
X   delwin (template->win);
X   delwin (template->field);
X   delwin (template->labelwin);
X   if (template->shadow)
X   {
X      delwin (template->shadowwin);
X   }
X
X   /* Unregister this object.						*/
X   unregisterCDKObject (vTEMPLATE, template);
X
X   /* Finish cleaning up.						*/
X   free (template);
X}
X
X/*
X * This function erases
X */
Xvoid eraseCDKTemplate (CDKTEMPLATE *template)
X{
X   werase (template->field);
X   werase (template->labelwin);
X   werase (template->win);
X   wrefresh (template->win);
X   if (template->shadow)
X   {
X      werase (template->shadowwin);
X      wrefresh (template->shadowwin);
X   }
X}
X
X/*
X * This function sets the value given to the template.
X */
Xvoid setCDKTemplate (CDKTEMPLATE *template, char *newValue, boolean box)
X{
X   /* Declare local variables.						*/
X   int len		= 0;
X   int copychars	= 0;
X
X   /* Keep some variables.						*/
X   template->box	= box;
X
X   /* Just to be sure, if lets make sure the new value isn't NULL.	*/
X   if (newValue == (char *)NULL)
X   { 
X      /* Then we want to just erase the old value.			*/
X      cleanChar (template->info, template->fieldwidth, '\0');
X      return;
X   }
X
X   /* Determine how many characters we need to copy.			*/
X   len		= strlen (newValue);
X   copychars	= (len < template->fieldwidth ? len : template->fieldwidth);
X
X   /* OK, erase the old value, and copy in the new value.		*/
X   cleanChar (template->info, template->fieldwidth, '\0');
X   strncpy (template->info, newValue, copychars);
X}
X
X/*
X * This erases the information in the template widget.
X */
Xvoid cleanCDKTemplate (CDKTEMPLATE *template)
X{
X   cleanChar (template->info, template->fieldwidth, '\0');
X}
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/template.c' &&
  chmod 0400 'cdk-4.6.0/template.c' ||
  echo 'restore of cdk-4.6.0/template.c failed'
  shar_count="`wc -c < 'cdk-4.6.0/template.c'`"
  test 14153 -eq "$shar_count" ||
    echo "cdk-4.6.0/template.c: original size 14153, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/viewer.c ==============
if test -f 'cdk-4.6.0/viewer.c' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/viewer.c (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/viewer.c (binary)'
  sed 's/^X//' << 'SHAR_EOF' > _sharuue.tmp &&
Xbegin 600 cdk-4.6.0/viewer.c
XM(VEN8VQU9&4@(F-D:RYH(@H*+RH*("H@)$%U=&AO<CH@9VQO=F5R("0*("H@
XM)$1A=&4Z(#$Y.34O,3(O,CD@,3@Z-#DZ,S4@)`H@*B`D4F5V:7-I;VXZ(#$N
XM-#8@)`H@*B\*"B\J($UA:V4@;&]C86P@9VQO8F%L('9A<G,N"0D)"0D)*B\*
XM(V1E9FEN90D)1$]73@D),`HC9&5F:6YE"0E54`D),0IS=&%T:6,@8VAA<B`J
XM"5-E87)C:%!A='1E<FX)/2`H8VAA<B`J*4Y53$P["FEN=`D)4V5A<F-H1&ER
XM96-T:6]N"3T@1$]73CL*"B\J($1E8VQA<F4@;&]C86P@9G5N8W1I;VYS+B!4
XM:&ES(&MI;F1A(&UA:V5S("=E;2`G<')I=F%T92<)"2HO"FEN="!S96%R8VA&
XM;W)7;W)D("A#1$M6245715(@*G9I97=E<BP@8VAA<B`J<&%T=&5R;BP@:6YT
XM(&1I<F5C=&EO;BD["FEN="!J=6UP5&],:6YE("A#1$M6245715(@*G9I97=E
XM<BD["G9O:60@<&]P57!,86)E;"`H0T1+5DE%5T52("IV:65W97(L(&-H87(@
XM*FUE<V<I.PIV;VED(&=E=$%N9%-T;W)E4&%T=&5R;B`H0T1+4T-2145.("IS
XM8W)E96XL(&EN="!W:61T:"D["@HO*@H@*B!4:&ES(&9U;F-T:6]N(&-R96%T
XM97,@82!N97<@=FEE=V5R(&]B:F5C="X*("HO"D-$2U9)15=%4B`J;F5W0T1+
XM5FEE=V5R("A#1$M30U)%14X@*F-D:W-C<F5E;BP@:6YT('AP;&%C92P@:6YT
XM('EP;&%C92P@:6YT(&AE:6=H="P@:6YT('=I9'1H+"!C:&%R("HJ8G5T=&]N
XM<RP@:6YT(&)U='1O;D-O=6YT+"!B;V]L96%N(&)O>"P@8F]O;&5A;B!S:&%D
XM;W<I"GL*("`@+RH@1&5C;&%R92!L;V-A;"!V87)I86)L97,N"0D)"0D)*B\*
XM("`@0T1+5DE%5T52("IV:65W97()/2`H0T1+5DE%5T52("HI;6%L;&]C("AS
XM:7IE;V8@*$-$2U9)15=%4BDI.PH@("!I;G0@8F]X5VED=&@)"3T@=VED=&@[
XM"B`@(&EN="!B;WA(96EG:'0)/2!H96EG:'0@*R`S.PH@("!I;G0@>'!O<PD)
XM/2!X<&QA8V4["B`@(&EN="!Y<&]S"0D]('EP;&%C93L*("`@:6YT(&)U='1O
XM;E=I9'1H"3T@,#L*("`@:6YT(&)U='1O;D%D:@D](#`["B`@(&EN="!B=71T
XM;VY0;W,)/2`Q.PH@("!I;G0@>`D)/2`P.PH*("`@+RH@4F5J=7-T:69Y('1H
XM92!X(&%N9"!Y('!O<VET:6]N<R!I9B!W92!N965D('1O+@D)"2HO"B`@(&%L
XM:6=N>'D@*&-D:W-C<F5E;BT^=VEN9&]W+"`F>'!O<RP@)GEP;W,L(&)O>%=I
XM9'1H+"!B;WA(96EG:'0I.PH*("`@+RH@36%K92!T:&4@=FEE=V5R('=I;F1O
XM=PD)"0D)"2HO"B`@('9I97=E<BT^=VEN"0D](&YE=W=I;B`H8F]X2&5I9VAT
XM+"!B;WA7:61T:"LQ+"!Y<&]S+"!X<&]S*3L*"B`@("\J($ES('1H92!W:6YD
XM;W<@3E5,3#\)"0D)"0DJ+PH@("!I9B`H=FEE=V5R+3YW:6X@/3T@*%=)3D1/
XM5R`J*4Y53$PI"B`@('L*("`@("`@+RH@0VQE86X@=7`@86YY('5S960@;65M
XM;W)Y+@D)"0D)*B\*("`@("`@9G)E92`H=FEE=V5R*3L*"B`@("`@("\J(%)E
XM='5R;B!A($Y53$P@<&]I;G1E<BX)"0D)"0DJ+PH@("`@("!R971U<FX@*"`H
XM0T1+5DE%5T52("HI3E5,3"`I.PH@("!]"@H@("`O*B!4=7)N('1H92!K97EP
XM860@;VX@9F]R('1H92!V:65W97(N"0D)"2HO"B`@(&ME>7!A9"`H=FEE=V5R
XM+3YW:6XL(%12544I.PH*("`@+RH@0W)E871E('1H92!B=71T;VYS"0D)"0D)
XM*B\*("`@=FEE=V5R+3YB=71T;VY#;W5N=`D)/2!B=71T;VY#;W5N=#L*("`@
XM9F]R("AX/3`[('@@/"!B=71T;VY#;W5N=#L@>"LK*0H@("!["B`@("`@('9I
XM97=E<BT^8G5T=&]N6WA="0D](&-H87(R0VAT>7!E("AB=71T;VYS6WA=+"`F
XM=FEE=V5R+3YB=71T;VYL96Y;>%TL("9B=71T;VY!9&HI.PH@("`@("!B=71T
XM;VY7:61T:`D)*ST@=FEE=V5R+3YB=71T;VYL96Y;>%T@*R`Q.PH@("!]"B`@
XM(&)U='1O;D%D:@D]("AI;G0I*"AB;WA7:61T:"UB=71T;VY7:61T:"DO("AB
XM=71T;VY#;W5N="`K,2DI.PH@("!B=71T;VY0;W,)/2`Q("L@8G5T=&]N061J
XM.PH@("!F;W(@*'@],#L@>"`\(&)U='1O;D-O=6YT.R!X*RLI"B`@('L*("`@
XM("`@=FEE=V5R+3YB=71T;VYP;W-;>%T)/2!B=71T;VY0;W,["B`@("`@(&)U
XM='1O;E!O<PD)"2L](&)U='1O;D%D:B`K('9I97=E<BT^8G5T=&]N;&5N6WA=
XM.PH@("!]"@H@("`O*B!3970@=&AE(')E<W0@;V8@=&AE('9A<FEA8FQE<PD)
XM"0D)*B\*("`@=FEE=V5R+3YP87)E;G0)"3T@8V1K<V-R965N+3YW:6YD;W<[
XM"B`@('9I97=E<BT^<VAA9&]W=VEN"0D]("A724Y$3U<@*BE.54Q,.PH@("!V
XM:65W97(M/G1I=&QE"0D](&-H87(R0VAT>7!E("@B/"]5/BHJ*B!5;G1I=&QE
XM9"`J*BH\(54^(BP@)G9I97=E<BT^=&ET;&5L96XL("9V:65W97(M/G1I=&QE
XM<&]S*3L*("`@=FEE=V5R+3YT:71L97!O<PD)/2!J=7-T:69Y4W1R:6YG("AB
XM;WA7:61T:"P@=FEE=V5R+3YT:71L96QE;BP@=FEE=V5R+3YT:71L97!O<RD[
XM"B`@('9I97=E<BT^8G5T=&]N2&EG:&QI9VAT"3T@05]2159%4E-%.PH@("!V
XM:65W97(M/F)O>$AE:6=H=`D)/2!B;WA(96EG:'0["B`@('9I97=E<BT^8F]X
XM5VED=&@)"3T@8F]X5VED=&@@+2`R.PH@("!V:65W97(M/G9I97=3:7IE"0D]
XM(&AE:6=H="`M(#(["B`@('9I97=E<BT^8F]X"0D)/2!B;W@["B`@('9I97=E
XM<BT^<VAA9&]W"0D]('-H861O=SL*("`@=FEE=V5R+3YC=7)R96YT0G5T=&]N
XM"3T@,#L*("`@=FEE=V5R+3YC=7)R96YT5&]P"0D](#`["B`@('9I97=E<BT^
XM;&5N9W1H"0D](#`["B`@('9I97=E<BT^;&5F=$-H87()"3T@,#L*("`@=FEE
XM=V5R+3YM87A,969T0VAA<@D)/2`P.PH@("!V:65W97(M/FUA>%1O<$QI;F4)
XM"3T@,#L*("`@=FEE=V5R+3YC:&%R86-T97)S"0D](#`["@H@("`O*B!$;R!W
XM92!N965D('1O(&-R96%T92!A('-H861O=S\_/PD)"0D)*B\*("`@:68@*'-H
XM861O=RD*("`@>PH@("`@("!V:65W97(M/G-H861O=W=I;@D)/2!N97=W:6X@
XM*&)O>$AE:6=H="P@8F]X5VED=&@K,2P@>7!O<RLQ+"!X<&]S*S$I.PH@("!]
XM"@H@("`O*B!#;&5A;B!T:&4@:V5Y(&)I;F1I;F=S"0D)"0D)*B\*("`@8VQE
XM86Y#1$M/8FIE8W1":6YD:6YG<R`H=E9)15=%4BP@=FEE=V5R*3L*"B`@("\J
XM(%)E9VES=&5R('1H:7,@8F%B>2X)"0D)"0DJ+PH@("!R96=I<W1E<D-$2T]B
XM:F5C="`H8V1K<V-R965N+"!V5DE%5T52+"!V:65W97(I.PH*("`@+RH@4F5T
XM=7)N('1H92!V:65W97(@;&ES=`D)"0D)"2HO"B`@(')E='5R;B`H=FEE=V5R
XM*3L*?0H*+RH*("H@5&AI<R!A;&QO=W,@=&AE('5S97(@=&\@<V-R;VQL('1H
XM<F]U9V@@=&AE(&EN9F\N"B`J+PII;G0@86-T:79A=&5#1$M6:65W97(@*$-$
XM2U9)15=%4B`J=FEE=V5R+"!C:&%R("IT:71L92P@8VAA<B`J*FEN9F\L(&EN
XM="!I;F9O4VEZ92P@8VAT>7!E(&)U='1O;DAI9VAL:6=H="P@8F]O;&5A;B!A
XM='1R26YT97)P+"!B;V]L96%N(&)O>"D*>PH@("`O*B!$96-L87)E(&QO8V%L
XM('9A<FEA8FQE<RX)"0D)"0DJ+PH@("!I;G0@=VED97-T3&EN90D)/2`M,3L*
XM("`@:6YT('@)"0D](#`["B`@(&EN="!Y"0D)/2`P.PH*("`@+RH@2V5E<"!S
XM;VUE('-E;6DM<&5R:6YA;G0@:6YF;PD)"0D)*B\*("`@=FEE=V5R+3YB;W@)
XM"0D](&)O>#L*("`@=FEE=V5R+3YI;F9O4VEZ90D)/2!I;F9O4VEZ93L*("`@
XM=FEE=V5R+3YI;G1E<G!R970)"3T@871T<DEN=&5R<#L*("`@=FEE=V5R+3YB
XM=71T;VY(:6=H;&EG:'0)/2!B=71T;VY(:6=H;&EG:'0["@H@("`O*B!3970@
XM=7`@=&AE(&YE961E9"!V87)S(&9O<B!T:&4@=FEE=V5R(&QI<W0N("`@(`D)
XM"2HO"B`@(&EF("AI;F9O4VEZ92`\/2!V:65W97(M/G9I97=3:7IE*0H@("![
XM"B`@("`@('9I97=E<BT^;6%X5&]P3&EN92`@("`@("`@/2`M,3L*("`@?0H@
XM("!E;'-E"B`@('L*("`@("`@=FEE=V5R+3YM87A4;W!,:6YE("`@("`@("`]
XM('9I97=E<BT^:6YF;U-I>F4M,3L*("`@?0H*("`@+RH@4V5T('5P('1H92!T
XM:71L92!O9B!T:&4@=FEE=V5R+@D)"0D)*B\*("`@:68@*'1I=&QE("$]("AC
XM:&%R("HI3E5,3"D*("`@>PH@("`@("!F<F5E0VAT>7!E("AV:65W97(M/G1I
XM=&QE*3L*("`@("`@=FEE=V5R+3YT:71L90D)/2!C:&%R,D-H='EP92`H=&ET
XM;&4L("9V:65W97(M/G1I=&QE;&5N+"`F=FEE=V5R+3YT:71L97!O<RD["B`@
XM("`@('9I97=E<BT^=&ET;&5P;W,)"3T@:G5S=&EF>5-T<FEN9R`H=FEE=V5R
XM+3YB;WA7:61T:"P@=FEE=V5R+3YT:71L96QE;BP@=FEE=V5R+3YT:71L97!O
XM<RD["B`@('T*"B`@("\J($1I9"!T:&5Y(&%S:R!F;W(@871T<FEB=71E(&EN
XM=&5R<')E=&%T:6]N/S\_"0D)*B\*("`@:68@*"%A='1R26YT97)P*0H@("![
XM"B`@("`@("\J($-O<'D@=&AE(&EN9F]R;6%T:6]N(&=I=F5N+"!W:71H;W5T
XM(&EN=&5R<')E=&%T:6]N+@D)*B\*("`@("`@9F]R("AX/3`[('@@/#T@:6YF
XM;U-I>F4[('@K*RD*("`@("`@>PH@("`@("`@("!I9B`H:6YF;UMX72`]/2`H
XM8VAA<B`J*2!.54Q,*0H@("`@("`@("!["B`@("`@("`@("`@('9I97=E<BT^
XM:6YF;UMX70D]("AC:'1Y<&4@*BE.54Q,.PH@("`@("`@("`@("!V:65W97(M
XM/FEN9F]L96Y;>%T)/2`P.PH@("`@("`@("`@("!V:65W97(M/FEN9F]P;W-;
XM>%T)/2`P.PH@("`@("`@("!]"B`@("`@("`@(&5L<V4@"B`@("`@("`@('L*
XM("`@("`@("`@("`@:6YT(&QE;@D)/2!S=')L96X@*&EN9F];>%TI.PH@("`@
XM("`@("`@("!W:61E<W1,:6YE"0D]($U!6"AW:61E<W1,:6YE+&QE;BD["@H@
XM("`@("`@("`@("`O*B!);FET(&UE;6]R>2!A;F0@8VQE86X@:70N"0D)"2HO
XM"B`@("`@("`@("`@('9I97=E<BT^:6YF;UMX70D]("AC:'1Y<&4@*BEM86QL
XM;V,@*'-I>F5O9BAC:'1Y<&4I("H@*&QE;BLS*2D["B`@("`@("`@("`@(&-L
XM96%N0VAT>7!E("AV:65W97(M/FEN9F];>%TL(&QE;BLS+"`G7#`G*3L*"B`@
XM("`@("`@("`@("\J($-O<'D@9G)O;2!O;F4@=&\@=&AE(&]T:&5R+@D)"0DJ
XM+PH@("`@("`@("`@("!F;W(@*'D],#L@>2`\(&QE;CL@>2LK*0H@("`@("`@
XM("`@("!["B`@("`@("`@("`@("`@('9I97=E<BT^:6YF;UMX75MY70D](&EN
XM9F];>%U;>5T@?"!!7TY/4DU!3#L*("`@("`@("`@("`@?0H@("`@("`@("`@
XM("!V:65W97(M/FEN9F]L96Y;>%T)/2!L96X["B`@("`@("`@("`@('9I97=E
XM<BT^:6YF;W!O<UMX70D](#`["B`@("`@("`@("`@('9I97=E<BT^8VAA<F%C
XM=&5R<PDK/2!L96X["B`@("`@("`@('T*("`@("`@?0H@("!]"B`@(&5L<V4*
XM("`@>PH@("`@("`O*B!#;W!Y('1H92!I;F9O<FUA=&EO;B!G:79E;BP@=VET
XM:"!I;G1E<G!R971A=&EO;BX)"2HO"B`@("`@(&9O<B`H>#TP.R!X(#P](&EN
XM9F]3:7IE.R!X*RLI"B`@("`@('L*("`@("`@("`@:68@*&EN9F];>%T@/3T@
XM*&-H87(@*BE.54Q,*0H@("`@("`@("!["B`@("`@("`@("`@('9I97=E<BT^
XM:6YF;UMX70D]("AC:'1Y<&4@*BE.54Q,.PH@("`@("`@("`@("!V:65W97(M
XM/FEN9F]L96Y;>%T)/2`P.PH@("`@("`@("`@("!V:65W97(M/FEN9F]P;W-;
XM>%T)/2`P.PH@("`@("`@("!]"B`@("`@("`@(&5L<V4*("`@("`@("`@>PH@
XM("`@("`@("`@("!V:65W97(M/FEN9F];>%T)/2!C:&%R,D-H='EP92`H:6YF
XM;UMX72P@)G9I97=E<BT^:6YF;VQE;EMX72P@)G9I97=E<BT^:6YF;W!O<UMX
XM72D["B`@("`@("`@("`@('9I97=E<BT^:6YF;W!O<UMX70D](&IU<W1I9GE3
XM=')I;F<@*'9I97=E<BT^8F]X5VED=&@L('9I97=E<BT^:6YF;VQE;EMX72P@
XM=FEE=V5R+3YI;F9O<&]S6WA=*3L*("`@("`@("`@("`@=VED97-T3&EN90D)
XM/2!-05@H=VED97-T3&EN92QV:65W97(M/FEN9F]L96Y;>%TI.PH@("`@("`@
XM("`@("!V:65W97(M/F-H87)A8W1E<G,)*ST@=FEE=V5R+3YI;F9O;&5N6WA=
XM.PH@("`@("`@("!]"B`@("`@('T*("`@?0H@("`*("`@+RH@1&5T97)M:6YE
XM(&AO=R!M86YY(&-H87)A8W1E<G,@=V4@8V%N('-H:69T('1O('1H92!R:6=H
XM=`D)*B\*("`@+RH@8F5F;W)E(&%L;"!T:&4@:71E;7,@:&%V92!B965N('9I
XM97=E<B!O9F8@=&AE('-C<F5E;BX)"2HO"B`@(&EF("@@=VED97-T3&EN92`^
XM('9I97=E<BT^8F]X5VED=&@@*0H@("!["B`@("`@('9I97=E<BT^;6%X3&5F
XM=$-H87()/2`H=VED97-T3&EN92`M('9I97=E<BT^8F]X5VED=&@I.PH@("!]
XM"B`@(&5L<V4*("`@>PH@("`@("!V:65W97(M/FUA>$QE9G1#:&%R"3T@,#L*
XM("`@?0H*("`@+RH@3F]W(&QE=',@;6%N86=E('1H:7,@=&AI;F=Y+BXN"0D)
XM"0DJ+PH@("!R971U<FX@*&UA;F%G94-$2U9I97=E<B`H=FEE=V5R*2D["GT*
XM"B\J"B`J(%1H:7,@9G5N8W1I;VX@86-T=6%L;'D@8V]N=')O;',@=&AE('9E
XM=V5R+BXN"B`J+PII;G0@;6%N86=E0T1+5FEE=V5R("A#1$M6245715(@*G9I
XM97=E<BD*>PH@("`O*B!$96-L87)E(&QO8V%L('9A<FEA8FQE<RX)"0D)"0DJ
XM+PH@("!#1$M,04)%3"`J9FEL94EN9F],86)E;#L*("`@8VAT>7!E(&EN<'5T
XM.PH@("!C:&%R("IF:6QE26YF;ULQ,%TL('1E;7!;-3`P73L*("`@:6YT('@@
XM+%)%1E)%4T@["@HC:69D968@3D]$64Y!3$Q/0PH@("!C:'1Y<&4@96UP='E3
XM=')I;F=;,C4V73L*(V5L<V4*("`@8VAT>7!E(&5M<'1Y4W1R:6YG6W9I97=E
XM<BT^8F]X5VED=&A=.PHC96YD:68*"B`@("\J($-R96%T92!A('-T<FEN9R!F
XM=6QL(&]F('-P86-E<RX)"0D)"2HO"B`@(&-L96%N0VAT>7!E("AE;7!T>5-T
XM<FEN9RP@=FEE=V5R+3YB;WA7:61T:"TQ+"`G7#`G*3L*("`@8VQE86Y#:'1Y
XM<&4@*&5M<'1Y4W1R:6YG+"!V:65W97(M/F)O>%=I9'1H+3,L("<@)RD["@H@
XM("`O*B!#<F5A=&4@=&AE(&EN9F]R;6%T:6]N(&%B;W5T('1H92!F:6QE('-T
XM871S+@D)"2HO"B`@('-P<FEN=&8@*'1E;7`L("(\0SX\+S4^("`\+U4^5FEE
XM=V5R($9I;&4@4W1A=&ES=&EC<SPA53X@(#PA-3XB*3L)9FEL94EN9F];,%T@
XM/2!C;W!Y0VAA<BAT96UP*3L*("`@<W!R:6YT9B`H=&5M<"P@(CQ#/CPO-3X@
XM("`@("`@("`@("`@("`@("`@("`@("`@(#PA-3XB*3L)9FEL94EN9F];,5T@
XM/2!C;W!Y0VAA<BAT96UP*3L*("`@<W!R:6YT9B`H=&5M<"P@(CPO-2]2/D-H
XM87)A8W1E<B!#;W5N=#H\(5(^("4M-&0@("`@(#PA-3XB+"!V:65W97(M/F-H
XM87)A8W1E<G,I.PEF:6QE26YF;ULR72`](&-O<'E#:&%R*'1E;7`I.PH@("!S
XM<')I;G1F("AT96UP+"`B/"\U+U(^3&EN92!#;W5N="`@("`@.CPA4CX@)2TT
XM9"`@("`@/"$U/B(L('9I97=E<BT^:6YF;U-I>F4I.PEF:6QE26YF;ULS72`]
XM(&-O<'E#:&%R*'1E;7`I.PH@("!S<')I;G1F("AT96UP+"`B/$,^/"\U/B`@
XM("`@("`@("`@("`@("`@("`@("`@("`@/"$U/B(I.PEF:6QE26YF;ULT72`]
XM(&-O<'E#:&%R*'1E;7`I.PH@("!S<')I;G1F("AT96UP+"`B/$,^/"\U/E!R
XM97-S($%N>2!+97D@5&\@0V]N=&EN=64N/"$U/B(I.PEF:6QE26YF;ULU72`]
XM(&-O<'E#:&%R*'1E;7`I.PH*("`@+RH@4V5T('1H92!C=7)R96YT(&)U='1O
XM;BX)"0D)"0DJ+PH@("!V:65W97(M/F-U<G)E;G1"=71T;VX)/2`P.PH*("`@
XM+RH@1')A=R!T:&4@=FEE=V5R(&QI<W0)"0D)"0DJ+PH@("!D<F%W0T1+5FEE
XM=V5R("AV:65W97(L('9I97=E<BT^8F]X*3L*"B`@("\J($1O('1H:7,@=6YT
XM:6P@2T597U)%5%523B!I<R!H:70N"0D)"0DJ+PH@("!F;W(@*#L[*0H@("![
XM"B`@("`@("\J(%)E<V5T('1H92!R969R97-H(&9L86<N"0D)"0DJ+PH@("`@
XM("!2149215-("3T@1D%,4T4["@H@("`@("`O*B!'970@=&AE('5S97(@:6YP
XM=70N"0D)"0D)*B\*("`@("`@:6YP=70@/2!W9V5T8V@@*'9I97=E<BT^=VEN
XM*3L*("`@("`@:68@*"`A(&-H96-K0T1+3V)J96-T0FEN9"`H=E9)15=%4BP@
XM=FEE=V5R+"!I;G!U="D@*0H@("`@("!["B`@("`@("`@('-W:71C:"`H:6YP
XM=70I"B`@("`@("`@('L*("`@("`@("`@("`@8V%S92!+15E?5$%"(#H@"@D@
XM("`@("`@("!I9B`H=FEE=V5R+3YB=71T;VY#;W5N="`^(#$I"B`@("`@("`@
XM("`@("`@("`@>PH@("`@("`@("`@("`@("`@("`@(&EF("AV:65W97(M/F-U
XM<G)E;G1"=71T;VX@/3T@=FEE=V5R+3YB=71T;VY#;W5N="`M,2`I"B`@("`@
XM("`@("`@("`@("`@("`@>PH@("`@("`@("`@("`@("`@("`@("`@('9I97=E
XM<BT^8W5R<F5N=$)U='1O;@D](#`["B`@("`@("`@("`@("`@("`@("`@?0H@
XM("`@("`@("`@("`@("`@("`@(&5L<V4*("`@("`@("`@("`@("`@("`@("![
XM"B`@("`@("`@("`@("`@("`@("`@("`@=FEE=V5R+3YC=7)R96YT0G5T=&]N
XM*RL["B`@("`@("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@("`@
XM(%)%1E)%4T@)/2!44E5%.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@
XM("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@("`@(&-A<V4@2T597U50(#H*
XM("`@("`@("`@("`@("`@("!I9B`H=FEE=V5R+3YC=7)R96YT5&]P(#X@,"D*
XM("`@("`@("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@=FEE=V5R
XM+3YC=7)R96YT5&]P+2T["B`@("`@("`@("`@("`@("`@("`@4D5&4D532`D]
XM(%12544["B`@("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&5L
XM<V4*("`@("`@("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@0F5E
XM<"@I.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!B<F5A
XM:SL*("`@"B`@("`@("`@("`@(&-A<V4@2T597T1/5TX@.@H@("`@("`@("`@
XM("`@("`@(&EF("AV:65W97(M/F-U<G)E;G14;W`@/"!V:65W97(M/FUA>%1O
XM<$QI;F4I"B`@("`@("`@("`@("`@("`@>PH@("`@("`@("`@("`@("`@("`@
XM('9I97=E<BT^8W5R<F5N=%1O<"LK.PH@("`@("`@("`@("`@("`@("`@(%)%
XM1E)%4T@)/2!44E5%.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@
XM("`@("!E;'-E"B`@("`@("`@("`@("`@("`@>PH@("`@("`@("`@("`@("`@
XM("`@($)E97`H*3L*("`@("`@("`@("`@("`@("!]"B`@("`@("`@("`@("`@
XM("`@8G)E86L["B`@(`H@("`@("`@("`@("!C87-E($M%65]224=(5"`Z"B`@
XM("`@("`@("`@("`@("`@:68@*'9I97=E<BT^;&5F=$-H87(@/"!V:65W97(M
XM/FUA>$QE9G1#:&%R*0H@("`@("`@("`@("`@("`@('L*("`@("`@("`@("`@
XM("`@("`@("!V:65W97(M/FQE9G1#:&%R("LK.PH@("`@("`@("`@("`@("`@
XM("`@(%)%1E)%4T@)/2!44E5%.PH@("`@("`@("`@("`@("`@('T*("`@("`@
XM("`@("`@("`@("!E;'-E"B`@("`@("`@("`@("`@("`@>PH@("`@("`@("`@
XM("`@("`@("`@($)E97`H*3L*("`@("`@("`@("`@("`@("!]"B`@("`@("`@
XM("`@("`@("`@8G)E86L["B`@(`H@("`@("`@("`@("!C87-E($M%65],1494
XM(#H*("`@("`@("`@("`@("`@("!I9B`H=FEE=V5R+3YL969T0VAA<B`^(#`I
XM"B`@("`@("`@("`@("`@("`@>PH@("`@("`@("`@("`@("`@("`@('9I97=E
XM<BT^;&5F=$-H87(@+2T["B`@("`@("`@("`@("`@("`@("`@4D5&4D532`D]
XM(%12544["B`@("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&5L
XM<V4*("`@("`@("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@0F5E
XM<"@I.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!B<F5A
XM:SL*("`@"B`@("`@("`@("`@(&-A<V4@2T597U!004=%(#H@8V%S92`G`B<@
XM.B!C87-E("=B)R`Z(&-A<V4@)T(G(#H*("`@("`@("`@("`@("`@("!I9B`H
XM=FEE=V5R+3YC=7)R96YT5&]P(#X@,"D*("`@("`@("`@("`@("`@("!["B`@
XM("`@("`@("`@("`@("`@("`@:68@*"`H=FEE=V5R+3YC=7)R96YT5&]P("T@
XM*'9I97=E<BT^=FEE=U-I>F4M,2DI(#X@,"D*("`@("`@("`@("`@("`@("`@
XM("!["B`@("`@("`@("`@("`@("`@("`@("`@=FEE=V5R+3YC=7)R96YT5&]P
XM"3T@=FEE=V5R+3YC=7)R96YT5&]P("T@*'9I97=E<BT^=FEE=U-I>F4@+2`Q
XM*3L*("`@("`@("`@("`@("`@("`@("!]"B`@("`@("`@("`@("`@("`@("`@
XM96QS90H@("`@("`@("`@("`@("`@("`@('L*("`@("`@("`@("`@("`@("`@
XM("`@("!V:65W97(M/F-U<G)E;G14;W`@"3T@,#L*("`@("`@("`@("`@("`@
XM("`@("!]"B`@("`@("`@("`@("`@("`@("`@4D5&4D532`D](%12544["B`@
XM("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&5L<V4*("`@("`@
XM("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@0F5E<"@I.PH@("`@
XM("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@
XM("`@("`@("`@(&-A<V4@2T597TY004=%(#H@8V%S92`G!B<@.B!C87-E("<@
XM)R`Z(&-A<V4@)V8G(#H@8V%S92`G1B<@.@H@("`@("`@("`@("`@("`@(&EF
XM("@@=FEE=V5R+3YC=7)R96YT5&]P(#P@=FEE=V5R+3YM87A4;W!,:6YE*0H@
XM("`@("`@("`@("`@("`@('L*("`@("`@("`@("`@("`@("`@("!I9B`H("AV
XM:65W97(M/F-U<G)E;G14;W`@*R!V:65W97(M/G9I97=3:7IE*2`\('9I97=E
XM<BT^;6%X5&]P3&EN92`I"B`@("`@("`@("`@("`@("`@("`@>PH@("`@("`@
XM("`@("`@("`@("`@("`@('9I97=E<BT^8W5R<F5N=%1O<`D]('9I97=E<BT^
XM8W5R<F5N=%1O<"`K("AV:65W97(M/G9I97=3:7IE("T@,2D["B`@("`@("`@
XM("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@("`@(&5L<V4*("`@("`@
XM("`@("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@("`@=FEE=V5R
XM+3YC=7)R96YT5&]P"3T@=FEE=V5R+3YM87A4;W!,:6YE.PH@("`@("`@("`@
XM("`@("`@("`@('T*("`@("`@("`@("`@("`@("`@("!2149215-("3T@5%)5
XM13L*("`@("`@("`@("`@("`@("!]"B`@("`@("`@("`@("`@("`@96QS90H@
XM("`@("`@("`@("`@("`@('L*("`@("`@("`@("`@("`@("`@("!"965P*"D[
XM"B`@("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&)R96%K.PH@
XM("`*("`@("`@("`@("`@8V%S92!+15E?2$]-12`Z(&-A<V4@)WPG(#H*("`@
XM("`@("`@("`@("`@("!V:65W97(M/FQE9G1#:&%R(#T@,#L*("`@("`@("`@
XM("`@("`@("!2149215-("3T@5%)513L*("`@("`@("`@("`@("`@("!B<F5A
XM:SL*("`@"B`@("`@("`@("`@(&-A<V4@2T597T5.1"`Z(&-A<V4@)R0G(#H*
XM("`@("`@("`@("`@("`@("!V:65W97(M/FQE9G1#:&%R(#T@=FEE=V5R+3YM
XM87A,969T0VAA<CL*("`@("`@("`@("`@("`@("!2149215-("3T@5%)513L*
XM("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@("`@(&-A<V4@
XM)V<G(#H@8V%S92`G,2<@.@H@("`@("`@("`@("`@("`@('9I97=E<BT^8W5R
XM<F5N=%1O<"`](#`["B`@("`@("`@("`@("`@("`@4D5&4D532`D](%12544[
XM"B`@("`@("`@("`@("`@("`@8G)E86L["B`@(`H@("`@("`@("`@("!C87-E
XM("=')R`Z(`H@("`@("`@("`@("`@("`@('9I97=E<BT^8W5R<F5N=%1O<"`]
XM('9I97=E<BT^;6%X5&]P3&EN93L*("`@("`@("`@("`@("`@("!2149215-(
XM"3T@5%)513L*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@
XM("`@(&-A<V4@)TPG(#H*("`@("`@("`@("`@("`@("!X(#T@*&EN="D@*"`H
XM=FEE=V5R+3YI;F9O4VEZ92`K('9I97=E<BT^8W5R<F5N=%1O<"D@+R`R*3L*
XM("`@("`@("`@("`@("`@("!I9B`H('@@/"!V:65W97(M/FUA>%1O<$QI;F4I
XM"B`@("`@("`@("`@("`@("`@>PH@("`@("`@("`@("`@("`@("`@('9I97=E
XM<BT^8W5R<F5N=%1O<"`]('@["B`@("`@("`@("`@("`@("`@("`@4D5&4D53
XM2`D](%12544["B`@("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@
XM(&5L<V4*("`@("`@("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@
XM0F5E<"@I.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!B
XM<F5A:SL*("`@"B`@("`@("`@("`@(&-A<V4@)VPG(#H*("`@("`@("`@("`@
XM("`@("!X(#T@*&EN="D@*'9I97=E<BT^8W5R<F5N=%1O<"`O(#(I.PH@("`@
XM("`@("`@("`@("`@(&EF("@@>"`^/2`P("D*("`@("`@("`@("`@("`@("![
XM"B`@("`@("`@("`@("`@("`@("`@=FEE=V5R+3YC=7)R96YT5&]P(#T@>#L*
XM("`@("`@("`@("`@("`@("`@("!2149215-("3T@5%)513L*("`@("`@("`@
XM("`@("`@("!]"B`@("`@("`@("`@("`@("`@96QS90H@("`@("`@("`@("`@
XM("`@('L*("`@("`@("`@("`@("`@("`@("!"965P*"D["B`@("`@("`@("`@
XM("`@("`@?0H@("`@("`@("`@("`@("`@(&)R96%K.PH@("`*("`@("`@("`@
XM("`@8V%S92`G/R<@.@H@("`@("`@("`@("`@("`@(%-E87)C:$1I<F5C=&EO
XM;@D](%50.PH@("`@("`@("`@("`@("`@(&=E=$%N9%-T;W)E4&%T=&5R;B`H
XM=FEE=V5R+3YS8W)E96XL('9I97=E<BT^8F]X5VED=&@M,BD["B`@("`@("`@
XM("`@("`@("`@:68@*"`A('-E87)C:$9O<E=O<F0H=FEE=V5R+"!396%R8VA0
XM871T97)N+"!396%R8VA$:7)E8W1I;VXI*0H@("`@("`@("`@("`@("`@('L*
XM("`@("`@("`@("`@("`@("`@("!S<')I;G1F("AT96UP+"`B/"]5+S4^4&%T
XM=&5R;B`G)7,G(&YO="!F;W5N9"X\(54A-3XB+"!396%R8VA0871T97)N*3L*
XM("`@("`@("`@("`@("`@("`@("!P;W!5<$QA8F5L("AV:65W97(L('1E;7`I
XM.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!2149215-(
XM"3T@5%)513L*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@("`@("`@
XM("`@(&-A<V4@)R\G(#H*("`@("`@("`@("`@("`@("!396%R8VA$:7)E8W1I
XM;VX)/2!$3U=..PH@("`@("`@("`@("`@("`@(&=E=$%N9%-T;W)E4&%T=&5R
XM;B`H=FEE=V5R+3YS8W)E96XL('9I97=E<BT^8F]X5VED=&@M,BD["B`@("`@
XM("`@("`@("`@("`@:68@*"`A('-E87)C:$9O<E=O<F0H=FEE=V5R+"!396%R
XM8VA0871T97)N+"!396%R8VA$:7)E8W1I;VXI*0H@("`@("`@("`@("`@("`@
XM('L*("`@("`@("`@("`@("`@("`@("!S<')I;G1F("AT96UP+"`B/"]5+S4^
XM4&%T=&5R;B`G)7,G(&YO="!F;W5N9"X\(54A-3XB+"!396%R8VA0871T97)N
XM*3L*("`@("`@("`@("`@("`@("`@("!P;W!5<$QA8F5L("AV:65W97(L('1E
XM;7`I.PH@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!21492
XM15-("3T@5%)513L*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@("`@
XM("`@("`@(&-A<V4@)VXG(#H*("`@("`@("`@("`@("`@("!I9B`H(%-E87)C
XM:%!A='1E<FX@/3T@*&-H87(@*BE.54Q,("D*("`@("`@("`@("`@("`@("![
XM"B`@("`@("`@("`@("`@("`@("`@<&]P57!,86)E;"`H=FEE=V5R+"`B/"\U
XM/E1H97)E(&ES(&YO('!A='1E<FX@:6X@=&AE(&)U9F9E<BX\(34^(BD["B`@
XM("`@("`@("`@("`@("`@?0H@("`@("`@("`@("`@("`@(&5L<V4*("`@("`@
XM("`@("`@("`@("!["B`@("`@("`@("`@("`@("`@("`@:68@*"`A('-E87)C
XM:$9O<E=O<F0H=FEE=V5R+"!396%R8VA0871T97)N+"!396%R8VA$:7)E8W1I
XM;VXI*0H@("`@("`@("`@("`@("`@("`@('L*("`@("`@("`@("`@("`@("`@
XM("`@("!S<')I;G1F("AT96UP+"`B/"\U/E!A='1E<FX@)R5S)R!N;W0@9F]U
XM;F0N/"$U/B(L(%-E87)C:%!A='1E<FXI.PH@("`@("`@("`@("`@("`@("`@
XM("`@('!O<%5P3&%B96P@*'9I97=E<BP@=&5M<"D["B`@("`@("`@("`@("`@
XM("`@("`@?0H@("`@("`@("`@("`@("`@('T*("`@("`@("`@("`@("`@("!2
XM149215-("3T@5%)513L*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@"B`@
XM("`@("`@("`@(&-A<V4@)SHG(#H*("`@("`@("`@("`@("`@("!V:65W97(M
XM/F-U<G)E;G14;W`)/2!J=6UP5&],:6YE("AV:65W97(I.PH@("`@("`@("`@
XM("`@("`@(%)%1E)%4T@)"3T@5%)513L*("`@("`@("`@("`@("`@("!B<F5A
XM:SL*("`@"B`@("`@("`@("`@(&-A<V4@)VDG(#H@8V%S92`G<R<@.@H@("`@
XM("`@("`@("`@("`@(&9I;&5);F9O3&%B96P)/2!N97=#1$M,86)E;"`H=FEE
XM=V5R+3YS8W)E96XL($-%3E1%4BP@0T5.5$52+"!F:6QE26YF;RP@-BP@5%)5
XM12P@1D%,4T4I.PH@("`@("`@("`@("`@("`@(&1R87=#1$M,86)E;"`H9FEL
XM94EN9F],86)E;"P@0D]8*3L*("`@("`@("`@("`@("`@("!W9V5T8V@@*&9I
XM;&5);F9O3&%B96PM/G=I;BD["B`@("`@("`@("`@("`@("`@9&5S=')O>4-$
XM2TQA8F5L("AF:6QE26YF;TQA8F5L*3L*("`@("`@("`@("`@("`@("!21492
XM15-("0D](%12544["B`@("`@("`@("`@("`@("`@8G)E86L["B`@(`H@("`@
XM("`@("`@("!C87-E($M%65]215154DX@.B!C87-E($-$2U].15A4(#H*("`@
XM("`@("`@("`@("`@("!F<F5E0VAA<B`H9FEL94EN9F];,%TI.PH@("`@("`@
XM("`@("`@("`@(&9R965#:&%R("AF:6QE26YF;ULQ72D["B`@("`@("`@("`@
XM("`@("`@9G)E94-H87(@*&9I;&5);F9O6S)=*3L*("`@("`@("`@("`@("`@
XM("!F<F5E0VAA<B`H9FEL94EN9F];,UTI.PH@("`@("`@("`@("`@("`@(&9R
XM965#:&%R("AF:6QE26YF;ULT72D["B`@("`@("`@("`@("`@("`@9G)E94-H
XM87(@*&9I;&5);F9O6S5=*3L*("`@("`@("`@("`@("`@("!R971U<FX@*'9I
XM97=E<BT^8W5R<F5N=$)U='1O;BD["B`@("`@("`@("`@("`@("`@8G)E86L[
XM"B`@(`H@("`@("`@("`@("!C87-E($-$2U]2149215-((#H*("`@("`@("`@
XM("`@("`@("!R969R97-H0T1+4V-R965N("AV:65W97(M/G-C<F5E;BD["B`@
XM("`@("`@("`@("`@("`@8G)E86L["B`@(`H@("`@("`@("`@("!D969A=6QT
XM(#H*("`@("`@("`@("`@("`@("!B<F5A:SL*("`@("`@("`@?0H@("`@("!]
XM"B`@("`@(`H@("`@("`O*B!$;R!W92!N965D('1O(')E9')A=R!T:&4@<V-R
XM965N/S\_"0D)"2HO"B`@("`@(&EF("A2149215-(*0H@("`@("!["B`@("`@
XM("`@("\J($-L96%R('1H92!W:6YD;W<N"0D)"0D)*B\*("`@("`@("`@=V5R
XM87-E("AV:65W97(M/G=I;BD["@H@("`@("`@("`O*B!2961R87<@=&AE('1I
XM=&QE+@D)"0D)"2HO"B`@("`@("`@('=R:71E0VAT>7!E("AV:65W97(M/G=I
XM;BP@=FEE=V5R+3YT:71L97!O<RP@,2P@=FEE=V5R+3YT:71L92P@2$]225I/
XM3E1!3"P@,"P@=FEE=V5R+3YT:71L96QE;BD["@H@("`@("`@("`O*B!2961R
XM87<@=&AE(&QI<W0)"0D)"0DJ+PH@("`@("`@("!F;W(@*'@],#L@>"`\('9I
XM97=E<BT^=FEE=U-I>F4[('@K*RD*("`@("`@("`@>PH@("`@("`@("`@("!I
XM9B`H('9I97=E<BT^8W5R<F5N=%1O<"`K('@@/#T@=FEE=V5R+3YI;F9O4VEZ
XM92D*("`@("`@("`@("`@>PH@("`@("`@("`@("`@("!W<FET94-H='EP92`H
XM=FEE=V5R+3YW:6XL('9I97=E<BT^:6YF;W!O<UMV:65W97(M/F-U<G)E;G14
XM;W`K>%TK,2P@>"LR+"!V:65W97(M/FEN9F];>"MV:65W97(M/F-U<G)E;G14
XM;W!=+"!(3U))6D].5$%,+"!V:65W97(M/FQE9G1#:&%R+"!V:65W97(M/FEN
XM9F]L96Y;>"MV:65W97(M/F-U<G)E;G14;W!=*3L*("`@("`@("`@("`@?0H@
XM("`@("`@("!]"B`@("`@"B`@("`@("`@("\J(%)E9')A=R!T:&4@8G5T=&]N
XM<RX)"0D)"0DJ+PH@("`@("`@("!F;W(@*'@],#L@>"`\('9I97=E<BT^8G5T
XM=&]N0V]U;G0[('@K*RD*("`@("`@("`@>PH@("`@("`@("`@("!W<FET94-H
XM='EP92`H=FEE=V5R+3YW:6XL('9I97=E<BT^8G5T=&]N<&]S6WA=+"!V:65W
XM97(M/F)O>$AE:6=H="TR+"!V:65W97(M/F)U='1O;EMX72P@2$]225I/3E1!
XM3"P@,"P@=FEE=V5R+3YB=71T;VYL96Y;>%TI.PH@("`@("`@("!]"@H@("`@
XM("`@("`O*B!$<F%W(&EN('1H92!C=7)R96YT(&QI;F4@870@=&AE('1O<"X@
XM"0D)*B\*("`@("`@("`@<W!R:6YT9B`H=&5M<"P@(B5D+R5D("4R+C!F)24B
XM+"`H=FEE=V5R+3YC=7)R96YT5&]P*S$I+"!V:65W97(M/FEN9F]3:7IE+"`H
XM*&9L;V%T*2AV:65W97(M/F-U<G)E;G14;W`K,2DO*&9L;V%T*79I97=E<BT^
XM:6YF;U-I>F4I("H@,3`P*3L*("`@("`@("`@=W)I=&5#:&%R("AV:65W97(M
XM/G=I;BP@,2P@,2P@=&5M<"P@2$]225I/3E1!3"P@,"P@<W1R;&5N*'1E;7`I
XM*3L*("`@("`*("`@("`@("`@+RH@0F]X(&ET(&EF('=E(&AA=F4@=&\N"0D)
XM"0DJ+PH@("`@("`@("!I9B`H=FEE=V5R+3YB;W@I"B`@("`@("`@('L*("`@
XM("`@("`@("`@8F]X("AV:65W97(M/G=I;BP@04-37U9,24Y%+"!!0U-?2$Q)
XM3D4I.PH@("`@("`@("!]"@H@("`@("`@("`O*B!$<F%W('1H92!S97!E<F%T
XM:6]N(&QI;F4N"0D)"0DJ+PH@("`@("`@("!F;W(@*'@],3L@>"`\/2!V:65W
XM97(M/F)O>%=I9'1H*S$[('@K*RD*("`@("`@("`@>PH@("`@("`@("`@("!M
XM=G=A9&1C:"`H=FEE=V5R+3YW:6XL('9I97=E<BT^8F]X2&5I9VAT+3,L('@L
XM($%#4U](3$E.12D["B`@("`@("`@('T*("`@("`@("`@;79W861D8V@@*'9I
XM97=E<BT^=VEN+"!V:65W97(M/F)O>$AE:6=H="TS+"`P+"!!0U-?3%1%12D[
XM"B`@("`@("`@(&UV=V%D9&-H("AV:65W97(M/G=I;BP@=FEE=V5R+3YB;WA(
XM96EG:'0M,RP@=FEE=V5R+3YW:6XM/E]M87AX+"!!0U-?4E1%12D["@H@("`@
XM("`@("`O*B!2969R97-H('1H92!S8W)E96XN"0D)"0D)*B\*("`@("`@("`@
XM=W)E9G)E<V@@*'9I97=E<BT^=VEN*3L*("`@("`@?0H@("!]"GT*"B\J"B`J
XM(%1H:7,@<V5A<F-H97,@=&AE(&1O8W5M96YT(&QO;VMI;F<@9F]R('1H92!G
XM:79E;B!W;W)D+@H@*B\*=F]I9"!G971!;F13=&]R95!A='1E<FX@*$-$2U-#
XM4D5%3B`J<V-R965N+"!I;G0@=VED=&@I"GL*("`@+RH@1&5C;&%R92!L;V-A
XM;"!V87)I86)L97,N"0D)"0D)*B\*("`@0T1+14Y44ED)*F=E=%!A='1E<FX[
XM"B`@(&-H87()"2IT96UP.PH*("`@+RH@0VAE8VL@=&AE(&1I<F5C=&EO;BX)
XM"0D)"0DJ+PH@("!I9B`H4V5A<F-H1&ER96-T:6]N(#T](%50*0H@("!["B`@
XM("`@('1E;7`)/2`B/"\U/E-E87)C:"!5<"`@.B`\(34^(CL*("`@?0H@("!E
XM;'-E"B`@('L*("`@("`@=&5M<`D]("(\+S4^4V5A<F-H($1O=VXZ(#PA-3XB
XM.PH@("!]"@H@("`O*B!0;W`@=7`@=&AE(&5N=')Y(&9I96QD+@D)"0D)"2HO
XM"B-I9F1E9B!#3TQ/4@H@("!G9710871T97)N"3T@;F5W0T1+16YT<GD@*'-C
XM<F5E;BP@0T5.5$52+"!#14Y415(L($Q%1E0L('1E;7`L($-/3$]27U!!25(H
XM-2E\05]"3TQ$+"`G+B=\0T],3U)?4$%)4B@U*7Q!7T)/3$0L('9-25A%1"P@
XM,3`L(#`L(#(U-BP@)D-$2T5N=')Y0V%L;$)A8VLL(%12544L($9!3%-%*3L*
XM(V5L<V4*("`@9V5T4&%T=&5R;@D](&YE=T-$2T5N=')Y("AS8W)E96XL($-%
XM3E1%4BP@0T5.5$52+"!,1494+"!T96UP+"!!7T)/3$0L("<N)WQ!7T)/3$0L
XM('9-25A%1"P@,3`L(#`L(#(U-BP@)D-$2T5N=')Y0V%L;$)A8VLL(%12544L
XM($9!3%-%*3L*(V5N9&EF"@H*("`@+RH@27,@=&AE<F4@86X@;VQD('-E<F%C
XM:"!P871T97)N/PD)"0D)*B\*("`@:68@*%-E87)C:%!A='1E<FX@(3T@*&-H
XM87(@*BE.54Q,*2`*("`@>PH@("`@("!S971#1$M%;G1R>2`H9V5T4&%T=&5R
XM;BP@4V5A<F-H4&%T=&5R;BP@9V5T4&%T=&5R;BT^;6EN+"!G9710871T97)N
XM+3YM87@L(&=E=%!A='1E<FXM/F)O>"D["B`@('T*("`@9G)E94-H87(@*%-E
XM87)C:%!A='1E<FXI.PH*("`@+RH@06-T:79A=&4@=&AI<R!B86)Y+@D)"0D)
XM"2HO"B`@(&%C=&EV871E0T1+16YT<GD@*&=E=%!A='1E<FXI.PH*("`@+RH@
XM4V%V92!T:&4@:6YF;RX)"0D)"0D)*B\*("`@4V5A<F-H4&%T=&5R;@D](&-O
XM<'E#:&%R("AG9710871T97)N+3YI;F9O*3L*"B`@("\J($-L96%N('5P+@D)
XM"0D)"0D)*B\*("`@9&5S=')O>4-$2T5N=')Y("AG9710871T97)N*3L*?0H*
XM+RH*("H@5&AI<R!S96%R8VAE<R!F;W(@=&AE('=O<F0@86YD(')E86QI9VYS
XM('1H92!V86QU92!O;B!T:&4@<V-R965N+@H@*B\*:6YT('-E87)C:$9O<E=O
XM<F0@*$-$2U9)15=%4B`J=FEE=V5R+"!C:&%R("IP871T97)N+"!I;G0@9&ER
XM96-T:6]N*0I["B`@("\J($1E8VQA<F4@;&]C86P@=F%R:6%B;&5S+@D)"0D)
XM"2HO"B`@(&EN="!X+"!Y+"!P;W,L(&QE;BP@<&QE;CL*"B`@("\J($EF('1H
XM92!P871T97)N(&ES($Y53$P@=&AE;B!R971U<FXN"0D)"2HO"B`@(&EF("AP
XM871T97)N(#T]("AC:&%R("HI3E5,3"D*("`@>PH@("`@("!R971U<FXH,"D[
XM"B`@('T*("`@<&QE;@D]('-T<FQE;BAP871T97)N*3L*"B`@("\J($=I=F5N
XM('1H92!D:7)E8W1I;VXL('-T87)T(&QO;VMI;F<N+BXN"0D)"2HO"B`@(&EF
XM("AD:7)E8W1I;VX@/3T@1$]73BD*("`@>PH@("`@("`O*B!3=&%R="!L;V]K
XM:6YG(&9R;VT@)VAE<F4G(&1O=VXN"0D)"2HO"B`@("`@(&9O<B`H>"`]('9I
XM97=E<BT^8W5R<F5N=%1O<"`K(#$[('@@/"!V:65W97(M/FEN9F]3:7IE.R!X
XM*RLI"B`@("`@('L*("`@("`@("`@+RH@4W1A<G0@;&]O:VEN9RX@268@=V4@
XM9FEN9"!I="P@=&AE;B!S970@=&AE('9A;'5E(&]F"0DJ+PH@("`@("`@("`O
XM*B!V:65W97(M/F-U<G)E;G14;W`@86YD('!O<W-I8FQY(&5V96X@;&5F=$-H
XM87(N+BX)"2HO"B`@("`@("`@(&QE;@D](&-H;&5N("AV:65W97(M/FEN9F];
XM>%TI.PH@("`@("`@("!P;W,)/2`P.PH@("`@("`@("!F;W(@*'D],#L@>2`\
XM(&QE;CL@>2LK*0H@("`@("`@("!["B`@("`@("`@("`@("\J(%=E(&AA=F4@
XM=&\@=&5A<B!T:&4@871T<FEB=71E<R!F<F]M('1H92!C:'1Y<&4N"0DJ+PH@
XM("`@("`@("`@("!C:&%R('!L86EN0VAA<@D]('9I97=E<BT^:6YF;UMX75MY
XM72`F($%?0TA!4E1%6%0["@H@("`@("`@("`@("`O*B!792!H879E(&9O=6YD
XM('1H92!W;W)D(&%T('1H:7,@<&]I;G0N"0D)*B\*("`@("`@("`@("`@:68@
XM*'!O<R`]/2!P;&5N*0H@("`@("`@("`@("!["B`@("`@("`@("`@("`@('9I
XM97=E<BT^8W5R<F5N=%1O<`D]("AX(#P@=FEE=V5R+3YM87A4;W!,:6YE("`_
XM('@@.B!V:65W97(M/FUA>%1O<$QI;F4I.PH@("`@("`@("`@("`@("!V:65W
XM97(M/FQE9G1#:&%R"3T@*'D@/"!V:65W97(M/F)O>%=I9'1H(#\@,"`Z('9I
XM97=E<BT^;6%X3&5F=$-H87(I.PH@("`@("`@("`@("`@("!R971U<FX@*#$I
XM.PH@("`@("`@("`@("!]"@H@("`@("`@("`@("`O*B!+965P('1R=61G:6YG
XM(&%L;VYG+@D)"0D)*B\*("`@("`@("`@("`@:68@*'!A='1E<FY;<&]S*RM=
XM("$]('!L86EN0VAA<BD*("`@("`@("`@("`@>PH@("`@("`@("`@("`@("!P
XM;W,)/2`P.PH@("`@("`@("`@("!]"B`@("`@("`@('T*("`@("`@?0H@("!]
XM"B`@(&5L<V4*("`@>PH@("`@("`O*B!3=&%R="!L;V]K:6YG(&9R;VT@)VAE
XM<F4G('5P+@D)"0D)*B\*("`@("`@9F]R("AX(#T@=FEE=V5R+3YC=7)R96YT
XM5&]P("T@,3L@>"`^/2`P.R!X+2TI"B`@("`@('L*("`@("`@("`@+RH@4W1A
XM<G0@;&]O:VEN9RX@268@=V4@9FEN9"!I="P@=&AE;B!S970@=&AE('9A;'5E
XM(&]F"0DJ+PH@("`@("`@("`O*B!V:65W97(M/F-U<G)E;G14;W`@86YD('!O
XM<W-I8FQY(&5V96X@;&5F=$-H87(N+BX)"2HO"B`@("`@("`@(&QE;@D](&-H
XM;&5N("AV:65W97(M/FEN9F];>%TI.PH@("`@("`@("!P;W,)/2`P.PH@("`@
XM("`@("!F;W(@*'D],#L@>2`\(&QE;CL@>2LK*0H@("`@("`@("!["B`@("`@
XM("`@("`@("\J(%=E(&AA=F4@=&\@=&5A<B!T:&4@871T<FEB=71E<R!F<F]M
XM('1H92!C:'1Y<&4N"0DJ+PH@("`@("`@("`@("!C:&%R('!L86EN0VAA<@D]
XM('9I97=E<BT^:6YF;UMX75MY72`F($%?0TA!4E1%6%0["@H@("`@("`@("`@
XM("`O*B!792!H879E(&9O=6YD('1H92!W;W)D(&%T('1H:7,@<&]I;G0N"0D)
XM*B\*("`@("`@("`@("`@:68@*'!O<R`]/2!P;&5N*0H@("`@("`@("`@("![
XM"B`@("`@("`@("`@("`@('9I97=E<BT^8W5R<F5N=%1O<`D]('@["B`@("`@
XM("`@("`@("`@('9I97=E<BT^;&5F=$-H87()/2`H>2`\('9I97=E<BT^8F]X
XM5VED=&@@/R`P(#H@=FEE=V5R+3YM87A,969T0VAA<BD["B`@("`@("`@("`@
XM("`@(')E='5R;B`H,2D["B`@("`@("`@("`@('T*"B`@("`@("`@("`@("\J
XM($ME97`@=')U9&=I;F<@86QO;F<N"0D)"0DJ+PH@("`@("`@("`@("!I9B`H
XM<&%T=&5R;EMP;W,K*UT@(3T@<&QA:6Y#:&%R*0H@("`@("`@("`@("!["B`@
XM("`@("`@("`@("`@('!O<PD](#`["B`@("`@("`@("`@('T*("`@("`@("`@
XM?0H@("`@("!]"B`@('T*("`@<F5T=7)N*#`I.PI]"@HO*@H@*B!4:&ES(&%L
XM;&]W<R!U<R!T;R`G:G5M<"<@=&\@82!G:79E;B!L:6YE(&EN('1H92!F:6QE
XM+@H@*B\*:6YT(&IU;7!4;TQI;F4@*$-$2U9)15=%4B`J=FEE=V5R*0I["B`@
XM("\J($1E8VQA<F4@;&]C86P@=F%R:6%B;&5S+@D)"0D)"2HO"B`@(&EN="!L
XM:6YE"0D](#`["B`@($-$2U-#04Q%("H@;F5W;&EN90D](&YE=T-$2U-C86QE
XM("AV:65W97(M/G-C<F5E;BP@0T5.5$52+"!#14Y415(L($Q%1E0L"@D)"0DB
XM/"\U/D=O(%1O($QI;F4@.B(L($%?0D],1"P@-2P*"0D)"3`L(#`L('9I97=E
XM<BT^;6%X5&]P3&EN92LQ+"`Q+"`Q,"P@5%)512P@5%)512D["B`@(&QI;F4)
XM"0D](&%C=&EV871E0T1+4V-A;&4@*&YE=VQI;F4I.PH@("!D97-T<F]Y0T1+
XM4V-A;&4@*&YE=VQI;F4I.PH@("!R971U<FX@*"`H;&EN92TQ*2`I.PI]"@HO
XM*@H@*B!4:&ES('!O<',@82!L:71T;&4@;65S<V%G92!U<"!O;B!T:&4@<V-R
XM965N+@H@*B\*=F]I9"!P;W!5<$QA8F5L("A#1$M6245715(@*G9I97=E<BP@
XM8VAA<B`J;65S9RD*>PH@("`O*B!$96-L87)E(&QO8V%L('9A<FEA8FQE<RX)
XM"0D)"0DJ+PH@("!C:&%R("II;F9O6S-=.PH@("!#1$M,04)%3"`J;&%B96P[
XM"@H@("`O*B!3970@=7`@=F%R:6%B;&5S+@D)"0D)"0DJ+PH@("!I;F9O6S!=
XM"3T@;65S9SL*("`@;&%B96P)/2!N97=#1$M,86)E;"`H=FEE=V5R+3YS8W)E
XM96XL($-%3E1%4BP@0T5.5$52+"!I;F9O+"`Q+"!44E5%+"!&04Q312D["@H@
XM("`O*B!$<F%W('1H92!L86)E;"!A;F0@=V%I="X)"0D)"0DJ+PH@("!D<F%W
XM0T1+3&%B96P@*&QA8F5L+"!"3U@I.PH@("!W9V5T8V@@*&QA8F5L+3YW:6XI
XM.PH*("`@+RH@0VQE86X@=7`N"0D)"0D)"0DJ+PH@("!D97-T<F]Y0T1+3&%B
XM96P@*&QA8F5L*3L*?0H*+RH*("H@5&AI<R!F=6YC=&EO;B!D<F%W<R!T:&4@
XM=FEE=V5R('=I9&=E="X*("HO"G9O:60@9')A=T-$2U9I97=E<B`H0T1+5DE%
XM5T52("IV:65W97(L(&)O;VQE86X@0F]X*0I["B`@("\J($1E8VQA<F4@;&]C
XM86P@=F%R:6%B;&5S+@D)"0D)"2HO"B`@(&EN="!X"3T@,#L*("`@8VAA<B!T
XM96UP6S$P,%T["@H@("`O*B!%<F%S92!T:&4@;VQD(&]B:F5C="XN+@D)"0D)
XM"2HO"B`@(&5R87-E0T1+5FEE=V5R("AV:65W97(I.PH*("`@+RH@1&\@=V4@
XM;F5E9"!T;R!D<F%W(&EN('1H92!S:&%D;W<_/S\)"0D)*B\*("`@:68@*'9I
XM97=E<BT^<VAA9&]W*0H@("!["B`@("`@(&1R87=3:&%D;W<@*'9I97=E<BT^
XM<VAA9&]W=VEN*3L*("`@?0H@("`*("`@+RH@1')A=R!I;B!T:&4@=&ET;&4)
XM"0D)"0D)*B\*("`@=W)I=&5#:'1Y<&4@*'9I97=E<BT^=VEN+"!V:65W97(M
XM/G1I=&QE<&]S+"`Q+"!V:65W97(M/G1I=&QE+"!(3U))6D].5$%,+"`P+"!V
XM:65W97(M/G1I=&QE;&5N*3L*"B`@("\J($1R87<@:6X@=&AE(&UE<W-A9V4@
XM8V]N=&5N=',N"0D)"0DJ+PH@("!F;W(@*'@],#L@>"`\('9I97=E<BT^=FEE
XM=U-I>F4[('@K*RD*("`@>PH@("`@("!I9B`H=FEE=V5R+3YI;F9O6W9I97=E
XM<BT^8W5R<F5N=%1O<"MX72`A/2`H8VAT>7!E("HI3E5,3"D*("`@("`@>PH@
XM("`@("`@("!W<FET94-H='EP92`H=FEE=V5R+3YW:6XL('9I97=E<BT^:6YF
XM;W!O<UMV:65W97(M/F-U<G)E;G14;W`K>%TK,2P@>"LR+"!V:65W97(M/FEN
XM9F];>"MV:65W97(M/F-U<G)E;G14;W!=+"!(3U))6D].5$%,+"!V:65W97(M
XM/FQE9G1#:&%R+"!V:65W97(M/FEN9F]L96Y;>"MV:65W97(M/F-U<G)E;G14
XM;W!=*3L*("`@("`@?0H@("!]"@H@("`O*B!";W@@:70@:68@:70@=V%S(&%S
XM:V5D(&9O<BX)"0D)"2HO"B`@(&EF("AV:65W97(M/F)O>"D*("`@>PH@("`@
XM("!B;W@@*'9I97=E<BT^=VEN+"!!0U-?5DQ)3D4L($%#4U](3$E.12D["B`@
XM('T*"B`@("\J($1R87<@=&AE('-E<&5R871I;VX@;&EN92X)"0D)"0DJ+PH@
XM("!F;W(@*'@],3L@>"`\/2!V:65W97(M/F)O>%=I9'1H*S$[('@K*RD*("`@
XM>PH@("`@("!M=G=A9&1C:"`H=FEE=V5R+3YW:6XL('9I97=E<BT^8F]X2&5I
XM9VAT+3,L('@L($%#4U](3$E.12D["B`@('T*("`@;79W861D8V@@*'9I97=E
XM<BT^=VEN+"!V:65W97(M/F)O>$AE:6=H="TS+"`P+"!!0U-?3%1%12D["B`@
XM(&UV=V%D9&-H("AV:65W97(M/G=I;BP@=FEE=V5R+3YB;WA(96EG:'0M,RP@
XM=FEE=V5R+3YW:6XM/E]M87AX+"!!0U-?4E1%12D["@H@("`O*B!$<F%W(&EN
XM('1H92!B=71T;VYS"0D)"0D)*B\*("`@9F]R("AX/3`[('@@/"!V:65W97(M
XM/F)U='1O;D-O=6YT.R!X*RLI"B`@('L*("`@("`@=W)I=&5#:'1Y<&4@*'9I
XM97=E<BT^=VEN+"!V:65W97(M/F)U='1O;G!O<UMX72P@=FEE=V5R+3YB;WA(
XM96EG:'0M,BP@=FEE=V5R+3YB=71T;VY;>%TL($A/4DE:3TY404PL(#`L('9I
XM97=E<BT^8G5T=&]N;&5N6WA=*3L*("`@?0H@("!F;W(@*'@],#L@>"`\('9I
XM97=E<BT^8G5T=&]N;&5N6W9I97=E<BT^8W5R<F5N=$)U='1O;ET[('@K*RD*
XM("`@>PH@("`@("!C:&%R(&-H87)A8W1E<@D]('9I97=E<BT^8G5T=&]N6W9I
XM97=E<BT^8W5R<F5N=$)U='1O;EU;>%T@)B!!7T-(05)415A4.PH@("`@("!M
XM=G=A9&1C:"`H=FEE=V5R+3YW:6XL('9I97=E<BT^8F]X2&5I9VAT+3(L('9I
XM97=E<BT^8G5T=&]N<&]S6W9I97=E<BT^8W5R<F5N=$)U='1O;ETK>"P@8VAA
XM<F%C=&5R?'9I97=E<BT^8G5T=&]N2&EG:&QI9VAT*3L*("`@?0H@("`*("`@
XM+RH@1')A=R!I;B!T:&4@8W5R<F5N="!L:6YE(&%T('1H92!T;W`N(`D)"0DJ
XM+PH@("!S<')I;G1F("AT96UP+"`B)60O)60@)3(N,&8E)2(L("AV:65W97(M
XM/F-U<G)E;G14;W`K,2DL('9I97=E<BT^:6YF;U-I>F4L("@H9FQO870I*'9I
XM97=E<BT^8W5R<F5N=%1O<"LQ*2\H9FQO870I=FEE=V5R+3YI;F9O4VEZ92D@
XM*B`Q,#`I.PH@("!W<FET94-H87(@*'9I97=E<BT^=VEN+"`Q+"`Q+"!T96UP
XM+"!(3U))6D].5$%,+"`P+"!S=')L96XH=&5M<"DI.PH*("`@+RH@4F5F<F5S
XM:"!T:&4@=VEN9&]W+@D)"0D)"2HO"B`@('=R969R97-H("AV:65W97(M/G=I
XM;BD["GT*"B\J"B`J(%1H:7,@9G5N8W1I;VX@9&5S=')O>7,@=&AE('9I97=E
XM<B!W:61G970N"B`J+PIV;VED(&1E<W1R;WE#1$M6:65W97(@*$-$2U9)15=%
XM4B`J=FEE=V5R*0I["B`@("\J($1E8VQA<F4@;&]C86P@=F%R:6%B;&5S+@D)
XM"0D)"2HO"B`@(&EN="!X"3T@,#L*"B`@("\J($5R87-E('1H92!O8FIE8W0N
XM"0D)"0D)"2HO"B`@(&5R87-E0T1+5FEE=V5R("AV:65W97(I.PH*("`@+RH@
XM0VQE87(@=7`@=&AE(&-H87(@<&]I;G1E<G,N"0D)"0DJ+PH@("!F<F5E0VAT
XM>7!E("AV:65W97(M/G1I=&QE*3L*("`@9F]R("AX/3`[('@@/#T@=FEE=V5R
XM+3YI;F9O4VEZ93L@>"LK*0H@("!["B`@("`@(&9R965#:'1Y<&4@*'9I97=E
XM<BT^:6YF;UMX72D["B`@('T*("`@9F]R("AX/3`[('@@/"!V:65W97(M/F)U
XM='1O;D-O=6YT.R!X*RLI"B`@('L*("`@("`@9G)E94-H='EP92`H=FEE=V5R
XM+3YB=71T;VY;>%TI.PH@("!]"@H@("`O*B!#;&5A;B!U<"!T:&4@=VEN9&]W
XM<RX)"0D)"0DJ+PH@("!D96QW:6X@*'9I97=E<BT^=VEN*3L*("`@:68@*'9I
XM97=E<BT^<VAA9&]W*0H@("!["B`@("`@(&1E;'=I;B`H=FEE=V5R+3YS:&%D
XM;W=W:6XI.PH@("!]"@H@("`O*B!5;G)E9VES=&5R('1H:7,@;V)J96-T+@D)
XM"0D)"2HO"B`@('5N<F5G:7-T97)#1$M/8FIE8W0@*'96245715(L('9I97=E
XM<BD["@H@("`O*B!&:6YI<V@@8VQE86YI;F<@=7`N"0D)"0D)*B\*("`@9G)E
XM92`H=FEE=V5R*3L*?0H*+RH*("H@5&AI<R!F=6YC=&EO;B!E<F%S97,@=&AE
XM('9I97=E<B!W:61G970@9G)O;2!T:&4@<V-R965N+@H@*B\*=F]I9"!E<F%S
XM94-$2U9I97=E<B`H0T1+5DE%5T52("IV:65W97(I"GL*("`@=V5R87-E("AV
XM:65W97(M/G=I;BD["B`@('=C;&5A<B`H=FEE=V5R+3YW:6XI.PH@("!W<F5F
XM<F5S:"`H=FEE=V5R+3YW:6XI.PH@("!I9B`H=FEE=V5R+3YS:&%D;W<I"B`@
XM('L*("`@("`@=V5R87-E("AV:65W97(M/G-H861O=W=I;BD["B`@("`@=W)E
XM9G)E<V@@*'9I97=E<BT^<VAA9&]W=VEN*3L*("`@?0I]"@HO*@H@*B!4:&ES
XM('-E=',@8V5R=&%I;B!A='1R:6)U=&5S(&]F('1H92!V:65W97(N+BX*("HO
XM"G9O:60@<V5T0T1+5FEE=V5R("A#1$M6245715(@*G9I97=E<BP@8VAT>7!E
XM(&)U='1O;DAI9VAL:6=H="P@8F]O;&5A;B!B;W@I"GL*("`@+RH@2V5E<"!S
XM;VUE('-E;6DM<&5R:6YA;G0@:6YF;PD)"0D)*B\*("`@=FEE=V5R+3YB;W@)
XM"0D](&)O>#L*("`@=FEE=V5R+3YB=71T;VY(:6=H;&EG:'0)/2!B=71T;VY(
X,:6=H;&EG:'0["GT*
X`
Xend
SHAR_EOF
  echo 'uudecoding file cdk-4.6.0/viewer.c' &&
  uudecode _sharuue.tmp < _sharuue.tmp && rm -f _sharuue.tmp &&
  $shar_touch -am 1229121195 'cdk-4.6.0/viewer.c' &&
  chmod 0400 'cdk-4.6.0/viewer.c' ||
  echo 'restore of cdk-4.6.0/viewer.c failed'
  shar_count="`wc -c < 'cdk-4.6.0/viewer.c'`"
  test 24087 -eq "$shar_count" ||
    echo "cdk-4.6.0/viewer.c: original size 24087, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/BUGS ==============
if test -f 'cdk-4.6.0/BUGS' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/BUGS (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/BUGS (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/BUGS' &&
XCdk bugs guide.
XCopyright Mike Glover, 1995
X-------------------------------------------------------------------------------
XIf you find a bug, and want me to fix it, you will need to do a few things for 
Xme.
X	* Give me a copy or part of the code which demonstrates this bug. If
X	you can't do this, then replicate the bug in a piece of test code
X	and send me that.
X	* Make sure the bug can be replicated by sending me a list of instructions
X	on how to replicate the noted bug.
X
XIf you do this, I will mail you back telling you if the information was
Xsufficient or not. If it is, I will tell you when I hope to have this bug
Xlicked by. If you need an urgent update (ie: your boss is crawling down your
Xthroat for your program to work) tell me, I'll get to it ASAP. BTW, thanks for
Xtrusting my code enough to use in the 'real world' :).
X
XIf you find a bug and fixed it yourself, I will need the same as above with a
Xfew extras.
X	* I will need a patch of any piece of code you made so I can apply it
X	to what I have.
X	* Tar this up and send it to me.
X
XIf you have found and fixed a valid bug, you will be noted in the next
Xdistribution of this bugs file, and my warmest thanks for reducing my ever
Xgrowing workload. :)
X
XHere is the noted list of outstanding bugs and bugs of the past...
X------------------------------------------------------------------------------
X
XFound by	Widget	Symptom			Fixed by	Fixed On
X--------	------	-------			--------	--------
XMe		Graph	Doesn't work. Not sure
X			if I will fix it. If
X			people want it, I will
X			spend the time and
X			effort. If not, I may
X			just nuke it. Not sure
X			yet....
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/BUGS' &&
  chmod 0444 'cdk-4.6.0/BUGS' ||
  echo 'restore of cdk-4.6.0/BUGS failed'
  shar_count="`wc -c < 'cdk-4.6.0/BUGS'`"
  test 1618 -eq "$shar_count" ||
    echo "cdk-4.6.0/BUGS: original size 1618, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/INSTALL ==============
if test -f 'cdk-4.6.0/INSTALL' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/INSTALL (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/INSTALL (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/INSTALL' &&
XCdk installation guide.
X-------------------------------------------------------------------------------
X
XGeneral
X-------
XThis document details how to build and install the Cdk library. The first thing
Xyou should know is what compile options you may require. I have had the 
Xfortunate luck of being able to compile this library on the following
Xplatforms:
X	* Sun/OS 4.1.*
X	* Solaris 2.3/2.4
X	* AIX 3.2.* (and even AIX 4.1 but there is no mention of this in the
X                    makefile. Sorry.)
X	* HPUX 9.* (and even HPUX 10.* but there is no mention of this in the
X                    makefile. Sorry.)
X	* Linux, in both a.out and Elf.
X
XIf you have a machine that is not mentioned here and you would like to see it
Xin the makefile, mail me the additions for the makefile and I will add them in.
X
XCFLAGS
X------
XYou may need to change a few things in the makefile as far as compile options
Xare concerned, but also the C flags. There are a number of defined CFLAGS 
Xthat should be explained. They are as follows:
X
X	-DCOLOR		Add in if your curses header file supports color. 
X			Ncurses does.
X	-DWINCHBUG	If your copy of curses has a bug in the routine winch.
X	-DNOUSLEEP	If you haven't got the usleep library function.
X	-DNODYNALLOC	If your compiler does not support the use of non
X			constants in variable definitions. Set -DDNODYNALLOC
X			can't support a definition like the following:
X			char *array[variableName];
X			where variableName is a variable that was set to
X			dictate the size of the array.
X	-DAIX		As always, AIX is the exception to the rule....
X
XBuilding
X--------
XTo build the library cd into the Cdk distribution directory and type in
Xmake cdklib
XThis builds the file libcdk.a
XThats all there is to it.
X
XInstalling
X----------
XModify the makefile to set the values of INST_ROOTDIR, INST_LIBDIR,
XINST_INCDIR, and INST_MANDIR. These variables set the location of the root
Xinstall directory, the library directory, the include directory, and the 
Xman directory respectively. Once these have been set correctly, su to root
Xand type 
Xmake install
XThis will install the files:
Xcdk.h, curdefs.h, libcdk.a and all of the manual pages.
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/INSTALL' &&
  chmod 0444 'cdk-4.6.0/INSTALL' ||
  echo 'restore of cdk-4.6.0/INSTALL failed'
  shar_count="`wc -c < 'cdk-4.6.0/INSTALL'`"
  test 2143 -eq "$shar_count" ||
    echo "cdk-4.6.0/INSTALL: original size 2143, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/EXPANDING ==============
if test -f 'cdk-4.6.0/EXPANDING' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/EXPANDING (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/EXPANDING (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/EXPANDING' &&
XCdk new widget guide.
XCopyright Mike Glover, 1995
X-------------------------------------------------------------------------------
X
XIf you want to create a new widget for Cdk, and want it in the standard
Xdist of Cdk, you will have to follow some requisites that I have. I state
Xthese because Cdk has been worked on for quite some time and I finally
Xgot it to a state where the functions calls are somewhat consistent. Any new
Xwidgets should adhere to this. The requirement are as follows:
X
X	* The function names should be like:
X	newCDKXXX, destroyCDKXXX, setCDKXXX, drawCDKXX,...
X	Any widgets with function not in this format should be 'private'.
X	If this is not the case one of three things will happen:
X		1) The widget will not get accepted
X		2) I will mail you back asking you to follow the standards.
X		3) I will do it myself. (HIGHLY unlikely)
X
X	* The first parameter of the newCDKXXX function should be of type
X	CDKSCREEN.
X	* If applicable, the next two parameters should be xpos and ypos in
X	that order.
X	* If the widget has a label, the next parameter should be lpos followed
X	by char *label.
X	* If the widget has an exchangeable control function, like the entry and
X	mentry widgets, then the it should be third from the end of the
X	parameter list.
X	* The last two parameters of the newCDKXXX function should be:
X	boolean box, boolean shadow if the parameters apply.
X	* The drawCDKXXX function should have boolean box as it's last
X	parameter.
X	* The first parameters of any other function relating to the widget
X	should be a pointer to the widget type. ie: CDKRADIO *, CDKFSELECT *...
X	* A destroyCDKXXX function has to be provided as well as a drawCDKXXX
X	function.
X	* Try to contain anything specific to the widget in a single file. This
X	keeps the overhead of misc files from floating around.
X
XIf you follow the guidelines, then the files you need to change to sew the new
Xwidget into Cdk, are:
X
X	cdkscreen.c	So this widget will get refreshed on a refreshCDKScreen
X			function call.
X	binding.c	To allow key bindings for the widget. If it is possible
X			to have key bindings I stress that this be incorporated.
X	cdk.h		To add in the function def's to the header file.
X	Makefile	Add in the new widget files.
X
XIf you have done all of this then what I need from you is the following:
X
X	* A diff of all the files from the dist. that you modified. Use
X	patch, I prefer it. If you haven't got it, get it and use it. It makes
X	life easy.
X	* A copy of the new widget file.
X	* tar this up and send it to me at
X	glover@tuzo.erin.utoronto.ca
X	I will mail you back when I get it and I will tell you if everything is
X	OK or not.
X
XI hate to be such a nit pick, but if we follow the above standards, Cdk will
Xevolve into a very nice library, with a lot of really nice widgets.
X
Xttfn,
X	Mike
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/EXPANDING' &&
  chmod 0444 'cdk-4.6.0/EXPANDING' ||
  echo 'restore of cdk-4.6.0/EXPANDING failed'
  shar_count="`wc -c < 'cdk-4.6.0/EXPANDING'`"
  test 2784 -eq "$shar_count" ||
    echo "cdk-4.6.0/EXPANDING: original size 2784, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/NOTES ==============
if test -f 'cdk-4.6.0/NOTES' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/NOTES (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/NOTES (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/NOTES' &&
XCdk notes.
XCopyright Mike Glover, 1995
X-------------------------------------------------------------------------------
X
XThis document states some of the testing and history of the Cdk widget set.
X
XCdk has gone through a major face-lift since I first created it, and it's 
Xcurrent look I like enough to release and attach my name to. :) I have made sure
Xto remain as consistent as possible with function parameter positions, names,
Xpurposes, and what-not. If it's inconsistent in parts, mail me tell me what you
Xfind inconsistent and I may change it. I say may because I don't want to kill
Xanyone's code if I can help it. That is why I waited so long before releasing
XCdk. I wanted it to be as stable as possible before sending it out into the
Xworld. I think it's stable, and hopefully so will you. There are a few things
Xworth noting before continuing.
X
XCdk has gone through some fairly rigorous testing, but since I did the testing
Xit may not be complete. I have complied the code with Purify (TM) and 
XCenterline's Testcenter (TM) and both say my code is clean. There are no
Xmemory leaks, and the only problems exist in the curses library. (if I could
Xonly release a clean copy of curses????? hmmmm.......)
X
XBut since I may not be able to see the forest for the trees, I'm willing to 
Xbet that bugs still do exist, and you folks will find them. If you do find bugs
Xread the BUGS document supplied with this release to find out what to do.
X
XI do not plan on changing the interface to Cdk, so any code developed in it now
Xshould pass the test of time. The only changes I can see are bug fixes and new
Xwidgets. Lets hope this wish of mine remains true...
X
XThere is an examples directory available which demonstrates all of the widgets
Xand some extra concepts, it's a great place to tool around in before banging
Xaway at your own code.
X
XHave fun. :)
X
Xttfn,
X	Mike
X
XPS: If you want to get a hold of me mail me at
Xglover@tuzo.erin.utoronto.ca
XI would like to know your opinions of this library and how I could make it 
Xbetter.
X
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/NOTES' &&
  chmod 0444 'cdk-4.6.0/NOTES' ||
  echo 'restore of cdk-4.6.0/NOTES failed'
  shar_count="`wc -c < 'cdk-4.6.0/NOTES'`"
  test 2023 -eq "$shar_count" ||
    echo "cdk-4.6.0/NOTES: original size 2023, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/README ==============
if test -f 'cdk-4.6.0/README' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/README (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/README (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/README' &&
XCdk readme guide.
XCopyright Mike Glover, 1995
X-------------------------------------------------------------------------------
X
XOverview:
X---------
XCdk stands for 'Curses Development Kit' and it currently contains 17 ready
Xto use widgets which facilitate the speedy development of full screen
Xcurses programs. This little project of mine started as a test to see how
Xcompatible my Linux machine was to other Unix breeds. While doing this I 
Xdiscovered ncurses, and played with it. These widgets are the result of a
Xyears worth of playing. The current compliment of widgets are:
X
XWidget Type           Quick Description
X===========================================================================
XDialog                Prompts the user with a message, and the user
X                      can pick an answer from the buttons provided.
XEntry                 Allows the user to enter information.
XFile Selector         A file selector built from Cdk base widgets. This
X                      example shows how to create more complicated widgets
X                      using the Cdk widget library.
XGraph                 Draws a graph.
XHistogram             Draws a histogram.
XItem List             Creates a pop up field which allows the user to select
X                      one of several choices in a small field. Very useful
X                      for things like days of the week or month names.
XLabel                 Displays messages in a pop up box, or the label can be
X                      considered part of the screen.
XMarquee               Displays a message in a scrolling marquee.
XMatrix                Creates a complex matrix with lots of options.
XMenu                  Creates a pull-down menu interface.
XMultiple Line Entry   A multiple line entry field. Very useful
X                      for long fields. (like a description
X                      field)
XRadio List            Creates a radio button list.
XScale                 Creates a numeric scale. Used for allowing a user to
X                      pick a numeric value and restrict them to a range of values.
XScrolling List        Creates a scrolling list/menu list.
XScrolling Window      Creates a scrolling log file viewer. Can add 
X                      information into the window while its running. 
X                      A good widget for displaying the progress of
X                      something. (akin to a console window)
XSelection List        Creates a multiple option selection list.
XTemplate              Creates a entry field with character sensitive 
X                      positions. Used for preformatted fields like
X                      dates and phone numbers.
XViewer                This is a file/information viewer. Very useful
X                      when you need to display loads of information.
X===========================================================================
X
XEach widget has the ability to display color, or other character attributes.
XCdk comes with a attribute/color format command set which allows a programmer
Xto add colors and characters attributes simply.
X
XThe code has been cleaned using both Purify(TM) and Sun's testcenter(TM),
Xso it is as clean as a babies butt. :) Any leaks I have seen are in the curses
Xlibraries; there is nothing I can do about that, sorry. There are no memory
Xleaks within the code, it shouldn't core dump, and it shouldn't do anything
Xunexpected. If you do see something like this tell me after you read the BUGS
Xfile.
X
XDistribution:
X-------------
XThis distribution has a full compliment of manual pages, so any specifics to
Xthe widgets will not be addressed in this read me. If you want to get right in
Xthere, nroff the cdk.3x file in the man directory. It is the starting point
Xfor all the manual pages.
X
XThere are some other files to look at if you want to get anywhere. They are:
X
XINSTALL - This will show you how to build Cdk and install it on your system.
X          If there are any personal modifications that you think may be
X          needed, read this file. In fact read it regardless. :)
X
XCOPYING - The legal stuff to protect my butt and all of the hard work that I
X          have put into this library.
X
XEXPANDING - You feel creative enough to add a widget, here are my requirements
X            that you have to follow to make the integration of a new widget
X            seamless.
X
XBUGS - What to do when you find a bug. It also lists all of the bugs found,
X       who found then, who fixed them, and when they were fixed. If you think
X       you have found a bug look at this file. If you do not think you have
X       the most up to date version of Cdk, go get it and try to replicate the
X       problem. Then look at the BUGS file again. If it is NOT there, then you
X       can mail me notifying me of a possible bug. I will try my hardest to get
X       back to you, but I have a pretty busy schedule so don't expect an instant
X       reply. This file will also explain how I would like any bug fixes sent to
X       me.
X
XNOTES - Misc babblings of myself somewhat related to this distribution.
X
XVERSION - Contains the current rev level, when it was released, and
X          what is different from the previous release. (I promise
X          to make sure I keep this up to date. :) )
X
XTODO - A list of things I plan to do in the future. (sleep)
X
XIf you have any comments, questions, or complaints mail me at
Xglover@tuzo.erin.utoronto.ca
X
Xttfn,
X	Mike
X
XPS: There is also a Perl5 extension of this library for you Perl5 fans.
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/README' &&
  chmod 0444 'cdk-4.6.0/README' ||
  echo 'restore of cdk-4.6.0/README failed'
  shar_count="`wc -c < 'cdk-4.6.0/README'`"
  test 5465 -eq "$shar_count" ||
    echo "cdk-4.6.0/README: original size 5465, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/TODO ==============
if test -f 'cdk-4.6.0/TODO' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/TODO (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/TODO (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/TODO' &&
XCdk readme guide.
XCopyright Mike Glover, 1995
X------------------------------------------------------------------------------
X
XThere are a few things that I am either currently working on, or going to 
Xwork on in the near future. They are:
X
X	* Get the drawing routines to work correctly...
X	* I would like to be able to have a captive shell widget. This
X	would allow you to start a subshell and have the user interact 
X	with a spawned command via the captive shell. This would allow
X	you to spawn an interactive command through the widget. If any
X	one knows how to do this, please mail me. Maybe we'll work this
X	through.
X
Xttfn,
X	Mike
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/TODO' &&
  chmod 0400 'cdk-4.6.0/TODO' ||
  echo 'restore of cdk-4.6.0/TODO failed'
  shar_count="`wc -c < 'cdk-4.6.0/TODO'`"
  test 634 -eq "$shar_count" ||
    echo "cdk-4.6.0/TODO: original size 634, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/VERSION ==============
if test -f 'cdk-4.6.0/VERSION' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/VERSION (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/VERSION (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/VERSION' &&
XCdk version guide.
XCopyright Mike Glover, 1995
X-------------------------------------------------------------------------------
X
XCurrent Version: 4.6
X
XVersion History:
XVersion Number		Released On	Comment			
X==============================================================================
X4.6			Jan/1996	First release.
SHAR_EOF
  $shar_touch -am 1229121195 'cdk-4.6.0/VERSION' &&
  chmod 0444 'cdk-4.6.0/VERSION' ||
  echo 'restore of cdk-4.6.0/VERSION failed'
  shar_count="`wc -c < 'cdk-4.6.0/VERSION'`"
  test 315 -eq "$shar_count" ||
    echo "cdk-4.6.0/VERSION: original size 315, current size $shar_count"
  rm -f _sharnew.tmp
fi
# ============= cdk-4.6.0/COPYING ==============
if test -f 'cdk-4.6.0/COPYING' && test X"$1" != X"-c"; then
  echo 'x - skipping cdk-4.6.0/COPYING (file already exists)'
  rm -f _sharnew.tmp
else
  > _sharnew.tmp
  echo 'x - extracting cdk-4.6.0/COPYING (text)'
  sed 's/^X//' << 'SHAR_EOF' > 'cdk-4.6.0/COPYING' &&
XCdk copying guide.
XCopyright Mike Glover, 1995
X-------------------------------------------------------------------------------
XIn order to copy Cdk around I have some requirements that will protect me,
Xand possibly even you. First thing, I feel I should say that this little project
Xof mine has taken about a year of my 'free' time and I have put a lot of work 
Xinto it. I do ask that if anyone asks you about Cdk, tell them where you got it
Xand who wrote it. If you see Cdk installed without this file on the system
Xsomewhere, then assume the copy the person has is a 'corrupt' version. I will
Xnot be responsible for any unfortunate results if someone else makes a personal
Xmodification to the Cdk library. I will also not be responsible if for some
Xreason the installation of Cdk creates a negative effect on your machine. You
Xdo have my word that there are no "Trojan horses", worms, or other security 
Xworries lurking in this code. I hate virus writers as much as anyone else!
X
XInstead of writing my own license, I'm a programmer, not a lawyer, I'm going
Xto borrow the GNU public license on public software. If you do not agree to
Xthis license then remove the Cdk distribution and we all will be happier in
Xthe end. Here is the complete GNU public license in it's true form. I have not
Xmade any modifications to it.
X
X! will say one thing, Cdk is my copyright. I will continue to support any released
Xversions out there as long as they are in their released form. I am releasing
Xthis into the "public" because I feel I have benefited from other people's
Xhard work, I'd like to chip into the pot as well. This does NOT make Cdk
Xpublic domain though. Cdk is still my copyright, and owned by me, I am merely
Xstating this so I don't see 40 different versions of my code floating around
Xwith other people's names attached.
X
XWith that ugly stuff said, I will happily take any comments or questions about
XCdk. Input is more than welcomed. In fact I encourage it. Feel free to mail
Xme and ask questions you thin the supplied documents don't cover. If I get enough
XI may build a FAQ to help newcomers. (we'll see how Cdk is accepted though)
X
XFor you Perl programmers, there is a Perl5 extension to Cdk being released at
Xthe same time. If you see this message, pop over to the Perl newsgroups and look
Xfor the Cdk Perl5 extension.
X
Xttfn,
X	Mike
X-------------------------------------------------------------------------------
X		    GNU GENERAL PUBLIC LICENSE
X		       Version 2, June 1991
X
X Copyright (C) 1989, 1991 Free Software Foundation, Inc.
X                          675 Mass Ave, Cambridge, MA 02139, USA
X Everyone is permitted to copy and distribute verbatim copies
X of this license document, but changing it is not allowed.
X
X			    Preamble
X
X  The licenses for most software are designed to take away your
Xfreedom to share and change it.  By contrast, the GNU General Public
XLicense is intended to guarantee your freedom to share and change free
Xsoftware--to make sure the software is free for all its users.  This
XGeneral Public License applies to most of the Free Software
XFoundation's software and to any other program whose authors commit to
Xusing it.  (Some other Free Software Foundation software is covered by
Xthe GNU Library General Public License instead.)  You can apply it to
Xyour programs, too.
X
X  When we speak of free software, we are referring to freedom, not
Xprice.  Our General Public Licenses are designed to make sure that you
Xhave the freedom to distribute copies of free software (and charge for
Xthis service if you wish), that you receive source code or can get it
Xif you want it, that you can change the software or use pieces of it
Xin new free programs; and that you know you can do these things.
X
X  To protect your rights, we need to make restrictions that forbid
Xanyone to deny you these rights or to ask you to surrender the rights.
XThese restrictions translate to certain responsibilities for you if you
Xdistribute copies of the software, or if you modify it.
X
X  For example, if you distribute copies of such a program, whether
Xgratis or for a fee, you must give the recipients all the rights that
Xyou have.  You must make sure that they, too, receive or can get the
Xsource code.  And you must show them these terms so they know their
Xrights.
X
X  We protect your rights with two steps: (1) copyright the software, and
X(2) offer you this license which gives you legal permission to copy,
Xdistribute and/or modify the software.
X
X  Also, for each author's protection and ours, we want to make certain
Xthat everyone understands that there is no warranty for this free
Xsoftware.  If the software is modified by someone else and passed on, we
Xwant its recipients to know that what they have is not the original, so
Xthat any problems introduced by others will not reflect on the original
Xauthors' reputations.
X
X  Finally, any free program is threatened constantly by software
Xpatents.  We wish to avoid the danger that redistributors of a free
Xprogram will individually obtain patent licenses, in effect making the
Xprogram proprietary.  To prevent this, we have made it clear that any
Xpatent must be licensed for everyone's free use or not licensed at all.
X
X  The precise terms and conditions for copying, distribution and
Xmodification follow.
X
X		    GNU GENERAL PUBLIC LICENSE
X   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
X
X  0. This License applies to any program or other work which contains
Xa notice placed by the copyright holder saying it may be distributed
Xunder the terms of this General Public License.  The "Program", below,
Xrefers to any such program or work, and a "work based on the Program"
Xmeans either the Program or any derivative work under copyright law:
Xthat is to say, a work containing the Program or a portion of it,
Xeither verbatim or with modifications and/or translated into another
Xlanguage.  (Hereinafter, translation is included without limitation in
Xthe term "modification".)  Each licensee is addressed as "you".
X
XActivities other than copying, distribution and modification are not
Xcovered by this License; they are outside its scope.  The act of
Xrunning the Program is not restricted, and the output from the Program
Xis covered only if its contents constitute a work based on the
XProgram (independent of having been made by running the Program).
XWhether that is true depends on what the Program does.
X
X  1. You may copy and distribute verbatim copies of the Program's
Xsource code as you receive it, in any medium, provided that you
Xconspicuously and appropriately publish on each copy an appropriate
Xcopyright notice and disclaimer of warranty; keep intact all the
Xnotices that refer to this License and to the absence of any warranty;
Xand give any other recipients of the Program a copy of this License
Xalong with the Program.
X
XYou may charge a fee for the physical act of transferring a copy, and
Xyou may at your option offer warranty protection in exchange for a fee.
X
X  2. You may modify your copy or copies of the Program or any portion
Xof it, thus forming a work based on the Program, and copy and
Xdistribute such modifications or work under the terms of Section 1
Xabove, provided that you also meet all of these conditions:
X
X    a) You must cause the modified files to carry prominent notices
X    stating that you changed the files and the date of any change.
X
X    b) You must cause any work that you distribute or publish, that in
X    whole or in part contains or is derived from the Program or any
X    part thereof, to be licensed as a whole at no charge to all third
X    parties under the terms of this License.
X
X    c) If the modified program normally reads commands interactively
X    when run, you must cause it, when started running for such
X    interactive use in the most ordinary way, to print or display an
X    announcement including an appropriate copyright notice and a
X    notice that there is no warranty (or else, saying that you provide
X    a warranty) and that users may redistribute the program under
X    these conditions, and telling the user how to view a copy of this
X    License.  (Exception: if the Program itself is interactive but
X    does not normally print such an announcement, your work based on
X    the Program is not required to print an announcement.)
X
XThese requirements apply to the modified work as a whole.  If
Xidentifiable sections of that work are not derived from the Program,
Xand can be reasonably considered independent and separate works in
Xthemselves, then this License, and its terms, do not apply to those
Xsections when you distribute them as separate works.  But when you
Xdistribute the same sections as part of a whole which is a work based
Xon the Program, the distribution of the whole must be on the terms of
Xthis License, whose permissions for other licensees extend to the
Xentire whole, and thus to each and every part regardless of who wrote it.
X
XThus, it is not the intent of this section to claim rights or contest
Xyour rights to work written entirely by you; rather, the intent is to
Xexercise the right to control the distribution of derivative or
Xcollective works based on the Program.
X
XIn addition, mere aggregation of another work not based on the Program
Xwith the Program (or with a work based on the Program) on a volume of
Xa storage or distribution medium does not bring the other work under
Xthe scope of this License.
X
X  3. You may copy and distribute the Program (or a work based on it,
Xunder Section 2) in object code or executable form under the terms of
XSections 1 and 2 above provided that you also do one of the following:
X
X    a) Accompany it with the complete corresponding machine-readable
X    source code, which must be distributed under the terms of Sections
X    1 and 2 above on a medium customarily used for software interchange; or,
X
X    b) Accompany it with a written offer, valid for at least three
X    years, to give any third party, for a charge no more than your
X    cost of physically performing source distribution, a complete
X    machine-readable copy of the corresponding source code, to be
X    distributed under the terms of Sections 1 and 2 above on a medium
X    customarily used for software interchange; or,
X
X    c) Accompany it with the information you received as to the offer
X    to distribute corresponding source code.  (This alternative is
X    allowed only for noncommercial distribution and only if you
X    received the program in object code or executable form with such
X    an offer, in accord with Subsection b above.)
X
XThe source code for a work means the preferred form of the work for
Xmaking modifications to it.  For an executable work, complete source
Xcode means all the source code for all modules it contains, plus any
Xassociated interface definition files, plus the scripts used to
Xcontrol compilation and installation of the executable.  However, as a
Xspecial exception, the source code distributed need not include
Xanything that is normally distributed (in either source or binary
Xform) with the major components (compiler, kernel, and so on) of the
Xoperating system on which the executable runs, unless that component
Xitself accompanies the executable.
X
XIf distribution of executable or object code is made by offering
Xaccess to copy from a designated place, then offering equivalent
Xaccess to copy the source code from the same place counts as
Xdistribution of the source code, even though third parties are not
Xcompelled to copy the source along with the object code.
X
X  4. You may not copy, modify, sublicense, or distribute the Program
Xexcept as expressly provided under this License.  Any attempt
Xotherwise to copy, modify, sublicense or distribute the Program is
Xvoid, and will automatically terminate your rights under this License.
XHowever, parties who have received copies, or rights, from you under
Xthis License will not have their licenses terminated so long as such
Xparties remain in full compliance.
X
X  5. You are not required to accept this License, since you have not
Xsigned it.  However, nothing else grants you permission to modify or
Xdistribute the Program or its derivative works.  These actions are
Xprohibited by law if you do not accept this License.  Therefore, by
Xmodifying or distributing the Program (or any work based on the
XProgram), you indicate your acceptance of this License to do so, and
Xall its terms and conditions for copying, distributing or modifying
Xthe Program or works based on it.
X
X  6. Each time you redistribute the Program (or any work based on the
XProgram), the recipient automatically receives a license from the
Xoriginal licensor to copy, distribute or modify the Program subject to
Xthese terms and conditions.  You may not impose any further
Xrestrictions on the recipients' exercise of the rights granted herein.
XYou are not responsible for enforcing compliance by third parties to
Xthis License.
X
X  7. If, as a consequence of a court judgment or allegation of patent
Xinfringement or for any other reason (not limited to patent issues),
Xconditions are imposed on you (whether by court order, agreement or
Xotherwise) that contradict the conditions of this License, they do not
Xexcuse you from the conditions of this License.  If you cannot
Xdistribute so as to satisfy simultaneously your obligations under this
XLicense and any other pertinent obligations, then as a consequence you
Xmay not distribute the Program at all.  For example, if a patent
Xlicense would not permit royalty-free redistribution of the Program by
Xall those who receive copies directly or indirectly through you, then
Xthe only way you could satisfy both it and this License would be to
Xrefrain entirely from distribution of the Program.
X
XIf any portion of this section is held invalid or unenforceable under
Xany particular circumstance, the balance of the section is intended to
Xapply and the section as a whole is intended to apply in other
Xcircumstances.
X
XIt is not the purpose of this section to induce you to infringe any
Xpatents or other property right claims or to contest validity of any
Xsuch claims; this section has the sole purpose of protecting the
SHAR_EOF
  : || echo 'restore of cdk-4.6.0/COPYING failed'
fi
echo 'End of archive part 8'
echo 'File cdk-4.6.0/COPYING is continued in part 9'
echo 9 > _sharseq.tmp
exit 0


