***
This jar is distributed with Android Studio as part of a special agreement with GlavSoft. 
The key terms of the agreement are below.
***


1. Definitions

1.1. "Source Code" means computer programming code in the human readable form constituting
the Software and suitable for making modifications to it.

1.2. "Derivative Works" means any and all software programs which are developed by Licensee and
which are using, incorporating, or derived from the Software.


3. License Grant

3.1. GlavSoft grants Licensee a perpetual, non-exclusive, non-transferable (except as provided
below) world-wide license to install and use Software for creating Derivative Works based on the
Source Code or integrated with the Software in any other way. The license costs 4,000 U.S. dollars.

3.2. GlavSoft grants Licensee and its affiliates, resellers and distributors the right to distribute (via
sublicense), sell (via sublicense) or otherwise transfer (via sublicense) Software in binary object
code format (including executable files and DLL libraries) solely as incorporated into a Derivative
Work, free of royalties to GlavSoft.

3.3. No part of the Source Code may be distributed, except for limited distribution to Licensee's
employees or contractors working on creating Derivative Works for Licensee. Licensee should
protect the Source Code from unauthorized distribution by arranging appropriate non-disclosure
agreements, by securing all internally used copies of the Source Code, and in other reasonable
ways.

3.4. Licensee must preserve copyright notices in all files of the Source Code.

3.5. Licensee shall not include "TightVNC", "GlavSoft" or similar phrases in titles of Licensee's
products or services.

3.6. All rights not expressly granted in this Agreement are reserved by GlavSoft.
