Soltys, PC DOS version English v1.0
-----------------------------------
(C) Laboratorium Komputerowe Avalon 1995-2011
---------------------------------------------

 1) You may distribute this game for free on any medium, provided this license
and all associated copyright notices and disclaimers are left intact.

 2) You may charge a reasonable copying fee for this archive, and may distribute
it in aggregate as part of a larger & possibly commercial software distribution
(such as a Linux distribution or magazine coverdisk). You must provide proper
attribution and ensure this license and all associated copyright notices, and
disclaimers are left intact.

 3) You may not charge a fee for the game itself. This includes reselling the
game as an individual item.

 4) You may modify the game as you wish.  You may also distribute modified
versions under the terms set forth in this license, but with the additional
requirement that the work is marked with a prominent notice which states that
it is a modified version.

 5) All game content is (C) Laboratorium Komputerowe Avalon.

 6) THE GAMEDATA IN THIS ARCHIVE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING AND NOT LIMITED TO ANY IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
