Hexxagon
------------------------------------------------------------------------------
The Hexxagon code has the following additional copyright and restrictions:

Copyright (C) 2001 Erik Jonsson.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Please see the file COPYING for more information.

This tree is only a subset of the original Hexxagon source.  Namely, the X11
code has been removed, and the source from libhexx has been integrated directly
into the program.

