****************************************************************
General License Agreement and Lack of Warranty *****************
****************************************************************

This software is distributed in the hope that it will be useful (both
in and of itself and as an example of lisp programming), but WITHOUT
ANY WARRANTY. The author(s) do not accept responsibility to anyone for
the consequences of using it or for whether it serves any particular
purpose or works at all. No warranty is made about the software or its
performance.

Use and copying of this software and the preparation of derivative
works based on this software are permitted, so long as the following
conditions are met:
	o  The copyright notice and this entire notice are included intact
	   and prominently carried on all copies and supporting documentation.
	o  No fees or compensation are charged for use, copies, or
	   access to this software. You may charge a nominal
	   distribution fee for the physical act of transferring a
	   copy, but you may not charge for the program itself.
	o  If you modify this software, you must cause the modified
	   file(s) to carry prominent notices (a Change Log)
	   describing the changes, who made the changes, and the date
	   of those changes.
	o  Any work distributed or published that in whole or in part
	   contains or is a derivative of this software or any part
	   thereof is subject to the terms of this agreement. The
	   aggregation of another unrelated program with this software
	   or its derivative on a volume of storage or distribution
	   medium does not bring the other program under the scope
	   of these terms.
	o  Permission is granted to manufacturers and distributors of
	   lisp compilers and interpreters to include this software
	   with their distribution.

This software is made available AS IS, and is distributed without
warranty of any kind, either expressed or implied.

In no event will the author(s) or their institutions be liable to you
for damages, including lost profits, lost monies, or other special,
incidental or consequential damages arising out of or in connection
with the use or inability to use (including but not limited to loss of
data or data being rendered inaccurate or losses sustained by third
parties or a failure of the program to operate as documented) the
program, even if you have been advised of the possibility of such
damanges, or for any claim by any other party, whether in an action of
contract, negligence, or other tortious action.
