Adobe End-User License Agreement

By downloading software of Adobe Systems Incorporated or its
subsidiaries ("Adobe") from this site, you agree to the following terms
and conditions. If you do not agree with such terms and conditions do
not download the software. The terms of an end user license agreement
accompanying a particular software file upon installation or download
of the software shall supersede the terms presented below.

The export and re-export of Adobe software products are controlled by
the United States Export Administration Regulations and such software
may not be exported or re-exported to Cuba, Iran, Iraq, Libya, North
Korea, Sudan, Syria, or any country to which the United States
embargoes goods. In addition, Adobe software may not be distributed to
persons on the Table of Denial Orders, the Entity List, or the List of
Specially Designated Nationals.

By downloading or using an Adobe software product you are certifying
that you are not a national of Cuba, Iran, Iraq, Libya, North Korea,
Sudan, Syria, or any country to which the United States embargoes goods
and that you are not a person on the Table of Denial Orders, the Entity
List, or the List of Specially Designated Nationals.

If the software is designed for use with an application software
product (the "Host Application") published by Adobe, Adobe grants you a
nonexclusive license to use such software with the Host Application
only, provided you possess a valid license from Adobe for the Host
Application. Except as set forth below, such software is licensed to
you subject to the terms and conditions of the End-User License
Agreement from Adobe governing your use of the Host Application.

DISCLAIMER OF WARRANTIES: YOU AGREE THAT ADOBE HAS MADE NO EXPRESS
WARRANTIES TO YOU REGARDING THE SOFTWARE AND THAT THE SOFTWARE IS BEING
PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. ADOBE DISCLAIMS
ALL WARRANTIES WITH REGARD TO THE SOFTWARE, EXPRESS OR IMPLIED,
INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE, MERCHANTABILITY, MERCHANTABLE QUALITY, OR
NONINFRINGEMENT OF THIRD-PARTY RIGHTS. Some states or jurisdictions do
not allow the exclusion of implied warranties, so the above limitations
may not apply to you.

LIMIT OF LIABILITY: IN NO EVENT WILL ADOBE BE LIABLE TO YOU FOR ANY
LOSS OF USE, INTERRUPTION OF BUSINESS, OR ANY DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND (INCLUDING
LOST PROFITS) REGARDLESS OF THE FORM OF ACTION WHETHER IN CONTRACT,
TORT (INCLUDING NEGLIGENCE), STRICT PRODUCT LIABILITY OR OTHERWISE,
EVEN IF ADOBE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Some
states or jurisdictions do not allow the exclusion or limitation of
incidental or consequential damages, so the above limitation or
exclusion may not apply to you.

