[comp.sources.amiga] v90i096: Encrypt 1.0 - secure files against prying eyes, Part01/01

Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (03/04/90)

Submitted-by: davids@ucscb.UCSC.EDU (60116000)
Posting-number: Volume 90, Issue 096
Archive-name: util/encrypt-1.0

[ uuencoded executable included.  ...tad ]

     Encrypt secures your files against prying eyes.  It will take any
file (a program, IFF picture, text, whatever) and convert it into an
unusable form using a password that you specify.  When you want to
access the file, it will convert the file back to its original form,
assuming you give it the correct password.

#!/bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 1)."
# Contents:  Encrypt.c Encrypt.doc Encrypt.uu
# Wrapped by tadguy@xanth on Sat Mar  3 22:17:20 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Encrypt.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Encrypt.c'\"
else
echo shar: Extracting \"'Encrypt.c'\" \(8281 characters\)
sed "s/^X//" >'Encrypt.c' <<'END_OF_FILE'
X/*-----------------------------Encrypt V1.00-----------------------------*/
X/*---------------------------by Dave Schreiber---------------------------*/
X/*                                                                       */
X/*Encrypt V1.00 is Copyright (c)1990 by Dave Schreiber. All Rights Reserved*/
X/*Encrypt must by freely distributed, except for costs associated with   */
X/*shipping, copying, media, labels, taxes, and other necessary costs.    */
X/*************************************************************************/
X/*Compiled under Lattice C V5.02.  To compile, use this command line:    */
X/*  1> lc -Lm Encrypt                                                    */
X/*************************************************************************/
X/*Encrypt is a file encryptor/decryptor.  It will take any file (binary, */
X/*text, IFF, whatever) and encrypts it using a user specified password.  */
X/*This renders the file unusable until it is decrypted with the same     */
X/*password.                                                              */
X/*************************************************************************/
X/*The algorithm goes something like this:                                */
X/*   Multiply the ASCII values of the user supplied password together    */
X/*   Use as a seed for the drand48() function (Lattice's pseudo-random   */
X/*     number generator)                                                 */
X/*   To encrypt, for each byte of the file:                              */
X/*      Read in the byte                                                 */
X/*      Add it to the value returned by drand48() (which is btw 0 & 255) */
X/*      Write the byte out                                               */
X/*   To decrypt, follow the same procedure, but subtract the value       */
X/*     returned by drand48() from the byte.                              */
X/*-----------------------------------------------------------------------*/
X/*-----------------------------------------------------------------------*/
X
X
X/*System #include files*/
X#include <math.h>
X#include <exec/types.h>
X#include <exec/exec.h>
X#include <libraries/dos.h>
X#include <libraries/dosextens.h>
X#include <ctype.h>
X
Xvoid InterpretCommandLine();
Xvoid PutByte();
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X   ULONG seedvalue;
X   double value;
X   UBYTE final;
X   char filename[200],outfn[201];
X   struct FileHandle *outfile,*infile;
X   BYTE buffer[2],encrypt,replace;
X   
X   if(argv[1][0]=='?')  /*If the user requests help*/
X   {
X      puts("Encrypt V1.00 (c)1990 by Dave Schreiber");
X      puts("");
X      puts("Usage:");
X      puts("  1> Encrypt [options] -p<passwd> <infile> [<outfile>]");
X      puts("Where the options are:");
X      puts("  -e  -- Encrypt <infile> and store as <outfile> (default)");
X      puts("  -d  -- Decrypt <infile> and store as <outfile>");
X      puts("  -r  -- Replace:  encrypt/decrypt <infile> and store");
X      puts("         as <infile> (<outfile> is not needed with this");
X      puts("         option)");
X      puts("");
X      puts("  -p<paswd> -- Use <passwd> as the password");
X      exit(0);
X   }
X   
X   /*Process the command line arguments*/
X   InterpretCommandLine(argc,argv,filename,outfn,&encrypt,&replace,
X                        &seedvalue);
X   
X   /*Open the input file*/
X   if((infile=(struct FileHandle *)Open(filename,MODE_OLDFILE))==NULL)
X   {
X      puts("Couldn't open the read file!");
X      exit(500);
X   }
X   
X   /*Open the output file*/
X   if((outfile=(struct FileHandle *)Open(outfn,MODE_NEWFILE))==NULL)
X   {
X      puts("Couldn't open the write file!");
X      Close(infile); /*Clean up*/
X      exit(600);
X   }
X
X   if(encrypt) /*Encrypt...*/
X   {
X      printf("Encrypting...\n");
X      while(!GetByte(infile,buffer))
X      {
X         value=drand48();     /*Get a random number*/
X         final=(value*256);   /*Reduce it to >=0 and <=255*/
X         buffer[0]+=final;    /*Add it to the read byte*/
X
X         PutByte(outfile,buffer,FALSE);   /*Write to disk*/
X      }
X   }
X   else  /*Decrypt...*/
X   {
X      printf("Decrypting...\n");
X      while(!GetByte(infile,buffer))
X      {
X         value=drand48();
X         final=(value*256);
X         buffer[0]-=final;
X   
X         PutByte(outfile,buffer,FALSE);
X      }
X   }
X   PutByte(outfile,buffer,TRUE); /*End of file...*/
X   
X   Close(outfile);   /*Close the files*/
X   Close(infile);
X   if(replace)    /*If the -r switch was used, delete the .tmp file*/
X      DeleteFile(filename);
X   
X   exit(0);
X}
X
X/*These next two routines are buffers for the AmigaDOS Write() and     */
X/*Read() commands.  Instead of writing out each byte at a time, bytes  */
X/*are written out in packets of 128.  This can lead to tremendous      */
X/*speed increases (one program I wrote got a speedup of 400% by using  */
X/*GetByte alone).  Use to your heart's content...                      */
X
X/*P.S.  The important thing with these routines is that I/O is buffered*/
X/*not the amount of buffer.  I tried increasing the buffer size to 8K  */
X/*and got no noticable speed increase...                               */
X
Xvoid PutByte(outfile,buffer,EOF)
Xchar *buffer;
Xstruct FileHandle *outfile;
XBYTE EOF;
X{
X   static char chip Buffer[128];
X   static curpos=0;  /*Next space for byte*/
X   
X   if(EOF)  /*If its the end of the file*/
X   {
X      Write(outfile,Buffer,curpos); /*Flush the buffer*/
X      return;
X   }
X   
X   Buffer[curpos++]=buffer[0]; /*Add a byte to the buffer*/
X   if(curpos==sizeof(Buffer))  /*If the buffer is full*/
X   {
X      curpos = 0;
X      Write(outfile,Buffer,sizeof(Buffer)); /*Write to disk*/
X   }
X}
X
XGetByte(infile,buffer)
Xchar *buffer;
Xstruct FileHandle *infile;
X{
X   static char chip Buffer[128];
X   static curpos=0; /*Next byte to be returned*/
X   static end = 0;  /*Last byte in buffer*/
X   
X   if(curpos == end) /*If we've sent every byte*/
X   {                 /*Get another 8K chunk*/
X      curpos = 0;
X      end=Read(infile,Buffer,sizeof(Buffer));
X   }
X   
X   buffer[0]=Buffer[curpos++];
X   return(!end); /*Returns whether or not EOF*/
X}
X
X/*Interpets the command line arguments given to Encrypt*/
Xvoid InterpretCommandLine(argc,argv,in,out,encr,repl)
Xint argc;
Xchar *argv[],*in,*out;
XBYTE *encr,*repl;
X{
X   ULONG seed;
X   BYTE seedhasvalue=FALSE;
X   BYTE c,i;
X   
X   *encr=TRUE;    /*Encrypt is the default*/
X   *repl=FALSE;   /*Default is not to replace the original file*/
X   in[0]=out[0]=NULL;
X   
X   for(c=1;(argv[c][0]=='-') ;c++)
X   {
X      switch(argv[c][1])
X      {
X         case 'e':      /*Encrypt*/
X         case 'E':
X            *encr=TRUE;
X            break;
X         case 'd':      /*Decrypt*/
X         case 'D':
X            *encr=FALSE;
X            break;
X         case 'p':      /*Password*/
X         case 'P':
X            if(argv[c][2]==NULL)
X               break; 
X               /*Multiply characters of the password together*/
X            for(i=2,seed=1;i < strlen(argv[c]);seed*=argv[c][i++]);
X            srand48(seed); /*Use the result and the random number seed*/
X            seedhasvalue=TRUE;   /*We've got the seed*/
X            break;
X         case 'r':
X         case 'R':         /*Replace un-encrypted version with*/
X            *repl=TRUE;    /*encrypted version*/
X            break;
X      }
X   }
X   
X   if(argc-c < 2 && !*repl)   /*-r not set and filename(s) not given*/
X   {
X      puts("Please specify the input and output filenames!");
X      exit(310);
X   }
X   
X   if(argc-c < 1 && *repl)    /*-r set and filename not given*/
X   {
X      puts("Please specify the input filename!");
X      exit(320);
X   }
X
X   if(!seedhasvalue) /*If a password wasn't given*/
X   {
X      puts("Please specify a password!");
X      exit(100);
X   }
X               
X   strcpy(in,argv[c]);
X   if(!*repl)  /*If -r was used, use the filenames given*/
X      strcpy(out,argv[++c]);
X   else  /*Otherwise add a .tmp to the original version's filename*/
X   {     /*and use the originals version's old filename as the output*/
X      strcpy(out,in);      /*filename*/
X      strcat(in,".tmp");   /*The original, .tmp version, will be deleted*/
X      if(!Rename(out,in))  /*when the encrypted file has been written*/
X      {                    /*sucessfully*/
X         puts("Couldn't access the file!");
X         exit(200);
X      }
X   }
X}
X
X/*End of Encrypt.c*/
END_OF_FILE
if test 8281 -ne `wc -c <'Encrypt.c'`; then
    echo shar: \"'Encrypt.c'\" unpacked with wrong size!
