Master PDF Editor
Copyright © Code Industry Ltd All rights reserved.

-------------------------------------------------------------

LICENSE AGREEMENT

Code Industry Ltd (hereinafter referred to as the “Author”)
hereby grants you a non-exclusive license (hereinafter referred to as
the “License”) to use the software Master PDF Editor (hereinafter
referred to as the “Software”) on the terms set forth hereunder.

1. GRANT OF LICENSE.
This License grants you the following rights. By installing the
Software you accept the License and agree to comply with it.

2. SOFTWARE.
Install and use one copy of the Software for a single user. You may
also install a copy for that user’s exclusive use on either a home
or portable computer.
If you want to install and use the copy in the network (on a computer
file server) you need to purchase an additional license for all users
with access to this Software.

3. NON-COMMERCIAL USE.
You are hereby granted to use this Software for non-commercial
purposes without charge for unlimited time on Desktop Linux. Some
advanced functionality is locked for non-commercial use. Software can
also be used for viewing and printing documents only on Windows and
macOS for unlimited time without any charge.

4. REVERSE ENGINEERING.
You may not modify, reverse engineer, decompile, disassemble, or
create derivative works based on the Software, or any portion hereof.

5. RENTAL.
You may not rent or lease the Software.

6. TRANSFER.
You may transfer the Software to a single recipient on a permanent
basis provided that you retain no copies of the Software (including
backup or archival copies) and the recipient agrees to the terms and
conditions of this License.

7. TERMINATION.
The License is in effect until terminated. The License will terminate
automatically if you fail to comply with the limitations described
herein. On termination, you must destroy all copies of the Software
and Documentation.

8. USE OF LOGOS AND TRADEMARKS.
You may not use the Author’s name, logos, or trademarks in any
manner including, without limitation, in your advertising or
marketing materials, except as is necessary to affix the appropriate
copyright notices as required herein.

9. MISCELLANEOUS.
This Agreement represents the complete agreement concerning this
License between the parties and supersedes all prior agreements and
representations between them. This Agreement may be amended only in
writing and when executed by both parties. THE ACCEPTANCE OF ANY
PURCHASE ORDER PLACED BY YOU IS EXPRESSLY MADE CONDITIONAL ON YOUR
ASSENT TO THE TERMS SET FORTH HEREIN, AND NOT THOSE CONTAINED IN YOUR
PURCHASE ORDER. If any provision of this Agreement is held to be
unenforceable for any reason, such a provision shall be reformed only
to the extent necessary to make it enforceable and the remainder of
this Agreement shall nonetheless remain in full force and effect.

10. LIMITED WARRANTY:
THE SOFTWARE IS PROVIDED “AS IS” WITHOUT A WARRANTY OF ANY KIND.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE AUTHOR FURTHER
DISCLAIMS ALL WARRANTIES, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NON INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE OR
PERFORMANCE OF THE SOFTWARE AND DOCUMENTATION REMAINS WITH THE
RECIPIENT.

11. LIMITATION OF LIABILITY:
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, OR
OTHERWISE, SHALL THE AUTHOR OR HIS SUPPLIERS OR RESELLERS BE LIABLE
TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
MALFUNCTION, DATA LOSS, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
LOSSES, OR FOR ANY DAMAGES IN EXCESS OF THE AUTHOR’S LIST PRICE FOR
A LICENSE TO THE SOFTWARE AND DOCUMENTATION, EVEN IF THE AUTHOR SHALL
HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY
CLAIM BY ANY OTHER PARTY. THIS LIMITATION OF LIABILITY SHALL NOT
APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY TO THE EXTENT THAT
THE APPLICABLE LAW PROHIBITS SUCH LIMITATION. FURTHERMORE, SOME
STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
CONSEQUENTIAL DAMAGES AND, THEREFORE, THIS LIMITATION AND EXCLUSION
MAY NOT APPLY TO YOU.
