			 Ximian Logo License
			     Version 1.0

Copyright 2001 Ximian, Inc.  All rights reserved.  Ximian and the
Ximian logo (the "Ximian Logo") are trademarks of Ximian, Inc.

Ximian, Inc. creates and distributes certain software (the "Ximian
Public Software") under the GNU General Public License, the GNU Lesser
General Public License, or other similar so-called "open source"
licenses (collectively, the "Public Licenses," and each a "Public
License").  In some cases, Ximian, Inc. distributes the Ximian Public
Software with files that include the Ximian Logo (the "Ximian Logo
Files").  The Ximian Logo Files are separate and independent from the
Ximian Public Software and are unrelated to the functionality of the
Ximian Public Software.  The Ximian Logo Files are never distributed
under the terms of any Public License.  The Ximian Logo Files and
Ximian Logo may only be used and distributed pursuant to the terms of
this license.

Ximian, Inc. grants you the non-exclusive, limited license (the
"License") to use, copy, and redistribute the Ximian Logo Files and
Ximian Logo, but only in conjunction with the permitted use, copying,
or redistribution of an official unmodified release of Ximian Public
Software that calls upon the Ximian Logo Files during the normal
course of operation and provided that:

    1. You include this notice and license with each copy of the
       Ximian Logo Files that you make or distribute, and do not
       alter, delete, or modify it in any way;

    2. You do not modify the Ximian Logo Files or the Ximian Logo or
       its appearance in any manner or use any confusingly similar
       mark;

    3. You do not use the Ximian Logo Files or Ximian Logo as, or as
       part of, a trademark, trade name, or trade identifier of any
       person other than Ximian, Inc. or in any other fashion except
       as set forth in this license;

    4. You only use, copy, or distribute the Ximian Logo Files or
       Ximian Logo in conjunction with an unmodified official release
       of the Ximian Public Software as provided by Ximian, Inc.; and

    5. If you modify the Ximian Public Software pursuant to the terms
       of the license that accompanies it, you do not use, copy, or
       redistribute the Ximian Logo Files or Ximian Logo with the
       modified software.

Ximian, Inc. reserves the right to verify your compliance with the
terms of the License.  In the event that Ximian, Inc. is not
satisfied, in its sole discretion, that you are (and have been at all
times in the past) in full compliance with the terms of the License
and with Ximian, Inc.'s standards and guidelines for use of its
trademarks and logos, Ximian, Inc. may immediately terminate the
License.

THIS SOFTWARE IS PROVIDED "AS IS" AND XIMIAN, INC. GIVES AND MAKES NO
REPRESENTATION OR WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, AND
SPECIFICALLY, WITHOUT LIMITATION, DISCLAIMS ANY IMPLIED WARRANTY OF
MERCHANTIBILITY, ANY IMPLIED WARRANTY OF FITNESS FOR ANY PARTICULAR
PURPOSE, AND ANY IMPLIED WARRANTY ARISING BY USAGE OR TRADE, COURSE OF
DEALING, OR COURSE OF PERFORMANCE.  IN NO EVENT SHALL XIMIAN,
INC. HAVE ANY LIABILITY, OBLIGATION OR RESPONSIBILITY FOR ANY
INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL OR EXEMPLARY DAMAGES, OR
DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR USE, EVEN IF XIMIAN,
INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