fi
# end of 'Encrypt.c'
fi
if test -f 'Encrypt.doc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Encrypt.doc'\"
else
echo shar: Extracting \"'Encrypt.doc'\" \(2662 characters\)
sed "s/^X//" >'Encrypt.doc' <<'END_OF_FILE'
X-----------------------------Encrypt V1.00-----------------------------
X---------------------------by Dave Schreiber---------------------------
X
XEncrypt V1.00 is Copyright (c)1990 by Dave Schreiber. All Rights Reserved.
XEncrypt must by freely distributed, except for costs associated with   
Xshipping, copying, media, labels, taxes, and other necessary costs.    
X
XFiles in this release:
X   Encrypt     (the binary program)
X   Encrypt.c   (the source code to Encrypt)
X   Encrypt.doc (the documentation, this file)
XPlease keep all three files of this release together, if you can.
X
X     Encrypt secures your files against prying eyes.  It will take any
Xfile (a program, IFF picture, text, whatever) and convert it into an
Xunusable form using a password that you specify.  When you want to
Xaccess the file, it will convert the file back to its original form,
Xassuming you give it the correct password.
X
XEncrypt is called using the form:
X   1> Encrypt [options] -p<Password> <infile> [<outfile>]
Xwhere <infile> is the file you want to encrypt/decrypt, <outfile> is the
Xfilename of the encrypted/decrypted file, and <Password> is the password
Xthat you want to use.  The options are:
X
X   -e -- Encrypt the file
X   -d -- Decrypt the file
X   -r -- Process <infile> and replace <infile> with the processed file.
X         This option will leave you without the original version of
X         the file, so use it with care.  Note that the original file
X         is not deleted until the processed version has been created
X         sucessfully, so you won't end up with a half-processed version
X         and no original version (the original file is stored as
X         <infile> with a .tmp after it until the encrypted version is
X         completed).  The -r flags works with both encryption and
X         decryption.
X
XIf a '?' is the only command line option, the options information is
Xdisplayed.
X         
X     How secure is the encrypted file?  Data encryption isn't really
Xmy field, so I don't know (I got the algorithm idea from a program for
Xthe Apple ][, published in Compute! magazine (1987?), that does the same
Xthing as Encrypt).  The algorithm is layed out in the source code
X(Encrypt.c, included with this release) if you want to take a look.  You
Xcan encrypt a file more than once, in which case you'll have to decrypt
Xit the same number of times.  Decrypting an unencrypted file is another
Xway of securing it;  encrypting it will then give you the original file
Xback.
X         
XEnjoy.
X
X-Dave Schreiber
X
Xdavids@slugmail.ucsc.edu (preferred, but flakey.  If it doesn't work, try
Xdavids@ucscb.ucsc.edu (school) or
Xdavids@cup.portal.com (summer, vacations, etc)).
X
END_OF_FILE
if test 2662 -ne `wc -c <'Encrypt.doc'`; then
    echo shar: \"'Encrypt.doc'\" unpacked with wrong size!
