Copyright notices

Javassist, a Java-bytecode translator toolkit. 
Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved.

The contents of this software, Javassist, are subject to the Mozilla Public License Version 1.1 (the "License");
you may not use this software except in compliance with the License. You may obtain a copy of the License at 
http://www.mozilla.org/MPL/

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY KIND, either express or implied. See the License for the specific language governing rights and 
limitations under the License.

The Original Code is Javassist.

The Initial Developer of the Original Code is Shigeru Chiba. Portions created by the Initial Developer are
  Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.

Contributor(s): ______________________________________.

Alternatively, the contents of this software may be used under the terms of the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the LGPL are applicable instead of those above. If you wish to allow use of your version of this software only under the terms of the LGPL, and not to allow others to use your version of this software under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the LGPL. If you do not delete the provisions above, a recipient may use your version of this software under the terms of either the MPL or the LGPL.

If you obtain this software as part of JBoss, the contents of this software may be used under only the terms of the LGPL. To use them under the MPL, you must obtain a separate package including only Javassist but not the other part of JBoss.

All the contributors to the original source tree must agree to the original license term described above.