noVNC is Copyright (C) 2011 Joel Martin <github@martintribe.org>

The noVNC core library files are licensed under the MPL 2.0 (Mozilla
Public License 2.0). The noVNC core library is composed of the
Javascript code necessary for full noVNC operation. This includes (but
is not limited to):

    include/base64.js
    include/des.js
    include/display.js
    include/input.js
    include/jsunzip.js
    include/keysym.js
    include/logo.js
    include/rfb.js
    include/ui.js
    include/util.js
    include/vnc.js
    include/websock.js
    include/webutil.js

The HTML, CSS, font and images files that included with the noVNC
source distibution (or repository) are not considered part of the
noVNC core library and are licensed under more permissive licenses.
The intent is to allow easy integration of noVNC into existing web
sites and web applications.

The HTML, CSS, font and image files are licensed as follows:

    *.html                     : 2-Clause BSD license

    include/*.css              : 2-Clause BSD license

    include/Orbitron*          : SIL Open Font License 1.1
                                 (Copyright 2009 Matt McInerney)

    images/                    : Creative Commons Attribution-ShareAlike
                                 http://creativecommons.org/licenses/by-sa/3.0/

Some portions of noVNC are copyright to their individual authors.
Please refer to the individual source files and/or to the noVNC commit
history: https://github.com/kanaka/noVNC/commits/master

The are several files and projects that have been incorporated into
the noVNC core library. Here is a list of those files and the original
licenses (all MPL 2.0 compatible):

    include/base64.js          : MPL 2.0
   
    include/des.js             : Various BSD style licenses

    include/jsunzip.js         : zlib/libpng license

    include/web-socket-js/     : New BSD license (3-clause). Source code at
                                 http://github.com/gimite/web-socket-js

    include/chrome-app/tcp-stream.js
                               : Apache 2.0 license

    utils/websockify
    utils/websocket.py         : LGPL 3

The following license texts are included:

    docs/LICENSE.MPL-2.0
    docs/LICENSE.LGPL-3 and
    docs/LICENSE.GPL-3
    docs/LICENSE.OFL-1.1
    docs/LICENSE.BSD-3-Clause (New BSD)
    docs/LICENSE.BSD-2-Clause (Simplified BSD / FreeBSD)
    docs/LICENSE.zlib
    docs/LICENSE.Apache-2.0

Or alternatively the license texts may be found here:

    http://www.mozilla.org/MPL/2.0/
    http://www.gnu.org/licenses/lgpl.html and
    http://www.gnu.org/licenses/gpl.html
    http://scripts.sil.org/OFL
    http://en.wikipedia.org/wiki/BSD_licenses
    http://www.gzip.org/zlib/zlib_license.html
    http://www.apache.org/licenses/LICENSE-2.0.html