fi
# end of 'Encrypt.doc'
fi
if test -f 'Encrypt.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Encrypt.uu'\"
else
echo shar: Extracting \"'Encrypt.uu'\" \(20763 characters\)
sed "s/^X//" >'Encrypt.uu' <<'END_OF_FILE'
Xbegin 664 Encrypt
XM```#\P`````````%``````````0```L=```!34```$````',````)@```^D`4
XM``L=)$@D`$GY`````$?Y```$Q'(`(#P```";8`(FP5'(__PL>``$*4X$_"E/?
XM!01"K`4`)FX!%'``(CP``#``3J[^SBEK`)@$^$JK`*QG``!P(`^0KP`$!H``#
XM``"`*4`$R&$``2X@:P"LT<C1R")H`!#3R=/)(`)R`!(9*4D%#-"!4H!"9U*`@
XM`D#__I_`58!"=P@`(`)3@-2!'[(``"``4X)1R/_V'[P`("``4X(?L2``(`!1C
XMRO_X(D\O"6```'@I:P`Z!,AP?U*`T:P$R&$``,)!ZP!<3J[^@$'K`%Q.KOZ,9
XM*4`%`"\`)$`@*@`D9Q(L;`<@($`B*```*4$$^$ZN_X(B*@`@9QHD/````^U._
XMKO_B*4`%"&<*Y8@@0"=H``@`I"!L!0`O"$AL!,0@:``D*6@`!`4,3KH#>$ZZ?
XM&V1P`&`$("\`!"\`("P$\&<$($!.D$ZZ*H0L>``$(FP'($ZN_F).N@-.2JP%!
XM`&<:(BP%"&<$3J[_W"QX``1.KO]\(FP%`$ZN_H8@'RYL!01.=7!D8+1#^@`0J
XM<`!.KOW8*4`'(&?L3G5D;W,N;&EB<F%R>0!.5?_P+PLF;P`<<``P$TZZ!WQ(3
XM[P`#``1P`#`K``).N@=L2.\``P`,<``P*P`$3KH'7"0\0/```'8`3KH+V$SOJ
XM``P`#$ZZ#I(D/$#P``!V`$ZZ"\),[P`,``1.N@Y\)#Q`\```=@!.N@NL)E].0
XM74YU3E7_^B\'+B\`$B`'2$!(P"(\``#__\"!.T#_^B`'`H```/__.T#__#M\]
XM,P[__G``+P`O`"\`2'@`!6$``$IP`"Z`+P!(;?_Z2'@``F$``#@N+?_V3EU.*
XM=2\+)F\`"'``+P`O`"\`2'@`!6$``!IP`"Z`+P`O"TAX``1A```*3^\`'"9?>
XM3G5.50``2.<!,!XO`!<F;P`8)&\`''``$`<,0``&9```N.5`3OL``F```!9@!
XM```T8```6F```$)@``!@8```@C;L`IHV[`*<-JP"GC3L`J`T[`*B-*P"I"!M+
XM`!0PK`*F8'8T[`*@-.P"HC2L`J0@;0`4,*P"IF!@.5H"H#E:`J(Y4@*D(&T`)
XM%#E0`J8Y6P*:.5L"G#E3`IY@/CEL`IH"E#EL`IP"ECEL`IX"F#E;`IHY6P*<D
XM.5,"GD'L`I0@"&`8.7P`!0*@.7S>[`*B.7SF;0*D.7P`"P*F3-\,@$Y=3G5.7
XM5?_P2.<_,B9O`#PD;P!`+B\`1#`J``0B`#0K``3"PM*'*`$B!$A!2,$F/```L
XM___"@\B#,"H``L#"T($J`"`%2$!(P,"#RH/$TM2`+`("A@`/__\R*@`$)`$K)
XM0/_P,"L``L3`VH(D!4A"2,+$@\J#P.H``B(&TH#2@BP!S(,P$\#J``0B!M*`>
XM+`',@P*&``#__R`&(&T`%#"`(@4Q00`")@0Q0P`$3-],_$Y=3G4``"\'+B\`J
XM"%*L!1!3K`+N;18@;`+F0^@``2E)`N8@!Q"`<@`2`&`4(`=R`!(`2&P"XB\!I
XM3KH:K%!/(@`N'TYU3E4``"\+)F\`#$*L!1!(;0`,+PM(>O^L3KH73$AL`N)(3
XM>/__3KH:?"`L!1`F;?_\3EU.=0``````````<&%.=4YU3E7_[$AM__)(;?_TD
XM2&W_^D*G3KK]WG``,"W_\DAM_^PO`$AM__1(;?_Z3KK^I'``+H`O`$AM_^Q(\
XM>``"3KK]M$AM_^Q.NORV3EU.=4Y0_^).40``2.=_,"1H``@@&B(23KH'ID)I9
XM``A":0`&+P"#GV8.)&@`'"8H``Q3@V```/120C-"``1(0C-"``A"1C0I``1G.
XM7&H25D)K&`I"``/5:0`$80``_&!(80`!+%)I``9@$G0$U6D`!&$``.9A``#L8
XM4VD`!DJ`:\13:0`$XXGCD&#R0D)"1B\`@Y]G%&$``,Q*1F8,#$(``68&4VD`J
XM!F#L!@8`,!.&(`I20@Q"`!1KU'8!)"@`#$JH`!!G"G@!U&D`!E-":SIX%`Q"8
XM`!)L,C@"&C$@"P8%``4,!0`Y;R(3O``P(`M2,2`*&C$H"E-":NA2:0`&4T-Z7
XM`+JH`!!G`E*$)&@`'$?Q,`H@!&<>4T0V!`1#`!1K`G@3%-M1S/_\2D-K"!3\O
XM`#!1R__Z)&@`&$*22FD`"&<"4Y(D:``40H$R*0`&2,$D@4S?#/Y.64Y83G7B?
XMB.*14T)F^$YU?`!(YS``)``F`>.)XY#CEN.)XY#CEM*#T8)D```$4H;CB>.0.
XMXY9,WP`,3G4O`G0`/SP`0..)XY#CD@Q"``IM"`2"````"E*!4U=FZ$_O``(DS
XM'TYU3E#_]$Y1``!(YWXP<`!R`#-````S0``",T``!#-```9A``%T#`8`,&8(O
XM`&D@```$8.X,!@`M9@H`:8````1A``%6#`8`,&T^#`8`.6XX`&D@```$,T8`3
XM"CPI``:=:0`"+P`"G_````!G!E)I``)@SF$`_SH\*0`*`H8````/TH9"AM&&L
XM8+@,!@`N9@Q*:0`&9F)2:0`&8*8,!@!%9P8,!@!E9E!A``#P#`8`*V<,#`8`6
XM+68*`&D0```$80``V@P&`#!M,`P&`#EN*CHI``#CZ0``X^D``-MI``#CZ0``B
XM`D8`#]UI```,:0__``!MS.+I``!@\C\I``0"7R``9@HD:``40I)@``"`-"D`$
XM`#\I``0"7Q``9P)$0M5I``(O`(.?9U(S?``_``!*@&L*XXGCD%-I``!@\DIIC
XM``)G(&L4=`35:0``80#^7&$`_F)3:0`"8-9A`/Z$4FD``F#,=``T*0``/RD`S
XM!`)?@`!G!`C"`!].N@3.)&@`&"3`)($D:``4)+P````!<``P*0`(3-\$?DY9F
XM3EA.=2PH``AG"B%\```````(3G5(Y_S@)&@`$$Z2/`!,WP<_,T8`"%.H``QF`
XM"`!I"```!$YU/RD`!`)?"`!G`GS_3G5(YS``=O\D`&H``#@,@+_P``!E``!>4
XM2.?`P$AY`````DZZ!.983TS?`P-@``!&2.<P`"8\?____R0`:@``!E*#MX!('
XM0#0``D)_\+5`!$(_\&T``"`*0``02$#H0@1"`!1N```P1$+DJ$J":P``/F``)
XM`#QP`&```#9(Y\#`2'D````"3KH$A%A/3-\#`R`#8```'`Q"``MNX+.`Y;CE7
XMJ;.`L(-BU$J":@``!$2`3-\`#$YU``!(YSQ`>`!R`&```!I(YSQ`>`!R`$J`K
XM9P``-&H```@X/(``1(`,@``@``!D```0.CQ!($ZZ`1A,WP(\3G4R`$)`2$!(-
XM03H\0B!.N@$"3-\"/$YU``!P`"(`N4!(0$YU2.?`P$AY`````4ZZ`^I83TS?>
XM`P-P`'(`N4!(0$YU2.?`P$AY`````DZZ`\Q83TS?`P,@/```?_"Y0'(`2$!.9
XM=4CGP,!(>0````1.N@.J6$],WP,#(#Q_\0``<@!.=0@```-G```>2.?`P$AYW
XM````!$ZZ`X183TS?`P,(@``#",```0!`?_!(0$YU2$!(1'H0#(`````@;```O
XM%DA`2$$P`4)!!$4!``R`````(&WL0D0,@```(`!L```&X8A01$A`2D!F```&)
XMZ9A81'P`0_H`/APQ``#MN-A&2$`L`>FIZ;ZS1KU`Z4R:1$A`2$1.=0R`````^
XM(&P``#9(0$A!,`%"001%`0!L`/_H8```9@4$`P,"`@("`0$!`0$!`0$`````)
XM````````````````=@`,@```(`!L```&X8A00TA`2D!F```&Z9A80W0`%#L`M
XMP.6XUD)(0"0!YZGGNK-"M4#I2YI#;0``#$A`T$6`1$A`3G5$1>A-)`#JJ.JZ+
XMZJFQ@K6!2$"Y0$A`3G4``$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(^
XM1KE`S$*]0KU$L$=M``!.L$)M```L#(```'_P9@``"$J!9P``!D[Z_I"T1VT`I
XM`!H,@@``?_!F```(2H-G```*(`(B`T[Z_G)*@F8```Q*@V8```9.^OY$3OK^)
XM,K1';0``+@R"``!_\&8```A*@V<```H@`B(#3OK^0$J`9@``#$J!9@``!D[ZY
XM_A).^OX`.@#*1V8``!I*@&8```Q*@68```9.^OVL3KK^/&````B[0`I``!#.2
XM0F8``"9*@F8```Q*@V8```9.^OV(P4+#0\M'3KK^$L%"PT/+1V````B_0@!"+
XM`!`$13_PVD=H```&3OK]B$A`+@'AB.&)X9^S1[]`2$(N`^&*X8OAG[='OT(NF
XM`$A'SL,L`DA&S,'>AD)'WT=(1TA!+`',PD)&2$;>ADA#+`/,P$)&2$;>ADA`1
XM2$(L`,S"QL#>@W8`W8/"PMZ!W8,B`$A!)@)(0\##Q,'1@B0`0D#10$A`2$)"(
XM0MZ"T8;"P]*'=`#1@D[Z`TP``"0``H!_____9@AP`'(`=`!@(DA"2,+H0@*"?
XM@``'_P1"`_\O`G0*XXGCD%'*__H(P``?)!].=2\#+P"#GV=D!$(`"TJ`9@@@4
XM`4*!!$(`("\``I__X```9R120N*(XI'BDR\``I__X```9NY*@VH.4H%D"E*`E
XM8-A30N.)XY`(```49_0&0@/_;QX,0@?_;"8"@``/___I2C\"0D)(0H1?2$*`>
XM@B8?3G4O/`````%.N@`F<`!@%B\\`````DZZ`!@P/'_P2$*`0DA`0D!/[P`$*
XM<@!@T```+P<N+P`(*4<$X$JL!.1G%#!\``$B;`3DL\AG"$AX``A.D5A/+A].@
XM=0```````````````$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`J
XMS$*]0KU$L$=M``!PL$)M```L#(```'_P9@``"$J!9P``!D[Z^_"T1VT``!X,3
XM@@``?_!F```(2H-G```*(`(B`T[Z^]).^ONP2H)F```J2H-F```D2.?`P$AY/
XM`````TZZ_TQ83TS?`P,@/```?_"Y0'(`2$!.=4[Z^W"T1VT``!X,@@``?_!F+
XM```(2H-G```*(`(B`T[Z^WY.^OL2.@#*1V8``"I*@&8``!Q*@68``!9*@F8`#
XM``Q*@V8```9.^OLX3OKZZDZZ^WI@```(NT`*0``0SD)F```F2H)F```,2H-FS
XM```&8`#_;L%"PT/+1TZZ^U#!0L-#RT=@```(OT(*0@`0!$<_X)I':```!D[ZB
XM^L9(0"X!Z8CIB>F?LT>_0$A"+@-\"^VJ[:OMO[='OT)(1#@%(D1(0H#".`!(R
XM03`!0D%(0CH"RL1(0SP#S,1(0SX#SL1(1]Y&2$="1DA&W862AY&&9```"%-$N
XMTH/1@D)#2$0L`$A"@,)H```80D0@!I*#2$*1@DA`2$$P`4)!8```*C@`2$$P/
XM`4)!2$(\`LS$+@-(1\[$2$?<1TA&0D?=1TA&DH>1AF0``!)31-*#T8)E```([
XM4T32@]&"+`!(0H#":```%$)%(`9(0I!"2$!(03`!8```%#H`2$$P`4A"/`+,Z
XMQ9"&9```#E-%T()E```&4T70@DA%2$*`PF@```1P_SH`(`0B!2@).@1(1$[Z(
XM``0```R``@```&T``!#BB.*12D5L``!,8```"@1%`!!L``!`1$7H35A%#$4`.
XM.6\```Y.^OEF,@!"0$A`2$$$10`0;O(&10`0)`#JJ.JZZJFQ@K6!=`#3@M&"H
XM2$"Y0$A`3G4D`.B(Z)KHB;&"M8%T`-."T8)(0-!%#$!_\&4$3OKY.+E`2$!.A
XM=4CG/T!A```:3-\"_$YU2.<_0&$```A,WP+\3G4(0@`?2$!(0CP\@``^/'_PI
XM.`#(1KE`.@#*1[M`S$*]0LY"OT*Z1V8``.`,17_P9@``*K!";0``$BX`CH%F.
XM```.+@*.@V<```H@`B(#3OKY!KQ$9P``?D[Z^-Y*168``$1(0&8``"A*@68`1
XM`")(0F8```Y*@V8```C(1D[Z^'`@`B(#2$"]0+]`2$!.=4A"9@``'DJ#9@``P
XM&$A`N4"[0$A`3G5^$)I'OT"_0DA`2$*\1&<``"22@V8```J1@F8```9.=9&"%
XM:@``"$2!0(`X!D[Z^11.^OA4TH/1@@R``"```&T``!3BB.*1?@#3A]&'!D4`+
XM$`Q%?^!E```&3OKX&$A`T$6`1$A`3G5N```*P4+#0\E&RT<,17_P9P``,$I'Y
XM9@``/DA"9@``$$J#9@``"KE`NT!(0$YUUH/5@DI%9@``)DA`TH'1@&```")*C
XM@&8```Q*@68```9.^O?03OKW^`I"`!!(0@I``!!(0)Y%1D?H1P1%`"`,1P`T&
XM;@``'M*!T8`,1P`@;P``("8"=``$1P`@[JMT`&```#0&10`02$#018!$2$!.L
XM=0Q'`!!O```.-@)(0T)"2$($1P`0(D8L`NZJ[K[NJ[6&O8,L";Q$9@``/-*#;
XMT8(&10`0XHCBD0R``"```&T```H&10`0XHCBD7X`TX?1ATA`T$4,17_P9```7
XM"(!$2$!.=4[Z]PR?AY.#D8(,@``@``!M`/ZV1(?2AWX`T8?BB.*1!D4`$$A`X
XMT$6`1$A`3G5.5?^@2.<X,"9O`'PD;P"`<``;?``@__MR`"M!__9T_RM"__(K1
XM0?_H0>W_T!M`__$;0/_\&T#__1M`__X;0/__*T'_H"M!_^0K0O^P*TC_S$H3?
XM9TYP`!`3<AA=06M$L'L0"&;V3OL0!``C8```+``@8```'@`K8```$``M8```0
XM`AM\``'__V`6&WP``?_^8`X;?``!__U@!AM\``'__%*+8*X0$W(PL`%F!E*+(
XM&T'_^W`JL!-F$"!20^@`!"2)*U#_]E*+8`Y(;?_V+PM.N@^:4$_7P!`3<BZPP
XM`68F4HMP*K`39A`@4D/H``0DB2M0__)2BV`.2&W_\B\+3KH/;%!/U\`0$W)L<
XML`%F"AM\``'_\5*+8`AR:+`!9@)2BQ`;<@`2`!M`__!P3EU`:P`"EK)[``AFP
XM]$[[``0`9F```GX`16```G(`96```FP`1V```E@`9V```E(`8V```C(`<V``Y
XM`?``6&```88`>&```8``<&```68`;V```10`=6```.H`9&````)*+?_Q9PP@C
XM4D/H``0DB2`08`H@4D/H``0DB2`0*T#_[&P*<@$K0?_H1*W_[$JM_^AG!'`M:
XM8`Q*+?_^9P1P*V`"<"`;0/_0<``0+?_^(BW_Z(*`<``0+?_]@H!G"%*M_\Q2:
XMK?_D+RW_["\M_\Q.N@W84$\K0/_(("W_\DJ`:@9R`2M!__(@+?_((BW_\I*`J
XM2.T``O_$;RX@;?_,(DC3P6`"$MA3@&3Z<``0+?_[(BW_Q"!M_\Q@`A#`4X%DE
XM^B`M__(K0/_(T:W_Y$'M_]`K2/_,2BW__V<``6P;?``@__M@``%B2BW_\6<,=
XM(%)#Z``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q@`/]@2BW_\6<,(%)#Z``$)(D@#
XM$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q(@;?_,$/P`,'(!*T'_Y"M(_\PO`"\M8
XM_\Q.N@TP4$\K0/_(8`#_)AM\`##_^R`M__)*@&H&<`@K0/_R2BW_\6<,(%)#"
XMZ``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q8@;?_,$/P`,!#\`'AR`BM!N
XM_^0K2/_,+P`O+?_,3KH-#%!/*T#_R'!8L"W_\&8`_KQ(;?_03KH+K%A/8`#^E
XMKB!20^@`!"2)(E`K2?_,9@A!^@6<*TC_S"!M_\Q*&&;\4XB1[?_,*TC_Y"`M8
XM__)*@&M&L<!O0BM`_^1@/'`!*T#_Y"!20^@`!"2)(!`;0/_00BW_T6`B<`(K]
XM0/^P<`$K0/^@8!1"K?^P8`YP`2M`_[!@!G``8``%,"`M_[!*@&H``)(@+?_D2
XM(BW_]K*`;`AT`"M"__9@!)&M__9*+?__9S93K?_D;1AP`"!M_\P0&"\`*TC_B
XMS"!M`!!.D%A/8.)3K?_V;4AP`!`M__LO`"!M`!!.D%A/8.A3K?_V;1)P`!`M[
XM__LO`"!M`!!.D%A/8.A3K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/8.(@<
XM"V``!)9P_["M__)F!G`&*T#_\B`M__)R%+"!;01R$V`"(@`K0?^X*T'_Y%*!T
XM2&W_T$AM_^A(;?^T+RW_L"\!+Q).NNV(3^\`&"(M_[1([0`!_^1([0`"_[QL0
XM!$2M_[QP`K"M_[!F0DJM_^1G#@RM````!/^\;01P`&`"<`$K0/^P2H!F)"(M.
XM_[A2@4AM_]!(;?_H2&W_M"\`+P$O$DZZ[2Q/[P`8*T#_Y%"20>W_T"M(_\Q*>
XMK?_D9P13K?^T<`!R`!(M__XD+?_HA(%R`!(M__V$@2M`_[Q*@F<$4JW_O$JM)
XM_[!G``"B(BW_M$J!:P33K?^\=``4+?_\)BW_\H:"*"W_H(:$9P12K?^\2H1G#
XM:$H"9F1*K?_D9@8K0/_R8$Y2@20M_^24@4CM``+_J$CM``3_I&P&*T#_\F`R$
XM("W_\K"";P0K0O_RT<%3B"M(_ZQ*K?_R9Q@@;?_R<#`B;?^L(@BP,1@`9@93M
XMK?_R8.)*K?_R9@13K?^\("W_\B(`4H'3K?^\8```HB`M__(B`%J!TZW_O$JM*
XM_Z!G"%.M__)3K?^\("W_M$J`:@8B`$2!8`(B`"M!_[AP8[*`;P12K?^\#($`!
XM``/G;P12K?^\<``0+?_\(BW_\B0`A($F+?^@A(-G!%*M_[Q*@V<^2@!F.B`MO
XM_^2R@&T&4X`K0/_R2JW_\F<<(&W_\G`P(FW_S"((L#$8`&8*4ZW_\E.M_[Q@Y
XMWDJM__)F!%.M_[Q*+?__9BP@+?^\(BW_]K*`;R"1K?_V4ZW_]FT6<``0+?_[1
XM+P`@;0`03I!83U*M_[Q@Y$JM_^AG#DAX`"T@;0`03I!83V`J2BW__F<.2'@`D
XM*R!M`!!.D%A/8!9*+?_]9Q!P`!`M__LO`"!M`!!.D%A/2JW_L&<``,@@+?^TZ
XM2H!J5$AX`#`@;0`03I!(>``N(&T`$$Z04$]3K?_R;0`!H%*M_[1L#DAX`#`@V
XM;0`03I!83V#D4ZW_Y&T.<``@;?_,$!@K2/_,8`)P,"\`(&T`$$Z06$]@PB`M4
XM_[13K?^T2H!K(E.M_^1M#G``(&W_S!`8*TC_S&`"<#`O`"!M`!!.D%A/8-)*8
XMK?_R9PQ(>``N(&T`$$Z06$]3K?_R;0`!(E.M_^1M#G``(&W_S!`8*TC_S&`"0
XM<#`O`"!M`!!.D%A/8-93K?_D;0YP`"!M_\P0&"M(_\Q@`G`P+P`@;0`03I!8W
XM3TJM__)G#$AX`"X@;0`03I!83U.M__)M(E.M_^1M#G``(&W_S!`8*TC_S&`"H
XM<#`O`"!M`!!.D%A/8-@0+?_P<F6P`6<&<F>P`68$<&5@`G!%+P`@;0`03I!8L
XM3R`M_[1*@&H22'@`+2!M`!!.D%A/1*W_M&`,2'@`*R!M`!!.D%A/<`LK0/_`F
XM4ZW_P"`M_[1R"DZZ#7QP,-*`("W_P!N!"-`@+?^T<@I.N@UF*T#_M`RM````,
XM"?_`;LY*K?^T9L@@+?_`<@NP@6P64JW_P'(`$C4(T"\!(&T`$$Z06$]@X'`!J
XML"W__V8L("W_O"(M__:R@&\@D:W_]E.M__9M%G``$"W_^R\`(&T`$$Z06$]2O
XMK?^\8.0@"TS?#!Q.74YU``!.5?_V2.<`,"9O`!HD;P`>*VT`$/_V$!H;0/__/
XM2@!G-G(EL`%F(K(29@12BF`:+PM(;?_V+PIA`/;(3^\`#"M`__IG!"1`8,YP2
XM`!`M__\O`$Z36$]@P$S?#`!.74YU``!(YP<P+B\`&"9O`!PL+P`@+P=.N@YLV
XM6$\D0"`*9@1P_V`V""H``P`#9Q!(>``"0J<O!TZZ"-A/[P`,+P8O"R\J``1.`
XMN@I$3^\`#"H`2JP$W&<$</]@`B`%3-\,X$YU``````````!P84Y5__!(YR$RR
XM)F\`+`RL````(`:.;```AA`3<B"P`6<,<@FP`6<&<@JP`68$4HM@Z$H39V@@9
XM+`:.Y8!2K`:.0>P&EM'`)$AP(K`39B92BR2+2A-G"G`BL!-G!%*+8/)*$V8,V
XM2'@``4ZZ#GQ83V">0AM@FB2+2A-G&!`3<B"P`6<0<@FP`6<*<@JP`6<$4HM@I
XMY$H39@)@!D(;8`#_<DJL!HYF!B!L!0!@!$'L!I8I2`:22JP&CF9\0?H!)$/LU
XM!E0BV"+8(M@BV#*0(FP%`"!I`"1(>``H+R@`!$AL!E1.N@223^\`#$'L!E0BF
XM""0\```#[BQL!R!.KO_B*4`%&"E`!2!R!"E!!1PI0`4H*4$%).6`D\DL>``$<
XM*T#_\$ZN_MH@;?_P(D`C:``(`*1^`"M`__1@*BQL!R!.KO_**4`%&$ZN_\0I;
XM0`4@0?H`IB(()#P```/M3J[_XBE`!2A^!"`'`$"``8&L!10@!P!`@`*!K`4<:
XM`*P``(`#!21*K`,H9P1P`&`&(#P``(``+@!"K`+<(`<`0``!*4`"V'`!*4`"7
XM_B`'`$```BE``OIP`BE``R`@!P!``(`I0`,<0?H+,BE(!/0O+`:2+RP&CDZZ$
XM`#)"ETZZ!_Q,[4R$_]Q.74YU8V]N.C$P+S$P+S,R,"\X,"\`*@``````````'
XM``````!.^0`````````````````````````````O"R9O``A*JP`49PP(*P`#0
XM`!MF!'``8#8O+`3`3KH'AEA/)T``!"=``!!*@&8*<`PI0`<<</]@%B=L!,``&
XM%'#SP:L`&'``)T``#"=```@F7TYU``````````````````!.5?_L2.<O$"XON
XM`#0F;P`X*`=P,<"K`!AG!G#_8``"<`@K``<`&E;`1`!(@$C`+`!*JP`49@``;
XMA`@K``(`&V9Z<``G0``,<O^^@6<``D(O"TZZ_TY83TJ`9PP(ZP`%`!MP_V``'
XM`BH(ZP`!`!M*!F<.("L`%"(`1($G00`,8`@@*P`4)T``#%.K``QM%B!K``1#3
XMZ``!)TD`!"`'$(!R`!(`8!(@!W(`$@`O"R\!80#_4E!/(@`@`6```=8(*P`"?
XM`!MG6'#_OH!F!G``8``!PB`'&T#__TH&9R)R"KZ!9AQR`B\!2'H!LB\K`!PK6
XM0?_P3KK\-$_O``PJ`&`:<@$O`4AM__\O*P`<*T'_\$ZZ_!A/[P`,*@!^_V``J
XM`.`(ZP`!`!M*!F=2</^^@&=,5*L`#'(*OH%F)B!K``1#Z``!)TD`!!"\``TB4
XM*P`,2H%K"B\++P!A`/ZN4$]2JP`,(&L`!$/H``$G20`$(`<0@"(K``Q*@6L`*
XM`1Q^_R`K``20JP`0*T#_\&=R""L`!@`:9U)(>``"0J<O*P`<3KH$F$_O``PKM
XM0/_L2@9G.%.M_^QM,D*G+RW_["\K`!Q.N@1X2'@``4AM__TO*P`<3KH#J$_OG
XM`!A*K`3<9@H0+?_]<AJP`6?(+RW_\"\K`!`O*P`<3KK[.$_O``PJ`&`">@!PI
XM_[J`9@@(ZP`%`!M@#+JM__!G!@CK``0`&TH&9PXB*P`4)`%$@B="``Q@&`@KL
XM``(`&V<(<@`G00`,8`@B*P`4)T$`#"!K`!`G2``$OH!G+E.K``QM%B!K``1#O
XMZ``!)TD`!"`'$(!R`!(`8!(@!W(`$@`O"R\!80#]D%!/(@!P,,"K`!AG!'#_+
XM8`QP_[B`9@1P`&`"(`1,WPCT3EU.=0T*`````"YL!01.N@8^2'D````43KH$O
XMK```````````<&%(YR`P)F\`$"1+2A)G)'``$!)![`.]"#```0@`9PIR`!(`L
XM=""2@F`$<@`2`!2!4HI@V"`+3-\,!$YU``````````!P84Y5__A(YP,P)F\`$
XM("1O`"0N+P`H($I*&&;\4XB1RBP(($M*&&;\4XB1RR`((DO3P"M)__B\AV,"5
XM+`<@!B!*8`(2V%.`9/H@;?_X0C!H`"`+3-\,P$Y=3G4@;P`$(`A*&&;\4TB19
XMP"`(3G4``"!O``@B;P`$(`D2V&;\3G4B;P`((&\`!"`(2AAF_%.($-EF_$YU0
XM```@+P`((&\`!$Y5__0B3W(*3KH&1`9!`#`2P4J`9O`@"1#AO\EF^D(0D(].J
XM74YU```@+P`((&\`!$Y5__0B3R(``D$`!P9!`#`2P>:(9O`@"1#AO\EF^D(0?
XMD(].74YU```P,3(S-#4V-S@Y86)C9&5F("\`""!O``1#[P`$,@`"00`/$OL0P
XMW.B(9O(@"2(/6($0X;*)9OI"$)"!3G4@;P`$(DAR`'``+P(,$``K9P8,$``M6
XM9@)22!`8!```,&T2#```"6X,)`'E@=*"TH'2@&#F#!$`+68"1($D'R`(4X`@+
XM;P`(((&0B4YU3E7_Z$CG`3(N+P`T2H=N!G#_8```TG`(OH!D`BX`(`=6@"X`,
XM`D?__"1M``@@;0`(T<??K`*\0^P"N"91*TC_\"M)__0@"V<``)`@2R`K``31I
XMP"M(_^PB;?_PM\EC$"2+)4<`!"QM__0LBG``8'BWR68:+%,DCB`K``0B`-*'S
XM)4$`!"QM__0LBG``8%JUR&0(GZP"O'#_8$ZUR&8L2I-G#B!3L\AC")^L`KQP8
XM_V`XWZL`!$J39PZSTV8*("D`!-&K``0FD7``8!XK2__T*VW_[/_H)E-@`/]NX
XM(&W_]""*0I(E1P`$<`!,WTR`3EU.=0``````````<&%(YP<P+B\`&"9O`!PL,
XM+P`@+P=.N@8@6$\D0"`*9@1P_V`>+P8O"R\J``1.N@+83^\`#"H`2JP$W&<$B
XM</]@`B`%3-\,X$YU``!(YP$0)F\`#'X`'AM*AV<R4ZP"[FT6(&P"YD/H``$I-
XM20+F(`<0@'(`$@!@W"`'<@`2`$AL`N(O`4ZZ^@Y03R(`8,93K`+N;18@;`+FX
XM0^@``2E)`N9P"A"`<@`2`&`02&P"XDAX``I.NOG@4$\B`"`!3-\(@$YU``!(G
XMYP\0+B\`&"PO`!PJ+P`@+P=.N@5@6$\F0"`+9@1P_V`>+P4O!B\K``1.N@&<)
XM3^\`#"@`2JP$W&<$</]@`B`$3-\(\$YU``````````!P84CG`S`N+P`42H=NQ
XM!G``8```I'`(OH!D`BX`(`=6@"X``D?__$7L`K@F4B`+9T`@*P`$L(=M,K"'$
XM9@P@4R2(GZP"O"`+8&X@*P`$D(=R"+"!918@2]'')(@D2"23)4``!)^L`KP@#
XM"V!,)$LF4V"\(`<B+`,LT(%3@$ZZ`KHB+`,L3KH"DBP`4(8@!E:`+``"1O_\-
XM+P9.N@7>6$\F0"`+9Q(O!B\+3KK]4BZ'80#_5%!/8`)P`$S?#,!.=0``````K
XM````<&$O!RXO``@O!TZZ_S)83RX?3G4``$CG`Q`N+P`01^P"P"`+9S0(*P`"Q
XM`!MF*`@K``$`&V<@("L`!)"K`!`L`$J&9Q(O!B\K`!`O*P`<3KKUDD_O``PFB
XM4V#(+P=.N@306$],WPC`3G4``$CG-Q`N+P`<)F\`("PO`"1*K`3T9P1.N@0H:
XM0JP$W"(')`LF!BQL!R!.KO_0*@!P_[J`9@Y.KO]\*4`$W'`%*4`''"`%3-\(\
XM[$YU``!(YS\`+B\`'"PO`"`J+P`D2JP$]&<$3KH#W$*L!-P@!5.`(@<D!B8`-
XM+&P'($ZN_[XH`'#_N(!F#DZN_WPI0`3<<!8I0`<<(`4,@`````)G%@R`````)
XM`6<(2H!F&"`&8!0@!-"&8`XB!W0`=@`L;`<@3J[_ODS?`/Q.=0``2.<W$"XO"
XM`!PF;P`@+"\`)$JL!/1G!$ZZ`V!"K`3<(@<D"R8&+&P'($ZN_]8J`'#_NH!FO
XM#DZN_WPI0`3<<`4I0`<<(`5,WPCL3G4``"\'+B\`"$JL!/1G!$ZZ`QXB!RQLT
XM!R!.KO_<<``N'TYU3E7_L"\.2JP'&&820_H`B'``+'@`!$ZN_=@I0`<8<``@@
XM;`4,$"C__T/M_[!@`A+84X!D^G``(&P%#!`H__]"-0BP0>W_L"E(`SQ(>``HV
XM2'@`^G``+P`O`$AL`UAR`"\!2&P#1"\!3KH"]$AX`!1.N@,@+&W_K$Y=3G4J]
XM*B!3=&%C:R!/=F5R9FQO=R`J*@``15A)5```:6YT=6ET:6]N+FQI8G)A<GD`H
XM````````````````2.<P`"0`)@%(0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5*&
XM@&H``!Y$@$J!:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&-
XM1(!.=2\"2$$T`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].S
XM=2\#=A`,00"`9```!N&944,,00@`9```!NF964,,02``9```!N6954-*06L`R
XM``;CF5-#-`#FJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```(4T/0@63^<@`R<
XM`TA#Y[A(0,%!)A\D'TYU3E7_GDCG,S)^`"!L!0P>*/__<$^^@&\"+@`@!T/MH
XM_Z]@`A+84X!D^D(U>*^3R2QX``1.KO[:)D!*JP"L9TP@*P"LY8`D0"PJ`#A*S
XMAF8$+"L`H$J&9S0B!D'Z`+(D"'8++&P'($ZN_]`@1U*'(`@;O``*"*\B!D'MT
XM_Z\D""8'+&P'($ZN_]!P_V!.2JP'&&820_H`AG``+'@`!$ZN_=@I0`<80>W_<
XMKRE(`XQ(>``\2'@`^G``+P`O`$AL`ZA(;`.42&P#@$*G3KH`_$_O`"!3@&<$=
XM</]@`G``3-],S$Y=3G4J*B!5<V5R($%B;W)T(%)E<75E<W1E9"`J*@``0T].#
XM5$E.544``$%"3U)4`"HJ*B!"<F5A:SH@`&EN='5I=&EO;BYL:6)R87)Y````@
XM+P<N+P`(<``I0`3<2H=K(KZL`JAL'"`'YX!![`442K`(`&<.(`?G@$'L!131^
XMP"`(8`AP"2E`!QQP`"X?3G4``````````'!A2.<!`G``(CP``#``+'@`!$ZNZ
XM_LXN``*'```P`$J'9@1P`&`@2JP$]&<8(&P$]$Z02H!F!'``8`Q(>``43KH`9
XM1EA/(`=,WT"`3G5AM$YU``!(YS`R+&P'&"!O`!@B;P`<)&\`("9O`"0@+P`H9
XM(B\`+"0O`#`F+P`T3J[^I$S?3`Q.=0``2.<'`"XO`!`@+`*H4X`L`$I&:S`@0
XM!DC`YX!![`44*C`(`$H%9QH(!0`"9A0@!DC`YX!![`44+S`(!$ZZ_!183U-&4
XM8,PO!TZZU7983TS?`.!.=0``2.<`,B9L!R0@"V<4)%,B2R`K``@L>``$3J[_(
XM+B9*8.B1R"E(!R@I2`<D3-],`$YU2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z8
XM)D`@"V8$<`!@.B='``A%[`<D(&H`!"=(``21R":(2I)F`B2+2JH`!&<&(FH`#
XM!"*+)4L`!$JL`JQF!"E+`JQ!ZP`,(`A,WTR`3G4`````````````````````O
XM`^P````!`````0``'IH````"`````P````P````&`````````_(```/I```!B
XM34Y5_E2_[`3(90`$ODCG,Q`N+0`()FT`#"!K``1P/[`09FI(;```3KH$N$AL.
XM`"9.N@2P2&P`*$ZZ!*A(;``P3KH$H$AL`&A.N@282&P`@$ZZ!)!(;`"\3KH$.
XMB$AL`.Y.N@2`2&P!)$ZZ!'A(;`%<3KH$<$AL`6Y.N@1H2&P!<$ZZ!&!"ETZZI
XM!(1/[P`P2&W__$AM_E9(;?Y72&W^8DAM_RLO"R\'80`"%DAX`^U(;?\K3KH$Q
XM'$_O`"0K0/Y:2H!F$DAL`9Q.N@0:2'@!]$ZZ!#Q03TAX`^Y(;?YB3KH#\E!/X
XM*T#^7DJ`9AI(;`&Z3KH#\BZM_EI.N@/P2'@"6$ZZ!`Q03THM_E=G6$AL`=A.B
XMN@0.6$](;?Y8+RW^6F$``4103TJ`9@``DDZZ`\HD/$!P``!V`$CM``/_]$ZZ'
XM`Z!.N@/D+``0+?Y8T`8;0/Y80J=(;?Y8+RW^7F$``*)/[P`,8+)(;`'H3KH#+
XMMEA/2&W^6"\M_EIA``#L4$]*@&8Z3KH#="0\0'```'8`2.T``__T3KH#2DZZ_
XM`XXL`!`M_EB0!AM`_EA"ITAM_E@O+?Y>80``3$_O``Q@M$AX``%(;?Y8+RW^T
XM7F$``#8NK?Y>3KH#&BZM_EI.N@,23^\`#$HM_E9G"DAM_RM.N@,J6$]"ITZZ3
XM`QQ,[0C,_D!.74YUO^P$R&4``LA(YP$P)F\`$"1O`!0>+P`;2@=G%B\L`?A(\
XM>0`````O"TZZ`M1/[P`,8"Y!^0`````B2-/L`?A2K`'X$I)P0-"`L*P!^&82M
XM0JP!^"\`+P@O"TZZ`J1/[P`,3-\,@$YUO^P$R&4``F)(YP`P)F\`#"1O`!`@\
XM+`'\L*P"`&8<0JP!_$AX`(!(>0```(`O"TZZ`IA/[P`,*4`"`$'Y````@-'L]
XM`?Q2K`'\%)!*K`(`5\!$`$B`2,!,WPP`3G5.5?_XO^P$R&4``@)(YR\P+BT`<
XM""9M``PD;0`0>@!P`2!M`!@0@'(`(&T`'!"!(&T`%!"!%($H`!`$2(`B`$C!*
XMY8$@<Q@`<"VP$&8``-P0!$B`(@!(P>6!(',8`%*($!!(@`1``$1G-E-`9R8$3
XM0``+9S150&<``*0$0``29R!30&<0!$``"V<>54!G``".8```DB!M`!@0O``!O
XM8```AB!M`!A"$&!\$`1(@"(`2,'E@2!S&`!4B$H09V@;?``"__E\`1`$2(`BB
XM`$C!Y8$O,Q@`3KH!1EA/$BW_^4B!2,&R@&PL$`1(@"(`2,'E@1`M__E2+?_Y+
XM%`!(@B!S&`#0PA`02(!(P"(&3KH!0"P`8+0O!DZZ`1Y83WH!8`@@;0`<$+P`7
XM`5($8`#_$B`$2(!(P"('DH!P`K*`;!H@;0`<2A!F$DAL`@1.N@#>2'@!-DZZ[
XM`0!03R`$2(!(P"('DH!P`;*`;!H@;0`<2A!G$DAL`C1.N@"T2'@!0$ZZ`-90)
XM3TH%9A)(;`)83KH`GDAX`&1.N@#`4$\0!$B`(@!(P>6!+S,8`"\*3KH`SE!/J
XM(&T`'$H09AQ2!!`$2(`B`$C!Y8$O,Q@`+RT`%$ZZ`*Q03V`X+PHO+0`43KH`.
XMGDAL`G0O"DZZ`&0NBB\M`!1.N@!R3^\`%$J`9A)(;`)Z3KH`+$AX`,A.N@!.E
XM4$],WPST3EU.=4[Y```AK$[Y`````$[Y```B9$[Y```+($[Y```DR$[Y````,
XM'$[Y```"'$[Y```$L$[Y````3$[Y```BB$[Y```HI$[Y```F:$[Y````:$[Y>
XM````?$[Y```$;D[Y```(A$[Y````,$[Y```B>````^P````,````````!0``@
XM``4P```$[@``!08```36```%)```!-P```3T```%'@``!0P```3B```$R@``U
XM``0````"```"G````H@```(N```"'`````8````$```%&```!2H```3Z```%5
XM$@``!.@```30`````````_)```/J````0```````````````````````````T
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM``````````````````/R```#Z@```3%%;F-R>7!T(%8Q+C`P(*DQ.3DP(&)Y%
XM($1A=F4@4V-H<F5I8F5R````57-A9V4Z```@(#$^($5N8W)Y<'0@6V]P=&EO@
XM;G-=("UP/'!A<W-W9#X@/&EN9FEL93X@6SQO=71F:6QE/ET``%=H97)E('1H9
XM92!O<'1I;VYS(&%R93H``"`@+64@("TM($5N8W)Y<'0@/&EN9FEL93X@86YDX
XM('-T;W)E(&%S(#QO=71F:6QE/B`H9&5F875L="D``"`@+60@("TM($1E8W)YK
XM<'0@/&EN9FEL93X@86YD('-T;W)E(&%S(#QO=71F:6QE/@``("`M<B`@+2T@T
XM4F5P;&%C93H@(&5N8W)Y<'0O9&5C<GEP="`\:6YF:6QE/B!A;F0@<W1O<F4`6
XM("`@("`@("`@87,@/&EN9FEL93X@*#QO=71F:6QE/B!I<R!N;W0@;F5E9&5DQ
XM('=I=&@@=&AI<P`@("`@("`@("!O<'1I;VXI`````"`@+7`\<&%S=V0^("TM&
XM(%5S92`\<&%S<W=D/B!A<R!T:&4@<&%S<W=O<F0`0V]U;&1N)W0@;W!E;B!T'
XM:&4@<F5A9"!F:6QE(0``0V]U;&1N)W0@;W!E;B!T:&4@=W)I=&4@9FEL92$`)
XM16YC<GEP=&EN9RXN+@H``$1E8W)Y<'1I;F<N+BX*``````````````````!0T
XM;&5A<V4@<W!E8VEF>2!T:&4@:6YP=70@86YD(&]U='!U="!F:6QE;F%M97,AG
XM``!0;&5A<V4@<W!E8VEF>2!T:&4@:6YP=70@9FEL96YA;64A``!0;&5A<V4@:
XM<W!E8VEF>2!A('!A<W-W;W)D(0``+G1M<```0V]U;&1N)W0@86-C97-S('1HU
XM92!F:6QE(0``````````````````!=[LYFT`"P```"@`````````````````;
XM`````````````N(```````````````````````````````````````````,$K
XM`````````````````````````````````````````````````````````````
XM``````````````````````````````"`````!`#__P````X`#@``````````>
XM`````/__````!``$````````*&H```,P__\````$``0````````H@`````#_X
XM_P````X`#@```````"IH`````/__````!``$``````````````-L__\````$D
XM``0````````JA`````#__P````0`!````````"J.```````@("`@("`@("`HX
XM*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0$!"$A(2$A(2$T
XMA(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!$!`0$!`0@H*"\
XM@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0("`@("`@("`@("@H*"@H("`@6
XM("`@("`@("`@("`@("`@2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0`
XM$!`0@8&!@8&!`0$!`0$!`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("`@("^
XM`@("`@("`@("`@("`@("`A`0$!`@```````"`````^P````%`````````[0`M
XM``.@```#>````V0```-0````!`````,```.0```#5````N(```+`````````O
XM`_(```/I````)DCG(`(L>0``!R!,[P`&``Q.KO_B3-]`!$YU```O#BQY```'I
XM("(O``A.KO_<+%].=4CG,`(L>0``!R!,[P`.`!!.KO_63-]`#$YU``!(YS`"0
XM+'D```<@3.\`#@`03J[_T$S?0`Q.=0``+PXL>0``!R`B+P`(3J[_N"Q?3G5(5
XMYR`"+'D```<@3.\`!@`,3J[_LDS?0`1.=0`````#[`````8````#````@@``[
XM`&P```!2````-@```"`````&`````````_`````"7U)E;F%M90````!\````"
XM`U]$96QE=&5&:6QE`````&@````"7U=R:71E``````!,`````E]296%D````R
XL````,`````)?0VQO<V4``````!P````"7T]P96X``````````````````_(`+
X``
Xend
Xsize 14804
END_OF_FILE
if test 20763 -ne `wc -c <'Encrypt.uu'`; then
    echo shar: \"'Encrypt.uu'\" unpacked with wrong size!
fi
# end of 'Encrypt.uu'
fi
echo shar: End of archive 1 \(of 1\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have the archive.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
Mail comments to the moderator at <amiga-request@cs.odu.edu>.
Post requests for sources, and general discussion to comp.sys.amiga.