CYANA 2.1 Academic Software License

The CYANA 2.1 Academic Software License is a legal agreement, governed
by the laws of Switzerland, between an end user (the ”Licensee”), either
an individual or an entity, and Dr. Peter Güntert (the ”Licensor”). The
program package CYANA 2.1 (copyright (c) 2002-2005 by Peter Güntert) for
NMR structure calculation, comprising all computer programs, source
code, license keys, documentation, example data and other files
delivered to the Licensee, as well as any copies, modifications or
derivative works made by the Licensee, are hereinafter referred to
collectively as the ”Software”. A derivative work is any software that
contains one or several parts of the Software in original or modified
form. If the Licensor provides the Licensee with updates of the
Software, these will become part of the Software and will be controlled
by this license.

1. The Licensor grants to the Licensee a non-exclusive,
non-transferable, permanent license to install and use the Software on
computer systems located at the site of the Licensee’s organization.
However, a violation of any of the clauses of this license agreement by
the Licensee shall terminate automatically and with immediate effect the
Licensee’s right to install, use or store the Software in any form. Use
of the Software is restricted to the Licensee and to direct
collaborators who are members of the organization of the Licensee at the
site of the Licensee and who accept the terms of this license. The
Licensee shall neither use the Software to produce other software that
duplicates functionality of the Software nor translate source code of
the Software into another programming language.

2. The Licensor retains at all times ownership of the Software delivered
to the Licensee. Any modifications or derivative works based on the
Software are considered part of the Software, and ownership thereof is
retained by the Licensor. All parts of the Software must carry the
copyright notice, will be controlled by this license, and will be
promptly destroyed by the Licensee upon termination of this license.

3. The Licensee shall not disclose in any form the Software or any
modifications or derivative works based on the Software to third parties
without prior written authorization from the Licensor. The Licensee
shall not use the software for any purpose (research or otherwise) that
is supported by a “for profit” organization without prior written
authorization from the Licensor.

4. The Licensee agrees that the Software has been developed in
connection with academic research projects and is provided ”as is”. The
Licensor disclaims all warranties with regard to the Software or any of
its results, including any implied warranties of merchantability or
fitness for a particular purpose. In no event shall the Licensor be
liable for any damages, however caused, including, without limitation,
any damages arising out of the use of the Software, loss of use of the
Software, or damage of any sort to the Licensee.

5. The Licensee agrees that any reports or publications of results
obtained with the Software will acknowledge its use by the literature
citation: Güntert, P., Mumenthaler, C. and Wüthrich, K. (1997). Torsion
angle dynamics for NMR structure calculation with the new program DYANA.
J. Mol. Biol. 273, 283-298. In addition, the Licensee agrees that any
reports or publications of results obtained with the automated NOESY
assignment module of the Software will acknowledge its use by the
literature citation: Herrmann, T., Güntert, P. and Wüthrich, K. (2002).
Protein NMR structure determination with automated NOE assignment using
the new software CANDID and the torsion angle dynamics algorithm DYANA.
J. Mol. Biol. 319, 209-227.

6. The Licensee agrees to pay to L. A. Systems, Inc. (the “Distributor”)
the license fee specified by the Distributor. The Distributor will
deliver the Software upon receipt of a completed and duly signed
original of this license agreement and of the license fee.


Licensee:

Name:        ....................

Unit:        ....................

Institution: ....................

Address:     ....................

City & Postal code: .............    Contact person (if different from
                                     Licensee):

Country:     ....................    Name:        ....................

Email:       ....................    Email:       ....................

Phone:       ....................    Phone:       ....................

Fax:         ....................    Fax:         ....................


Place and date:               Licensee’s signature:

........................      ........................................



CYANA 2.1 Commercial Software License

The CYANA 2.1 Commercial Software License is a legal agreement, governed
by the laws of Switzerland, between an end user (the ”Licensee”), either
an individual or an entity, and Dr. Peter Güntert (the ”Licensor”). The
program package CYANA 2.1 (copyright (c) 2002-2005 by Peter Güntert) for
NMR structure calculation, comprising all computer programs, source
code, license keys, documentation, example data and other files
delivered to the Licensee, as well as any copies, modifications or
derivative works made by the Licensee, are hereinafter referred to
collectively as the ”Software”. A derivative work is any software that
contains one or several parts of the Software in original or modified
form. If the Licensor provides the Licensee with updates of the
Software, these will become part of the Software and will be controlled
by this license.

1. The Licensor grants to the Licensee a non-exclusive,
non-transferable, permanent license to install and use the Software on
computer systems located at the site of the Licensee’s organization.
However, a violation of any of the clauses of this license agreement by
the Licensee shall terminate automatically and with immediate effect the
Licensee’s right to install, use or store the Software in any form. Use
of the Software is restricted to the Licensee and to direct
collaborators who are members of the organization of the Licensee at the
site of the Licensee and who accept the terms of this license. The
Licensee shall neither use the Software to produce other software that
duplicates functionality of the Software nor translate source code of
the Software into another programming language.

2. The Licensor retains at all times ownership of the Software delivered
to the Licensee. Any modifications or derivative works based on the
Software are considered part of the Software, and ownership thereof is
retained by the Licensor. All parts of the Software must carry the
copyright notice, will be controlled by this license, and will be
promptly destroyed by the Licensee upon termination of this license.

3. The Licensee shall not disclose in any form the Software or any
modifications or derivative works based on the Software to third parties
without prior written authorization from the Licensor.

4. The Licensee agrees that the Software has been developed in
connection with academic research projects and is provided ”as is”. The
Licensor disclaims all warranties with regard to the Software or any of
its results, including any implied warranties of merchantability or
fitness for a particular purpose. In no event shall the Licensor be
liable for any damages, however caused, including, without limitation,
any damages arising out of the use of the Software, loss of use of the
Software, or damage of any sort to the Licensee.

5. The Licensee agrees that any reports or publications of results
obtained with the Software will acknowledge its use by the literature
citation: Güntert, P., Mumenthaler, C. and Wüthrich, K. (1997). Torsion
angle dynamics for NMR structure calculation with the new program DYANA.
J. Mol. Biol. 273, 283-298. In addition, the Licensee agrees that any
reports or publications of results obtained with the automated NOESY
assignment module of the Software will acknowledge its use by the
literature citation: Herrmann, T., Güntert, P. and Wüthrich, K. (2002).
Protein NMR structure determination with automated NOE assignment using
the new software CANDID and the torsion angle dynamics algorithm DYANA.
J. Mol. Biol. 319, 209-227.

6. The Licensee agrees to pay to L. A. Systems, Inc. (the “Distributor”)
the license fee specified by the Distributor. The Distributor will
deliver the Software upon receipt of a completed and duly signed
original of this license agreement and of the license fee.


Licensee:

Name:        ....................

Unit:        ....................

Institution: ....................

Address:     ....................

City & Postal code: .............    Contact person (if different from
                                     Licensee):

Country:     ....................    Name:        ....................

Email:       ....................    Email:       ....................

Phone:       ....................    Phone:       ....................

Fax:         ....................    Fax:         ....................


Place and date:               Licensee’s signature:

........................      ........................................
