PRIMATE PLUNGE
uDevGame LICENSE Version 4b1

Copyright (c) 2003, Joseph Humfrey All rights reserved.

LIMITED USE SOFTWARE LICENSE AGREEMENT

This Limited Use Software License Agreement (the "Agreement") is a
legal agreement between you, idevgames.com, and Joseph Humfrey. By
downloading or otherwise receiving the software material, which
includes source code (the "Source Code"), you are agreeing to be bound
by the terms of this Agreement. If you do not agree to the terms of
this Agreement, promptly destroy the Software.

"Distribution" refers to all material included in the logical
container of this license file (e.g. folder, directory, or archive).

"Software" refers to all material in the Distribution, and any
derivative thereof, that can be used to control the operation of a
computer, directly or indirectly, including, but not limited to,
source code, byte code, object code, executables, and scripts. This
does not include any images, sounds, movies, music, models, or other
content included in the Distribution.

"Private use" refers to use of the Software on a personal computer
owned or controlled by you.

"Educational use" refers to examination and modification of the
Software to better understand the techniques used in it.

"Commercial Use" refers to use of the Software resulting in
foreseeable compensation or use in connection with any business
activity.

"Use" refers to loading into memory, executing, interpreting,
installing, copying, compiling, decompiling, disassembling, recording,
compressing, decompressing, transferring, translating, or otherwise
processing the Software.

1. Grant of License.

Joseph Humfrey grants to you the right to Use the Software for Private
and Educational purposes. You have no ownership or proprietary rights
in or to the Software. The Software, together with any archive copies
thereof, shall be destroyed when no longer used in accordance with
this Agreement.

You agree to use your best efforts to see that any use of the Software
licensed hereunder complies with the terms and conditions of this
License Agreement as well as all laws and regulations of the United
States and any other foreign country in which the Software is used.

2. Permitted Uses.

Except as prohibited below, you may make any modifications to the
Software and recompile it for your own Private or Educational Use. You
may make modifications to parts of the Distribution other than the
Software only to the minimum extent necessary to allow your modified
version(s) of the Software to operate. You shall not obtain any
ownership, copyright, proprietary or other interest in or to the the
Distribution, or any part thereof.

3. Prohibited Uses.

Commercial Use of the Distribution, or any part thereof, is
prohibited. You may not modify the Software to communicate with other
programs except for debugging or analysis purposes. You may not allow
your modified version(s) of the Software to communicate with the
unmodified Software. You may not disclose the Distribution, or any
part thereof, to others in any form, original or modified. All other
use of the Distribution, or any part thereof, not explicitly allowed
above is prohibited.

4. Copyright.

Joseph Humfrey shall retain unlimited transferable and commercially
exploitable rights to the Distribution. Joseph Humfrey implicitly
grants "idevgames.com" irrevocable perpetual non-exclusive
distribution rights for the Distribution. Except as explicitly allowed
hereabove, you may not reproduce, copy, or disclose to others, the
Distribution or any part thereof.

5. No Warranties.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

The above copyright notice and this permission notice shall be
included in all copies of the Distribution and works derived
therefrom.
